From 2ea62d004c1b31c3e52e122458ec7cf1621e7d1f Mon Sep 17 00:00:00 2001
From: Lucie Milan <32450552+lmilan@users.noreply.github.com>
Date: Mon, 4 Dec 2023 10:44:54 +0100
Subject: [PATCH 1/2] TDL-23186 Schema automation (#963)
* generated shemas
* update for discovery mode files
* Update format_json.py
* Update format_json.py
* Update get-json-files.py
* generated missing schemas
* Update snapshot-attributes.yml
* remove shared json files
* re-generated after updating from master
* fix ref loop and format issue
* fix format loop
* Update get-json-files.py
* fix for amazon dsp schema
* Update format_json.py
* updated schemas
* handle arrays and anyOf in HTML template
* generated schemas
* Update wootric-latest.md
* remove old files and rename new ones
* sort json
* generated ordered json files
* add list of tables
* convet markdown schemas to json
* Revert "convet markdown schemas to json"
This reverts commit 69e43c8f328ea45ad34a89b6535e63203e99816d.
* Create convert_md_schemas.py
* Update convert_md_schemas.py
* converted md schemas to json
* Update amplitude-v1-tables.yml
* add option to ignore json schemas
* Update get-table-data-from-md.py
* fixed schema issues
* converted md schemas
* Update convert_md_schemas.py
* updates for parent/child tables
* remove old template
* remove empty foreign keys
* fixed foreign key issues
* added note about nested data structures
* added primary key and replication key icons
* renamed files
* Update metadata_accounts.json
* Revert "Update metadata_accounts.json"
This reverts commit 57fa2f2d22d734d41c6c836220ca1759d8cfffda.
* format json
* fix json
* Revert "fix json"
This reverts commit 8b99a39dc786a29addd9f4a711c1566fec0910c2.
* Revert "format json"
This reverts commit b168d629c2c682c530ce3305cf2e7589bf149147.
* Revert "Revert "format json""
This reverts commit d6ef0364bdc48fca726ef8e4208fcdf67fbd93ac.
* Revert "Revert "fix json""
This reverts commit a153446775548e241e23c62f8fbb8f08abbc4e9e.
* Update allocations.json
* fix json format issues
* refactor integration data script
* Update check_json_issues.py
* move scripts
* updated paths
* Update get_table_data_from_md.py
* refactored table data script
* Create manual_json_import.py
* cleaned up scripts
* delete file after conversion
* added github actions
* Update import_json_schemas.yml
* fixed workflows
* fixed module name
* Create catalog.json
* Update get_integration_data.py
* fixed workflow
* Automated commit: Generate JSON schemas
* Revert "Automated commit: Generate JSON schemas"
This reverts commit 933d3b7ed5acddd6af38422c82056f9ebfc9f8a2.
* Update get_json_schema_from_catalog.yml
* Automated commit: Generate JSON schemas
* Revert "Automated commit: Generate JSON schemas"
This reverts commit 2616ed73e4a70f98cec51bc636bdda127be70245.
* Delete catalog.json
* renamed file
* add foreign keys workflow
* testing
* Revert "testing"
This reverts commit 1f1d937bfbce139f81f9fd3180aa902c1d7b8950.
* Update generate_foreign_keys.yml
* testing
* Update generate_foreign_keys.yml
* Revert "testing"
This reverts commit 835b5e6fe0ea434708d8a4a0003ba868472bad55.
* replace index with column name
* tsting
* Automated commit: Generate JSON schemas
* Revert "Automated commit: Generate JSON schemas"
This reverts commit 4a1decbd7ff466e500e87f881b8ecbb8faf02614.
* Revert "tsting"
This reverts commit 47f8b68c2c0fbf5934b5ce35cf2569646206986f.
* Update generate_foreign_keys.yml
* Update import_json_schemas.yml
* fixed files
* fix files
* Create sample-report.json
* TDL-24280 started documenting scripts and workflows
* check in anyof elements
* changed display for arrays
* remove issues file if empty
* Update schemas-table.html
* fixed 3plcentral issues
* Update README.md
* Update README.md
* Update check_json_issues.py
* fix for empty properties
* Update check_table_data.py
* Update generate_foreign_keys.py
* Update get_integration_data.py
* Update get_table_data.py
* remove ignored files from list of issues
* fixed activecampaign issues
* Update get_table_data.py
* removed amazon dsp
* fixed issues
* fixed asana issues
* fixed autopilot issues
* fixed bigcommerce issues
* fixed asana v2
* fixed bing ads v2
* Delete bing-ads-v1-issues.txt
* fixed braintree
* fixed bronto
* fixed chargebee
* fixed chargify
* fixed closeio
* revert to older version for demo
* ignore leads stream
* fixed facebook issues
* fix for schemas without doc links
* fixed clubspeed
* fixed codat
* fixed covid-19 issues
* fixed crossbeam
* Automated commit: Generate foreign keys
* fixed schemas
* Update convert_md_schemas.py
* fixed schemas
* fix deputy issues
* fixed ebay
* fixed eloqua
* fixed freshdesk
* update branch for demo
* fixed pendo issues
* add catalog file for demo
* remove element for demo
* Delete catalog.json
* Update get_json_schema_from_catalog.yml
* remove netsuite schema links
* fixed frontapp issues
* fix for system columns
* Delete fullstory-v1-issues.txt
* fixed github issues
* fixed gitlab issues
* ignore issues
* Update check_table_data.py
* ignore reports for table check
* fixed adwords issues
* replace system column names
* add table templates
* fixed ga360 issues
* fixed google sheets
* Update get_table_data.py
* fixed harvest
* fixed harvest issues
* fixed harvest forecast
* remove not found status for taps with no schemas
* fixed heap issues
* add default value
* fixed helpscout
* fixed ilevel issues
* fixed impact issues
* removed insided
* fixed intercom issues
* fixed invoiced issues
* fixed iterable
* fixed iterable
* fixed jira issues
* fixed klaviyo issues
* Update get_json_files.py
* fixed kustomer issues
* fixed liveperson issues
* fixed looker issues
* fixed lookml
* fixed mailshake
* fixed mambu issues
* fixed marketo
* fixed mixpanel
* fixed teams issues
* fixed onfleet issues
* fixed outbrain
* fixed outreach issues
* fixed pepperjam
* fixed pipedrive
* remove quick-base
* fixed quickbooks
* fixed recharge issue
* fixed recurly issues
* fixed referral-saasquatch
* fixed revinate
* fixed sailthru
* fixed salesforce
* fixed salesforce marketing cloud issues
* fixed selligent
* fixed shiphero
* fixed shippo
* fixed shopify
* fixed slack
* disable table data check for report tables
* fixed snapchat issues
* fixed snapchat issues
* Update check_json_issues.py
* fixed square issues
* fixed stripe issues
* fixed taboola issues
* fixed toggl issues
* fixed trello issues
* fixed twilio issues
* fixed twitter issues
* fixed typeform issues
* fixed ujet issues
* fixed urban-airship issues
* fixed urban-airship issues
* fixed uservoice issues
* fixed wootric issues
* removed workday
* fixed xero issues
* Update get_json_files.py
* fixed yotpo issues
* fixed zendesk issues
* fixed zoom
* fixed zendesk-chat
* renamed files
* added renamed files
* fixed some zuora issues
* fixed google integrations
* changes system for files to ignore
* moved old integration schema files
* fixed hubspot issues
* replaced v0 with v1
* deal with tables not found
* improve script
* fixed issues
* fixed duplicate and broken links
* fixed issues
* updated for frontapp v2
* fixed facebook issues
* Update schemas.html
* fixed hubspot issue
---------
Co-authored-by: github-actions
---
.github/workflows/generate_foreign_keys.yml | 7 +-
.../get_json_schema_from_catalog.yml | 8 +-
.github/workflows/import_json_schemas.yml | 7 +-
.gitignore | 2 +
_data/taps/integrations.yml | 721 +
.../v1/3plcentral-v1-foreign-keys.yml | 722 +
.../3plcentral/v1/3plcentral-v1-tables.yml | 72 +
.../schemas/3plcentral/v1/json/customers.json | 1031 +
.../schemas/3plcentral/v1/json/inventory.json | 445 +
.../schemas/3plcentral/v1/json/locations.json | 235 +
.../schemas/3plcentral/v1/json/orders.json | 2098 ++
.../schemas/3plcentral/v1/json/sku_items.json | 873 +
.../3plcentral/v1/json/stock_details.json | 311 +
.../3plcentral/v1/json/stock_summaries.json | 80 +
.../v1/activecampaign-v1-foreign-keys.yml | 3385 +++
.../v1/activecampaign-v1-tables.yml | 652 +
.../v1/json/account_contacts.json | 42 +
.../v1/json/account_custom_field_values.json | 48 +
.../v1/json/account_custom_fields.json | 100 +
.../activecampaign/v1/json/accounts.json | 48 +
.../activecampaign/v1/json/activities.json | 93 +
.../activecampaign/v1/json/addresses.json | 72 +
.../v1/json/automation_blocks.json | 71 +
.../activecampaign/v1/json/automations.json | 72 +
.../activecampaign/v1/json/bounce_logs.json | 120 +
.../activecampaign/v1/json/brandings.json | 114 +
.../activecampaign/v1/json/calendars.json | 54 +
.../v1/json/campaign_links.json | 96 +
.../v1/json/campaign_lists.json | 72 +
.../v1/json/campaign_messages.json | 190 +
.../activecampaign/v1/json/campaigns.json | 534 +
.../activecampaign/v1/json/configs.json | 84 +
.../v1/json/contact_automations.json | 108 +
.../v1/json/contact_conversions.json | 90 +
.../v1/json/contact_custom_field_options.json | 54 +
.../v1/json/contact_custom_field_rels.json | 36 +
.../v1/json/contact_custom_field_values.json | 60 +
.../v1/json/contact_custom_fields.json | 96 +
.../activecampaign/v1/json/contact_data.json | 186 +
.../activecampaign/v1/json/contact_deals.json | 60 +
.../v1/json/contact_emails.json | 96 +
.../activecampaign/v1/json/contact_lists.json | 162 +
.../activecampaign/v1/json/contact_tags.json | 54 +
.../activecampaign/v1/json/contacts.json | 242 +
.../v1/json/conversion_triggers.json | 66 +
.../activecampaign/v1/json/conversions.json | 54 +
.../v1/json/deal_activities.json | 108 +
.../v1/json/deal_custom_field_values.json | 48 +
.../v1/json/deal_custom_fields.json | 100 +
.../v1/json/deal_group_users.json | 30 +
.../activecampaign/v1/json/deal_groups.json | 70 +
.../activecampaign/v1/json/deal_stages.json | 90 +
.../schemas/activecampaign/v1/json/deals.json | 177 +
.../v1/json/ecommerce_connections.json | 78 +
.../v1/json/ecommerce_customers.json | 82 +
.../v1/json/ecommerce_order_activities.json | 188 +
.../v1/json/ecommerce_order_products.json | 107 +
.../v1/json/ecommerce_orders.json | 174 +
.../v1/json/email_activities.json | 135 +
.../schemas/activecampaign/v1/json/forms.json | 455 +
.../schemas/activecampaign/v1/json/goals.json | 54 +
.../activecampaign/v1/json/groups.json | 360 +
.../schemas/activecampaign/v1/json/lists.json | 288 +
.../activecampaign/v1/json/messages.json | 150 +
.../v1/json/saved_responses.json | 54 +
.../activecampaign/v1/json/scores.json | 48 +
.../activecampaign/v1/json/segments.json | 60 +
.../activecampaign/v1/json/site_messages.json | 55 +
.../schemas/activecampaign/v1/json/sms.json | 108 +
.../schemas/activecampaign/v1/json/tags.json | 60 +
.../activecampaign/v1/json/task_types.json | 42 +
.../schemas/activecampaign/v1/json/tasks.json | 117 +
.../activecampaign/v1/json/templates.json | 102 +
.../schemas/activecampaign/v1/json/users.json | 78 +
.../activecampaign/v1/json/webhooks.json | 68 +
.../adroll/v1/adroll-v1-foreign-keys.yml | 146 +
.../schemas/adroll/v1/adroll-v1-tables.yml | 78 +
.../schemas/adroll/v1/json/ad_groups.json | 198 +
.../schemas/adroll/v1/json/ad_reports.json | 236 +
_data/taps/schemas/adroll/v1/json/ads.json | 280 +
.../schemas/adroll/v1/json/advertisables.json | 608 +
.../schemas/adroll/v1/json/campaigns.json | 242 +
.../taps/schemas/adroll/v1/json/segments.json | 134 +
.../amplitude/v1/amplitude-v1-tables.yml | 49 +
.../schemas/amplitude/v1/json/events.json | 199 +
.../schemas/amplitude/v1/json/merge_ids.json | 24 +
.../appsflyer/v1/appsflyer-v1-tables.yml | 44 +
.../appsflyer/v1/json/in_app_events.json | 492 +
.../appsflyer/v1/json/installations.json | 492 +
.../appsflyer/v1/json/organic_installs.json | 492 +
.../asana/v1/asana-v1-foreign-keys.yml | 213 +
.../taps/schemas/asana/v1/asana-v1-tables.yml | 71 +
.../taps/schemas/asana/v1/json/projects.json | 222 +
_data/taps/schemas/asana/v1/json/tags.json | 99 +
_data/taps/schemas/asana/v1/json/tasks.json | 453 +
_data/taps/schemas/asana/v1/json/users.json | 104 +
.../schemas/asana/v1/json/workspaces.json | 39 +
.../asana/v2/asana-v2-foreign-keys.yml | 701 +
.../taps/schemas/asana/v2/asana-v2-tables.yml | 128 +
.../schemas/asana/v2/json/portfolios.json | 874 +
.../taps/schemas/asana/v2/json/projects.json | 1031 +
.../taps/schemas/asana/v2/json/sections.json | 93 +
_data/taps/schemas/asana/v2/json/stories.json | 1317 +
_data/taps/schemas/asana/v2/json/tags.json | 111 +
_data/taps/schemas/asana/v2/json/tasks.json | 978 +
_data/taps/schemas/asana/v2/json/teams.json | 111 +
_data/taps/schemas/asana/v2/json/users.json | 111 +
.../schemas/asana/v2/json/workspaces.json | 45 +
.../v1/autopilot-v1-foreign-keys.yml | 93 +
.../autopilot/v1/autopilot-v1-tables.yml | 67 +
.../schemas/autopilot/v1/json/contacts.json | 379 +
.../taps/schemas/autopilot/v1/json/lists.json | 17 +
.../autopilot/v1/json/lists_contacts.json | 17 +
.../autopilot/v1/json/smart_segments.json | 17 +
.../v1/json/smart_segments_contacts.json | 17 +
.../v1/bigcommerce-v1-foreign-keys.yml | 94 +
.../bigcommerce/v1/bigcommerce-v1-tables.yml | 69 +
.../schemas/bigcommerce/v1/json/coupons.json | 141 +
.../bigcommerce/v1/json/customers.json | 121 +
.../schemas/bigcommerce/v1/json/orders.json | 1166 +
.../schemas/bigcommerce/v1/json/products.json | 815 +
.../bing-ads/v1/bing-ads-v1-foreign-keys.yml | 513 +
.../bing-ads/v1/bing-ads-v1-tables.yml | 228 +
.../schemas/bing-ads/v1/json/accounts.json | 123 +
.../schemas/bing-ads/v1/json/ad_groups.json | 125 +
.../v1/json/ad_performance_report.json | 34 +
.../v1/json/adgroup_performance_report.json | 29 +
_data/taps/schemas/bing-ads/v1/json/ads.json | 125 +
.../json/age_gender_performance_report.json | 29 +
.../v1/json/campaign_performance_report.json | 24 +
.../schemas/bing-ads/v1/json/campaigns.json | 117 +
.../json/geographic_performance_report.json | 29 +
.../v1/json/goals_and_funnels_report.json | 29 +
.../v1/json/keyword_performance_report.json | 29 +
.../json/search_query_performance_report.json | 29 +
.../bing-ads/v2/bing-ads-v2-foreign-keys.yml | 887 +
.../bing-ads/v2/bing-ads-v2-tables.yml | 432 +
.../schemas/bing-ads/v2/json/accounts.json | 185 +
.../v2/json/ad_group_performance_report.json | 29 +
.../schemas/bing-ads/v2/json/ad_groups.json | 179 +
.../v2/json/ad_performance_report.json | 34 +
_data/taps/schemas/bing-ads/v2/json/ads.json | 150 +
.../v2/json/age_gender_audience_report.json | 49 +
.../v2/json/audience_performance_report.json | 34 +
.../v2/json/campaign_performance_report.json | 24 +
.../schemas/bing-ads/v2/json/campaigns.json | 184 +
.../json/geographic_performance_report.json | 29 +
.../v2/json/goals_and_funnels_report.json | 34 +
.../v2/json/keyword_performance_report.json | 29 +
.../json/search_query_performance_report.json | 29 +
.../braintree/v1/braintree-v1-tables.yml | 22 +
.../braintree/v1/json/transactions.json | 287 +
.../bronto/v1/bronto-v1-foreign-keys.yml | 150 +
.../schemas/bronto/v1/bronto-v1-tables.yml | 65 +
.../taps/schemas/bronto/v1/json/contact.json | 203 +
.../bronto/v1/json/inbound_activity.json | 179 +
_data/taps/schemas/bronto/v1/json/list.json | 29 +
.../bronto/v1/json/outbound_activity.json | 179 +
.../schemas/bronto/v1/json/unsubscribe.json | 29 +
.../v1/campaign-manager-v1-tables.yml | 3 +
.../v1/json/sample_report_table.json | 14 +
.../v1/campaign-monitor-v1-tables.yml | 229 +
.../v1/json/campaign_bounces.json | 29 +
.../v1/json/campaign_clicks.json | 65 +
.../v1/json/campaign_email_client_usage.json | 26 +
.../v1/json/campaign_opens.json | 59 +
.../v1/json/campaign_recipients.json | 14 +
.../v1/json/campaign_spam_complaints.json | 17 +
.../v1/json/campaign_summary.json | 86 +
.../v1/json/campaign_unsubscribes.json | 23 +
.../campaign-monitor/v1/json/campaigns.json | 62 +
.../v1/json/list_active_subscribers.json | 64 +
.../v1/json/list_bounced_subscribers.json | 64 +
.../v1/json/list_deleted_subscribers.json | 64 +
.../v1/json/list_details.json | 38 +
.../v1/json/list_unconfirmed_subscribers.json | 64 +
.../json/list_unsubscribed_subscribers.json | 64 +
.../campaign-monitor/v1/json/lists.json | 14 +
.../v1/chargebee-v1-foreign-keys.yml | 2401 ++
.../chargebee/v1/chargebee-v1-tables.yml | 320 +
.../schemas/chargebee/v1/json/addons.json | 317 +
.../schemas/chargebee/v1/json/comments.json | 56 +
.../schemas/chargebee/v1/json/coupons.json | 195 +
.../chargebee/v1/json/credit_notes.json | 765 +
.../schemas/chargebee/v1/json/customers.json | 826 +
.../schemas/chargebee/v1/json/events.json | 7838 +++++
.../taps/schemas/chargebee/v1/json/gifts.json | 152 +
.../schemas/chargebee/v1/json/invoices.json | 1291 +
.../chargebee/v1/json/item_families.json | 62 +
.../chargebee/v1/json/item_prices.json | 339 +
.../taps/schemas/chargebee/v1/json/items.json | 185 +
.../schemas/chargebee/v1/json/orders.json | 827 +
.../chargebee/v1/json/payment_sources.json | 338 +
.../taps/schemas/chargebee/v1/json/plans.json | 485 +
.../chargebee/v1/json/promotional_credit.json | 64 +
.../v1/json/promotional_credits.json | 87 +
.../schemas/chargebee/v1/json/quotes.json | 727 +
.../chargebee/v1/json/subscriptions.json | 869 +
.../chargebee/v1/json/transactions.json | 449 +
.../v1/json/virtual_bank_accounts.json | 105 +
.../chargebee-v20-05-2019-foreign-keys.yml | 1698 ++
.../chargebee-v20-05-2019-tables.yml | 175 +
.../chargebee/v20-05-2019/json/addons.json | 176 +
.../chargebee/v20-05-2019/json/coupons.json | 99 +
.../v20-05-2019/json/credit_notes.json | 440 +
.../chargebee/v20-05-2019/json/customers.json | 414 +
.../chargebee/v20-05-2019/json/events.json | 2182 ++
.../chargebee/v20-05-2019/json/invoices.json | 755 +
.../v20-05-2019/json/payment_sources.json | 237 +
.../chargebee/v20-05-2019/json/plans.json | 99 +
.../v20-05-2019/json/subscriptions.json | 476 +
.../v20-05-2019/json/transactions.json | 270 +
.../json/virtual_bank_accounts.json | 79 +
.../chargify/v1/chargify-v1-foreign-keys.yml | 964 +
.../chargify/v1/chargify-v1-tables.yml | 130 +
.../schemas/chargify/v1/json/components.json | 193 +
.../schemas/chargify/v1/json/coupons.json | 169 +
.../schemas/chargify/v1/json/customers.json | 140 +
.../taps/schemas/chargify/v1/json/events.json | 190 +
.../schemas/chargify/v1/json/invoices.json | 336 +
.../chargify/v1/json/price_points.json | 106 +
.../chargify/v1/json/product_families.json | 38 +
.../schemas/chargify/v1/json/products.json | 234 +
.../schemas/chargify/v1/json/statements.json | 584 +
.../chargify/v1/json/subscriptions.json | 684 +
.../chargify/v1/json/transactions.json | 212 +
.../v1/circle-ci-v1-foreign-keys.yml | 55 +
.../circle-ci/v1/circle-ci-v1-tables.yml | 40 +
.../taps/schemas/circle-ci/v1/json/jobs.json | 99 +
.../schemas/circle-ci/v1/json/pipelines.json | 203 +
.../schemas/circle-ci/v1/json/workflows.json | 81 +
.../closeio/v1/closeio-v1-foreign-keys.yml | 1087 +
.../schemas/closeio/v1/closeio-v1-tables.yml | 112 +
.../schemas/closeio/v1/json/activities.json | 821 +
.../closeio/v1/json/custom_fields.json | 57 +
.../schemas/closeio/v1/json/event_log.json | 114 +
_data/taps/schemas/closeio/v1/json/leads.json | 732 +
_data/taps/schemas/closeio/v1/json/tasks.json | 266 +
_data/taps/schemas/closeio/v1/json/users.json | 69 +
.../v1/clubspeed-v1-foreign-keys.yml | 1603 +
.../clubspeed/v1/clubspeed-v1-tables.yml | 437 +
.../schemas/clubspeed/v1/json/booking.json | 38 +
.../v1/json/booking_availability.json | 112 +
.../clubspeed/v1/json/check_details.json | 188 +
.../schemas/clubspeed/v1/json/checks.json | 122 +
.../schemas/clubspeed/v1/json/customers.json | 314 +
.../clubspeed/v1/json/discount_types.json | 56 +
.../clubspeed/v1/json/event_heat_details.json | 44 +
.../clubspeed/v1/json/event_heat_types.json | 56 +
.../v1/json/event_reservation_links.json | 26 +
.../v1/json/event_reservation_types.json | 20 +
.../clubspeed/v1/json/event_reservations.json | 122 +
.../clubspeed/v1/json/event_rounds.json | 56 +
.../clubspeed/v1/json/event_statuses.json | 32 +
.../clubspeed/v1/json/event_task_types.json | 38 +
.../clubspeed/v1/json/event_tasks.json | 38 +
.../clubspeed/v1/json/event_types.json | 74 +
.../schemas/clubspeed/v1/json/events.json | 92 +
.../clubspeed/v1/json/gift_card_history.json | 68 +
.../schemas/clubspeed/v1/json/heat_main.json | 122 +
.../clubspeed/v1/json/heat_main_details.json | 98 +
.../schemas/clubspeed/v1/json/heat_types.json | 110 +
.../clubspeed/v1/json/membership_types.json | 50 +
.../clubspeed/v1/json/memberships.json | 44 +
.../schemas/clubspeed/v1/json/payments.json | 110 +
.../clubspeed/v1/json/payments_voided.json | 110 +
.../clubspeed/v1/json/product_classes.json | 32 +
.../schemas/clubspeed/v1/json/products.json | 86 +
.../clubspeed/v1/json/reservations.json | 62 +
.../schemas/clubspeed/v1/json/sources.json | 44 +
.../taps/schemas/clubspeed/v1/json/taxes.json | 38 +
.../taps/schemas/clubspeed/v1/json/users.json | 74 +
.../codat/v1/codat-v1-foreign-keys.yml | 2054 ++
.../taps/schemas/codat/v1/codat-v1-tables.yml | 307 +
.../taps/schemas/codat/v1/json/accounts.json | 90 +
.../schemas/codat/v1/json/balance_sheets.json | 151 +
.../v1/json/bank_account_transactions.json | 62 +
.../schemas/codat/v1/json/bank_accounts.json | 91 +
.../codat/v1/json/bank_statement_lines.json | 50 +
.../codat/v1/json/bank_statements.json | 75 +
.../schemas/codat/v1/json/bill_payments.json | 216 +
_data/taps/schemas/codat/v1/json/bills.json | 310 +
.../taps/schemas/codat/v1/json/companies.json | 43 +
.../schemas/codat/v1/json/company_info.json | 172 +
.../schemas/codat/v1/json/connections.json | 41 +
.../schemas/codat/v1/json/credit_notes.json | 118 +
.../taps/schemas/codat/v1/json/customers.json | 246 +
_data/taps/schemas/codat/v1/json/events.json | 25 +
.../taps/schemas/codat/v1/json/invoices.json | 208 +
_data/taps/schemas/codat/v1/json/items.json | 149 +
.../codat/v1/json/journal_entries.json | 102 +
.../taps/schemas/codat/v1/json/payments.json | 111 +
.../codat/v1/json/profit_and_loss.json | 232 +
.../taps/schemas/codat/v1/json/suppliers.json | 118 +
.../taps/schemas/codat/v1/json/tax_rates.json | 78 +
.../covid-19/v1/covid-19-v1-tables.yml | 348 +
.../covid-19/v1/json/c19_trk_us_daily.json | 159 +
.../json/c19_trk_us_population_counties.json | 99 +
.../v1/json/c19_trk_us_population_states.json | 93 +
...9_trk_us_population_states_age_groups.json | 99 +
...19_trk_us_states_acs_health_insurance.json | 141 +
.../v1/json/c19_trk_us_states_current.json | 177 +
.../v1/json/c19_trk_us_states_daily.json | 159 +
.../v1/json/c19_trk_us_states_info.json | 123 +
.../c19_trk_us_states_kff_hospital_beds.json | 99 +
.../schemas/covid-19/v1/json/eu_daily.json | 177 +
.../covid-19/v1/json/eu_ecdc_daily.json | 93 +
.../v1/json/italy_national_daily.json | 159 +
.../v1/json/italy_provincial_daily.json | 149 +
.../v1/json/italy_regional_daily.json | 185 +
.../covid-19/v1/json/jh_csse_daily.json | 167 +
.../v1/json/neherlab_case_counts.json | 111 +
.../v1/json/neherlab_country_codes.json | 129 +
.../v1/json/neherlab_icu_capacity.json | 117 +
.../covid-19/v1/json/neherlab_population.json | 111 +
.../covid-19/v1/json/nytimes_us_counties.json | 111 +
.../covid-19/v1/json/nytimes_us_states.json | 105 +
.../crossbeam/v1/crossbeam-v1-tables.yml | 61 +
.../v1/json/partner_populations.json | 29 +
.../schemas/crossbeam/v1/json/partners.json | 83 +
.../crossbeam/v1/json/populations.json | 133 +
.../crossbeam/v1/json/thread_timelines.json | 83 +
.../schemas/crossbeam/v1/json/threads.json | 125 +
.../schemas/darksky/v1/darksky-v1-tables.yml | 20 +
.../schemas/darksky/v1/json/forecast.json | 498 +
.../deputy/v1/deputy-v1-foreign-keys.yml | 19338 ++++++++++++
.../schemas/deputy/v1/deputy-v1-tables.yml | 573 +
.../schemas/deputy/v1/json/addresses.json | 99 +
.../schemas/deputy/v1/json/categories.json | 49 +
.../taps/schemas/deputy/v1/json/comments.json | 49 +
.../schemas/deputy/v1/json/companies.json | 89 +
.../deputy/v1/json/company_periods.json | 54 +
.../taps/schemas/deputy/v1/json/contacts.json | 124 +
.../schemas/deputy/v1/json/countries.json | 64 +
.../deputy/v1/json/custom_app_data.json | 69 +
.../deputy/v1/json/custom_field_data.json | 109 +
.../schemas/deputy/v1/json/custom_fields.json | 74 +
.../v1/json/employee_agreement_history.json | 79 +
.../deputy/v1/json/employee_agreements.json | 84 +
.../deputy/v1/json/employee_appraisal.json | 64 +
.../deputy/v1/json/employee_availability.json | 64 +
.../json/employee_contract_leave_rules.json | 49 +
.../deputy/v1/json/employee_contracts.json | 84 +
.../deputy/v1/json/employee_history.json | 119 +
.../v1/json/employee_paycycle_returns.json | 59 +
.../deputy/v1/json/employee_paycycles.json | 99 +
.../deputy/v1/json/employee_roles.json | 49 +
.../json/employee_salary_opunit_costing.json | 64 +
.../deputy/v1/json/employee_workplaces.json | 54 +
.../deputy/v1/json/employment_conditions.json | 99 +
_data/taps/schemas/deputy/v1/json/events.json | 54 +
_data/taps/schemas/deputy/v1/json/geo.json | 74 +
.../taps/schemas/deputy/v1/json/journal.json | 39 +
_data/taps/schemas/deputy/v1/json/kiosks.json | 69 +
.../deputy/v1/json/leave_accruals.json | 69 +
.../deputy/v1/json/leave_pay_lines.json | 69 +
.../schemas/deputy/v1/json/leave_rules.json | 99 +
_data/taps/schemas/deputy/v1/json/leaves.json | 89 +
_data/taps/schemas/deputy/v1/json/memos.json | 74 +
.../deputy/v1/json/operational_units.json | 79 +
.../schemas/deputy/v1/json/pay_periods.json | 44 +
.../schemas/deputy/v1/json/pay_rules.json | 149 +
.../deputy/v1/json/public_holidays.json | 34 +
.../schemas/deputy/v1/json/roster_opens.json | 59 +
.../schemas/deputy/v1/json/roster_swaps.json | 54 +
.../taps/schemas/deputy/v1/json/rosters.json | 124 +
.../schemas/deputy/v1/json/sales_data.json | 64 +
.../schemas/deputy/v1/json/schedules.json | 94 +
.../taps/schemas/deputy/v1/json/sms_logs.json | 49 +
_data/taps/schemas/deputy/v1/json/states.json | 49 +
.../deputy/v1/json/stress_profiles.json | 59 +
.../deputy/v1/json/system_usage_balances.json | 44 +
.../deputy/v1/json/system_usage_tracking.json | 64 +
.../deputy/v1/json/task_group_setups.json | 74 +
.../schemas/deputy/v1/json/task_groups.json | 74 +
.../deputy/v1/json/task_opunit_configs.json | 64 +
.../schemas/deputy/v1/json/task_setups.json | 129 +
_data/taps/schemas/deputy/v1/json/tasks.json | 134 +
_data/taps/schemas/deputy/v1/json/teams.json | 34 +
.../deputy/v1/json/timesheet_pay_returns.json | 54 +
.../schemas/deputy/v1/json/timesheets.json | 204 +
.../deputy/v1/json/training_modules.json | 59 +
.../deputy/v1/json/training_records.json | 59 +
.../taps/schemas/deputy/v1/json/webhooks.json | 54 +
.../schemas/dixa/v1/dixa-v1-foreign-keys.yml | 40 +
_data/taps/schemas/dixa/v1/dixa-v1-tables.yml | 39 +
.../schemas/dixa/v1/json/activity_logs.json | 254 +
.../schemas/dixa/v1/json/conversations.json | 446 +
_data/taps/schemas/dixa/v1/json/messages.json | 164 +
_data/taps/schemas/ebay/v1/ebay-v1-tables.yml | 16 +
_data/taps/schemas/ebay/v1/json/orders.json | 2988 ++
.../eloqua/v1/eloqua-v1-foreign-keys.yml | 1415 +
.../schemas/eloqua/v1/eloqua-v1-tables.yml | 317 +
.../taps/schemas/eloqua/v1/json/accounts.json | 29 +
.../eloqua/v1/json/activity_bounceback.json | 89 +
.../v1/json/activity_email_clickthrough.json | 114 +
.../eloqua/v1/json/activity_email_open.json | 94 +
.../eloqua/v1/json/activity_email_send.json | 94 +
.../eloqua/v1/json/activity_form_submit.json | 74 +
.../eloqua/v1/json/activity_page_view.json | 89 +
.../eloqua/v1/json/activity_subscribe.json | 74 +
.../eloqua/v1/json/activity_unsubscribe.json | 74 +
.../eloqua/v1/json/activity_web_visit.json | 44 +
_data/taps/schemas/eloqua/v1/json/assets.json | 57 +
.../schemas/eloqua/v1/json/campaigns.json | 119 +
.../taps/schemas/eloqua/v1/json/contacts.json | 49 +
.../eloqua/v1/json/custom_objects.json | 29 +
.../schemas/eloqua/v1/json/emailGroups.json | 78 +
_data/taps/schemas/eloqua/v1/json/emails.json | 412 +
_data/taps/schemas/eloqua/v1/json/forms.json | 195 +
.../taps/schemas/eloqua/v1/json/visitors.json | 102 +
.../v1/facebook-ads-v1-foreign-keys.yml | 837 +
.../v1/facebook-ads-v1-tables.yml | 298 +
.../facebook-ads/v1/json/adcreative.json | 4530 +++
.../schemas/facebook-ads/v1/json/ads.json | 3287 ++
.../facebook-ads/v1/json/ads_insights.json | 1246 +
.../v1/json/ads_insights_age_and_gender.json | 1259 +
.../v1/json/ads_insights_country.json | 1252 +
.../v1/json/ads_insights_dma.json | 1252 +
.../json/ads_insights_hourly_advertiser.json | 1696 ++
.../ads_insights_platform_and_device.json | 1270 +
.../v1/json/ads_insights_region.json | 1252 +
.../schemas/facebook-ads/v1/json/adsets.json | 2639 ++
.../facebook-ads/v1/json/campaigns.json | 107 +
.../v1/freshdesk-v1-foreign-keys.yml | 229 +
.../freshdesk/v1/freshdesk-v1-tables.yml | 118 +
.../schemas/freshdesk/v1/json/agents.json | 151 +
.../schemas/freshdesk/v1/json/companies.json | 79 +
.../freshdesk/v1/json/conversations.json | 118 +
.../schemas/freshdesk/v1/json/groups.json | 72 +
.../taps/schemas/freshdesk/v1/json/roles.json | 41 +
.../v1/json/satisfaction_ratings.json | 85 +
.../schemas/freshdesk/v1/json/tickets.json | 337 +
.../freshdesk/v1/json/time_entries.json | 68 +
.../frontapp/v1/frontapp-v1-tables.yml | 138 +
.../frontapp/v1/json/customers_table.json | 105 +
.../v1/json/first_response_histo.json | 39 +
.../frontapp/v1/json/resolution_histo.json | 39 +
.../frontapp/v1/json/response_histo.json | 39 +
.../schemas/frontapp/v1/json/tags_table.json | 99 +
.../schemas/frontapp/v1/json/team_table.json | 283 +
.../v1/json/top_conversations_table.json | 51 +
.../v1/json/top_reaction_time_table.json | 51 +
.../frontapp/v1/json/top_replies_table.json | 51 +
.../frontapp/v2/frontapp-v2-tables.yml | 86 +
.../frontapp/v2/json/accounts_table.json | 185 +
.../frontapp/v2/json/channels_table.json | 185 +
.../frontapp/v2/json/inboxes_table.json | 185 +
.../schemas/frontapp/v2/json/tags_table.json | 185 +
.../frontapp/v2/json/teammates_table.json | 185 +
.../schemas/frontapp/v2/json/teams_table.json | 185 +
.../fullstory/v1/fullstory-v1-tables.yml | 21 +
.../schemas/fullstory/v1/json/events.json | 149 +
.../github/v1/github-v1-foreign-keys.yml | 281 +
.../schemas/github/v1/github-v1-tables.yml | 265 +
.../schemas/github/v1/json/assignees.json | 38 +
.../schemas/github/v1/json/collaborators.json | 38 +
.../taps/schemas/github/v1/json/comments.json | 187 +
.../github/v1/json/commit_comments.json | 190 +
.../taps/schemas/github/v1/json/commits.json | 264 +
_data/taps/schemas/github/v1/json/events.json | 296 +
.../schemas/github/v1/json/issue_events.json | 1466 +
.../schemas/github/v1/json/issue_labels.json | 56 +
.../github/v1/json/issue_milestones.json | 220 +
_data/taps/schemas/github/v1/json/issues.json | 329 +
.../schemas/github/v1/json/pr_commits.json | 144 +
.../schemas/github/v1/json/project_cards.json | 106 +
.../github/v1/json/project_columns.json | 62 +
.../taps/schemas/github/v1/json/projects.json | 100 +
.../schemas/github/v1/json/pull_requests.json | 203 +
.../taps/schemas/github/v1/json/releases.json | 101 +
.../github/v1/json/review_comments.json | 239 +
.../taps/schemas/github/v1/json/reviews.json | 77 +
.../schemas/github/v1/json/stargazers.json | 41 +
.../schemas/github/v1/json/team_members.json | 128 +
.../github/v1/json/team_memberships.json | 32 +
_data/taps/schemas/github/v1/json/teams.json | 87 +
.../github/v2/github-v2-foreign-keys.yml | 312 +
.../schemas/github/v2/github-v2-tables.yml | 271 +
.../schemas/github/v2/json/assignees.json | 140 +
.../schemas/github/v2/json/collaborators.json | 177 +
.../taps/schemas/github/v2/json/comments.json | 559 +
.../github/v2/json/commit_comments.json | 281 +
.../taps/schemas/github/v2/json/commits.json | 695 +
_data/taps/schemas/github/v2/json/events.json | 3780 +++
.../schemas/github/v2/json/issue_events.json | 4206 +++
.../schemas/github/v2/json/issue_labels.json | 56 +
.../github/v2/json/issue_milestones.json | 238 +
_data/taps/schemas/github/v2/json/issues.json | 1356 +
.../schemas/github/v2/json/pr_commits.json | 633 +
.../schemas/github/v2/json/project_cards.json | 232 +
.../github/v2/json/project_columns.json | 62 +
.../taps/schemas/github/v2/json/projects.json | 226 +
.../schemas/github/v2/json/pull_requests.json | 4886 +++
.../taps/schemas/github/v2/json/releases.json | 554 +
.../github/v2/json/review_comments.json | 528 +
.../taps/schemas/github/v2/json/reviews.json | 255 +
.../schemas/github/v2/json/stargazers.json | 159 +
.../schemas/github/v2/json/team_members.json | 146 +
.../github/v2/json/team_memberships.json | 38 +
_data/taps/schemas/github/v2/json/teams.json | 124 +
.../gitlab/v1/gitlab-v1-foreign-keys.yml | 153 +
.../schemas/gitlab/v1/gitlab-v1-tables.yml | 98 +
.../taps/schemas/gitlab/v1/json/branches.json | 41 +
.../taps/schemas/gitlab/v1/json/commits.json | 59 +
_data/taps/schemas/gitlab/v1/json/groups.json | 89 +
_data/taps/schemas/gitlab/v1/json/issues.json | 106 +
.../schemas/gitlab/v1/json/milestones.json | 65 +
.../taps/schemas/gitlab/v1/json/projects.json | 336 +
_data/taps/schemas/gitlab/v1/json/users.json | 38 +
.../v1/google-ads-adwords-v1-foreign-keys.yml | 1552 +
.../v1/google-ads-adwords-v1-tables.yml | 362 +
.../v1/json/account_performance_report.json | 24 +
.../google-ads-adwords/v1/json/accounts.json | 44 +
.../google-ads-adwords/v1/json/ad_groups.json | 258 +
.../v1/json/ad_performance_report.json | 24 +
.../v1/json/adgroup_performance_report.json | 24 +
.../google-ads-adwords/v1/json/ads.json | 134 +
.../v1/json/age_range_performance_report.json | 24 +
.../v1/json/audience_performance_report.json | 24 +
.../call_metrics_call_details_report.json | 24 +
.../v1/json/campaign_performance_report.json | 24 +
.../google-ads-adwords/v1/json/campaigns.json | 294 +
.../v1/json/click_performance_report.json | 24 +
.../v1/json/criteria_performance_report.json | 24 +
.../display_keyword_performance_report.json | 24 +
.../display_topics_performance_report.json | 24 +
.../v1/json/final_url_report.json | 24 +
.../v1/json/gender_performance_report.json | 24 +
.../v1/json/geo_performance_report.json | 24 +
.../v1/json/keywordless_query_report.json | 24 +
.../v1/json/keywords_performance_report.json | 24 +
.../json/search_query_performance_report.json | 24 +
.../v1/json/video_performance_report.json | 24 +
.../google-ads/v1/google-ads-v1-tables.yml | 553 +
.../json/accessible_bidding_strategies.json | 127 +
.../v1/json/account_performance_report.json | 360 +
.../schemas/google-ads/v1/json/accounts.json | 225 +
.../ad_group_audience_performance_report.json | 443 +
.../v1/json/ad_group_criterion.json | 275 +
.../v1/json/ad_group_performance_report.json | 608 +
.../schemas/google-ads/v1/json/ad_groups.json | 427 +
.../v1/json/ad_performance_report.json | 971 +
.../taps/schemas/google-ads/v1/json/ads.json | 16525 ++++++++++
.../v1/json/age_range_performance_report.json | 454 +
.../v1/json/bidding_strategies.json | 188 +
.../google-ads/v1/json/call_details.json | 64 +
.../campaign_audience_performance_report.json | 660 +
.../google-ads/v1/json/campaign_budgets.json | 95 +
.../v1/json/campaign_criterion.json | 54 +
.../google-ads/v1/json/campaign_labels.json | 19 +
.../v1/json/campaign_performance_report.json | 650 +
.../schemas/google-ads/v1/json/campaigns.json | 1482 +
.../google-ads/v1/json/carrier_constant.json | 24 +
.../v1/json/click_performance_report.json | 191 +
.../display_keyword_performance_report.json | 464 +
.../display_topics_performance_report.json | 465 +
.../v1/json/expanded_landing_page_report.json | 274 +
.../taps/schemas/google-ads/v1/json/feed.json | 119 +
.../schemas/google-ads/v1/json/feed_item.json | 322 +
.../v1/json/gender_performance_report.json | 459 +
.../v1/json/geo_performance_report.json | 289 +
.../v1/json/keywordless_query_report.json | 231 +
.../v1/json/keywords_performance_report.json | 682 +
.../schemas/google-ads/v1/json/labels.json | 41 +
.../v1/json/landing_page_report.json | 274 +
.../google-ads/v1/json/language_constant.json | 29 +
.../v1/json/mobile_app_category_constant.json | 19 +
.../v1/json/mobile_device_constant.json | 34 +
.../operating_system_verison_constant.json | 34 +
.../v1/json/placeholder_feed_item_report.json | 394 +
.../v1/json/placeholder_report.json | 281 +
.../v1/json/placement_performance_report.json | 454 +
.../json/search_query_performance_report.json | 355 +
.../v1/json/shopping_performance_report.json | 352 +
.../google-ads/v1/json/topic_constant.json | 31 +
.../google-ads/v1/json/user_interest.json | 111 +
.../schemas/google-ads/v1/json/user_list.json | 109 +
.../user_location_performance_report.json | 289 +
.../v1/json/video_performance_report.json | 285 +
.../google-analytics-360-v1-foreign-keys.yml | 49 +
.../v1/google-analytics-360-v1-tables.yml | 27 +
.../v1/json/ga_session_hits.json | 1350 +
.../v1/json/ga_sessions.json | 502 +
.../v1/google-analytics-4-v1-tables.yml | 19 +
.../v1/json/sample_report.json | 34 +
...e-analytics-adwords-v05-12-2017-tables.yml | 27 +
.../v05-12-2017/json/report.json | 64 +
...e-analytics-adwords-v15-10-2015-tables.yml | 35 +
.../v15-10-2015/json/adwords.json | 69 +
.../v15-10-2015/json/campaigns.json | 49 +
.../v1/google-analytics-v1-tables.yml | 19 +
.../v1/json/sample_report.json | 34 +
.../google-analytics-v14-09-2016-tables.yml | 23 +
.../v14-09-2016/json/sample_report.json | 14 +
.../google-ecommerce-v15-10-2015-tables.yml | 11 +
.../v15-10-2015/json/ecommerce_v2.json | 59 +
.../google-search-console-v1-foreign-keys.yml | 348 +
.../v1/google-search-console-v1-tables.yml | 138 +
.../v1/json/performance_report_country.json | 56 +
.../v1/json/performance_report_custom.json | 80 +
.../v1/json/performance_report_date.json | 50 +
.../v1/json/performance_report_device.json | 56 +
.../v1/json/performance_report_page.json | 56 +
.../v1/json/performance_report_query.json | 56 +
.../v1/json/sitemaps.json | 94 +
.../google-search-console/v1/json/sites.json | 18 +
.../v1/google-sheets-v1-foreign-keys.yml | 99 +
.../v1/google-sheets-v1-tables.yml | 77 +
.../google-sheets/v1/json/file_metadata.json | 75 +
.../google-sheets/v1/json/sample_table.json | 24 +
.../google-sheets/v1/json/sheet_metadata.json | 143 +
.../google-sheets/v1/json/sheets_loaded.json | 36 +
.../v1/json/spreadsheet_metadata.json | 51 +
.../v2/google-sheets-v2-tables.yml | 55 +
.../google-sheets/v2/json/file_metadata.json | 75 +
.../google-sheets/v2/json/sheet_metadata.json | 143 +
.../google-sheets/v2/json/sheets_loaded.json | 36 +
.../v2/json/spreadsheet_metadata.json | 51 +
.../v1/harvest-forecast-v1-foreign-keys.yml | 347 +
.../v1/harvest-forecast-v1-tables.yml | 79 +
.../harvest-forecast/v1/json/assignments.json | 78 +
.../harvest-forecast/v1/json/clients.json | 42 +
.../harvest-forecast/v1/json/milestones.json | 42 +
.../harvest-forecast/v1/json/people.json | 150 +
.../v1/json/placeholders.json | 42 +
.../harvest-forecast/v1/json/projects.json | 84 +
.../harvest-forecast/v1/json/roles.json | 48 +
.../schemas/harvest/v1/harvest-v1-tables.yml | 190 +
.../taps/schemas/harvest/v1/json/clients.json | 77 +
.../schemas/harvest/v1/json/contacts.json | 71 +
.../harvest/v1/json/expense_categories.json | 47 +
.../schemas/harvest/v1/json/expenses.json | 113 +
.../v1/json/invoice_item_categories.json | 41 +
.../harvest/v1/json/invoice_messages.json | 95 +
.../harvest/v1/json/invoice_payments.json | 77 +
.../schemas/harvest/v1/json/invoices.json | 182 +
.../taps/schemas/harvest/v1/json/people.json | 113 +
.../harvest/v1/json/project_tasks.json | 65 +
.../harvest/v1/json/project_users.json | 65 +
.../schemas/harvest/v1/json/projects.json | 155 +
_data/taps/schemas/harvest/v1/json/tasks.json | 53 +
.../schemas/harvest/v1/json/time_entries.json | 89 +
.../harvest/v2/harvest-v2-foreign-keys.yml | 946 +
.../schemas/harvest/v2/harvest-v2-tables.yml | 333 +
.../taps/schemas/harvest/v2/json/clients.json | 47 +
.../schemas/harvest/v2/json/contacts.json | 71 +
.../v2/json/estimate_item_categories.json | 29 +
.../harvest/v2/json/estimate_line_items.json | 59 +
.../harvest/v2/json/estimate_messages.json | 103 +
.../schemas/harvest/v2/json/estimates.json | 146 +
.../harvest/v2/json/expense_categories.json | 47 +
.../schemas/harvest/v2/json/expenses.json | 137 +
.../v2/json/invoice_item_categories.json | 41 +
.../harvest/v2/json/invoice_line_items.json | 65 +
.../harvest/v2/json/invoice_messages.json | 133 +
.../harvest/v2/json/invoice_payments.json | 83 +
.../schemas/harvest/v2/json/invoices.json | 194 +
.../harvest/v2/json/project_tasks.json | 59 +
.../harvest/v2/json/project_users.json | 59 +
.../schemas/harvest/v2/json/projects.json | 149 +
_data/taps/schemas/harvest/v2/json/roles.json | 29 +
_data/taps/schemas/harvest/v2/json/tasks.json | 53 +
.../schemas/harvest/v2/json/time_entries.json | 161 +
.../json/time_entry_external_reference.json | 17 +
.../harvest/v2/json/user_project_tasks.json | 17 +
.../harvest/v2/json/user_projects.json | 65 +
.../schemas/harvest/v2/json/user_roles.json | 17 +
_data/taps/schemas/harvest/v2/json/users.json | 125 +
.../schemas/heap/v1/heap-v1-foreign-keys.yml | 154 +
_data/taps/schemas/heap/v1/heap-v1-tables.yml | 80 +
.../schemas/heap/v1/json/event_tables.json | 204 +
.../taps/schemas/heap/v1/json/pageviews.json | 164 +
_data/taps/schemas/heap/v1/json/sessions.json | 124 +
.../schemas/heap/v1/json/user_migrations.json | 19 +
_data/taps/schemas/heap/v1/json/users.json | 34 +
.../v1/helpscout-v1-foreign-keys.yml | 237 +
.../helpscout/v1/helpscout-v1-tables.yml | 135 +
.../v1/json/conversation_threads.json | 322 +
.../helpscout/v1/json/conversations.json | 379 +
.../schemas/helpscout/v1/json/customers.json | 328 +
.../v1/json/happiness_ratings_report.json | 69 +
.../helpscout/v1/json/mailbox_fields.json | 76 +
.../helpscout/v1/json/mailbox_folders.json | 54 +
.../schemas/helpscout/v1/json/mailboxes.json | 42 +
.../helpscout/v1/json/team_members.json | 16 +
.../taps/schemas/helpscout/v1/json/teams.json | 53 +
.../taps/schemas/helpscout/v1/json/users.json | 66 +
.../schemas/helpscout/v1/json/workflows.json | 54 +
.../hubspot-v01-03-2017-tables.yml | 160 +
.../hubspot/v01-03-2017/json/campaigns.json | 81 +
.../hubspot/v01-03-2017/json/companies.json | 19 +
.../v01-03-2017/json/contact_lists.json | 140 +
.../hubspot/v01-03-2017/json/contacts.json | 277 +
.../hubspot/v01-03-2017/json/deals.json | 62 +
.../v01-03-2017/json/email_events.json | 185 +
.../hubspot/v01-03-2017/json/engagements.json | 239 +
.../hubspot/v01-03-2017/json/forms.json | 338 +
.../hubspot/v01-03-2017/json/keywords.json | 39 +
.../hubspot/v01-03-2017/json/owners.json | 76 +
.../json/subscription_changes.json | 73 +
.../hubspot/v01-03-2017/json/workflows.json | 75 +
.../schemas/hubspot/v1/hubspot-v1-issues.txt | 2 +
.../schemas/hubspot/v1/hubspot-v1-tables.yml | 181 +
.../schemas/hubspot/v1/json/campaigns.json | 103 +
.../schemas/hubspot/v1/json/companies.json | 23 +
.../hubspot/v1/json/contact_lists.json | 165 +
.../schemas/hubspot/v1/json/contacts.json | 362 +
.../hubspot/v1/json/contacts_by_company.json | 14 +
.../hubspot/v1/json/deal_pipelines.json | 82 +
_data/taps/schemas/hubspot/v1/json/deals.json | 67 +
.../schemas/hubspot/v1/json/email_events.json | 221 +
.../schemas/hubspot/v1/json/engagements.json | 258 +
_data/taps/schemas/hubspot/v1/json/forms.json | 401 +
.../schemas/hubspot/v1/json/keywords.json | 47 +
.../taps/schemas/hubspot/v1/json/owners.json | 109 +
.../hubspot/v1/json/subscription_changes.json | 93 +
.../schemas/hubspot/v1/json/workflows.json | 76 +
.../hubspot/v2/hubspot-v2-foreign-keys.yml | 624 +
.../schemas/hubspot/v2/hubspot-v2-tables.yml | 221 +
.../schemas/hubspot/v2/json/campaigns.json | 175 +
.../schemas/hubspot/v2/json/companies.json | 17 +
.../hubspot/v2/json/contact_lists.json | 162 +
.../schemas/hubspot/v2/json/contacts.json | 368 +
.../hubspot/v2/json/contacts_by_company.json | 16 +
.../hubspot/v2/json/deal_pipelines.json | 82 +
_data/taps/schemas/hubspot/v2/json/deals.json | 67 +
.../schemas/hubspot/v2/json/email_events.json | 221 +
.../schemas/hubspot/v2/json/engagements.json | 264 +
_data/taps/schemas/hubspot/v2/json/forms.json | 401 +
.../taps/schemas/hubspot/v2/json/owners.json | 127 +
.../hubspot/v2/json/subscription_changes.json | 93 +
.../taps/schemas/hubspot/v2/json/tickets.json | 136 +
.../schemas/hubspot/v2/json/workflows.json | 76 +
.../ilevel/v1/ilevel-v1-foreign-keys.yml | 347 +
.../schemas/ilevel/v1/ilevel-v1-tables.yml | 153 +
.../v1/json/asset_to_asset_relations.json | 43 +
_data/taps/schemas/ilevel/v1/json/assets.json | 211 +
.../schemas/ilevel/v1/json/data_items.json | 157 +
.../v1/json/fund_to_asset_relations.json | 43 +
.../v1/json/fund_to_fund_relations.json | 43 +
_data/taps/schemas/ilevel/v1/json/funds.json | 205 +
.../v1/json/investment_transactions.json | 357 +
.../schemas/ilevel/v1/json/investments.json | 79 +
.../v1/json/periodic_data_calculated.json | 108 +
.../v1/json/periodic_data_standardized.json | 108 +
.../schemas/ilevel/v1/json/scenarios.json | 31 +
.../schemas/ilevel/v1/json/securities.json | 91 +
.../impact/v1/impact-v1-foreign-keys.yml | 1979 ++
.../schemas/impact/v1/impact-v1-tables.yml | 290 +
.../impact/v1/json/action_inquiries.json | 169 +
.../impact/v1/json/action_updates.json | 170 +
.../taps/schemas/impact/v1/json/actions.json | 241 +
_data/taps/schemas/impact/v1/json/ads.json | 525 +
.../impact/v1/json/api_submissions.json | 96 +
.../schemas/impact/v1/json/campaigns.json | 373 +
.../schemas/impact/v1/json/catalog_items.json | 417 +
.../taps/schemas/impact/v1/json/catalogs.json | 72 +
_data/taps/schemas/impact/v1/json/clicks.json | 242 +
.../impact/v1/json/company_information.json | 336 +
.../taps/schemas/impact/v1/json/contacts.json | 149 +
.../impact/v1/json/conversion_paths.json | 597 +
_data/taps/schemas/impact/v1/json/deals.json | 331 +
.../impact/v1/json/exception_list_items.json | 48 +
.../impact/v1/json/exception_lists.json | 94 +
.../impact/v1/json/ftp_file_submissions.json | 72 +
.../taps/schemas/impact/v1/json/invoices.json | 141 +
.../impact/v1/json/media_partner_groups.json | 64 +
.../impact/v1/json/media_partners.json | 263 +
_data/taps/schemas/impact/v1/json/notes.json | 82 +
.../schemas/impact/v1/json/phone_numbers.json | 54 +
.../schemas/impact/v1/json/promo_codes.json | 397 +
.../impact/v1/json/report_metadata.json | 104 +
.../taps/schemas/impact/v1/json/reports.json | 36 +
.../v1/json/tracking_value_requests.json | 517 +
.../schemas/impact/v1/json/unique_urls.json | 78 +
.../impact/v2/impact-v2-foreign-keys.yml | 1979 ++
.../schemas/impact/v2/impact-v2-tables.yml | 290 +
.../impact/v2/json/action_inquiries.json | 169 +
.../impact/v2/json/action_updates.json | 170 +
.../taps/schemas/impact/v2/json/actions.json | 241 +
_data/taps/schemas/impact/v2/json/ads.json | 525 +
.../impact/v2/json/api_submissions.json | 96 +
.../schemas/impact/v2/json/campaigns.json | 373 +
.../schemas/impact/v2/json/catalog_items.json | 417 +
.../taps/schemas/impact/v2/json/catalogs.json | 72 +
_data/taps/schemas/impact/v2/json/clicks.json | 242 +
.../impact/v2/json/company_information.json | 336 +
.../taps/schemas/impact/v2/json/contacts.json | 149 +
.../impact/v2/json/conversion_paths.json | 597 +
_data/taps/schemas/impact/v2/json/deals.json | 331 +
.../impact/v2/json/exception_list_items.json | 48 +
.../impact/v2/json/exception_lists.json | 94 +
.../impact/v2/json/ftp_file_submissions.json | 72 +
.../taps/schemas/impact/v2/json/invoices.json | 141 +
.../impact/v2/json/media_partner_groups.json | 64 +
.../impact/v2/json/media_partners.json | 263 +
_data/taps/schemas/impact/v2/json/notes.json | 82 +
.../schemas/impact/v2/json/phone_numbers.json | 54 +
.../schemas/impact/v2/json/promo_codes.json | 397 +
.../impact/v2/json/report_metadata.json | 104 +
.../taps/schemas/impact/v2/json/reports.json | 36 +
.../v2/json/tracking_value_requests.json | 517 +
.../schemas/impact/v2/json/unique_urls.json | 78 +
.../schemas/intacct/v1/intacct-v1-tables.yml | 3 +
.../intercom-v02-02-2016-foreign-keys.yml | 305 +
.../intercom-v02-02-2016-tables.yml | 134 +
.../intercom/v02-02-2016/json/admins.json | 46 +
.../intercom/v02-02-2016/json/companies.json | 112 +
.../v02-02-2016/json/company_segments.json | 34 +
.../intercom/v02-02-2016/json/contacts.json | 259 +
.../v02-02-2016/json/conversations.json | 311 +
.../intercom/v02-02-2016/json/segments.json | 34 +
.../intercom/v02-02-2016/json/tags.json | 19 +
.../intercom/v02-02-2016/json/users.json | 279 +
.../intercom/v1/intercom-v1-foreign-keys.yml | 394 +
.../intercom/v1/intercom-v1-tables.yml | 183 +
.../taps/schemas/intercom/v1/json/admins.json | 95 +
.../schemas/intercom/v1/json/companies.json | 169 +
.../intercom/v1/json/company_attributes.json | 103 +
.../intercom/v1/json/company_segments.json | 42 +
.../intercom/v1/json/contact_attributes.json | 105 +
.../schemas/intercom/v1/json/contacts.json | 524 +
.../intercom/v1/json/conversation_parts.json | 175 +
.../intercom/v1/json/conversations.json | 779 +
.../schemas/intercom/v1/json/segments.json | 42 +
_data/taps/schemas/intercom/v1/json/tags.json | 24 +
.../taps/schemas/intercom/v1/json/teams.json | 37 +
.../intercom/v2/intercom-v2-tables.yml | 183 +
.../taps/schemas/intercom/v2/json/admins.json | 95 +
.../schemas/intercom/v2/json/companies.json | 175 +
.../intercom/v2/json/company_attributes.json | 115 +
.../intercom/v2/json/company_segments.json | 48 +
.../intercom/v2/json/contact_attributes.json | 117 +
.../schemas/intercom/v2/json/contacts.json | 446 +
.../intercom/v2/json/conversation_parts.json | 181 +
.../intercom/v2/json/conversations.json | 862 +
.../schemas/intercom/v2/json/segments.json | 48 +
_data/taps/schemas/intercom/v2/json/tags.json | 24 +
.../taps/schemas/intercom/v2/json/teams.json | 37 +
.../invoiced/v1/invoiced-v1-foreign-keys.yml | 217 +
.../invoiced/v1/invoiced-v1-tables.yml | 91 +
.../invoiced/v1/json/credit_notes.json | 156 +
.../schemas/invoiced/v1/json/customers.json | 203 +
.../schemas/invoiced/v1/json/estimates.json | 193 +
.../schemas/invoiced/v1/json/invoices.json | 192 +
.../taps/schemas/invoiced/v1/json/plans.json | 106 +
.../invoiced/v1/json/subscriptions.json | 187 +
.../invoiced/v1/json/transactions.json | 124 +
.../v1/iterable-core-v1-foreign-keys.yml | 1082 +
.../v1/iterable-core-v1-tables.yml | 194 +
.../iterable-core/v1/json/campaigns.json | 129 +
.../iterable-core/v1/json/channels.json | 32 +
.../iterable-core/v1/json/email_bounce.json | 76 +
.../iterable-core/v1/json/email_click.json | 118 +
.../v1/json/email_complaint.json | 70 +
.../iterable-core/v1/json/email_open.json | 112 +
.../iterable-core/v1/json/email_send.json | 261 +
.../v1/json/email_send_skip.json | 237 +
.../v1/json/email_subscribe.json | 112 +
.../v1/json/email_unsubscribe.json | 125 +
.../iterable-core/v1/json/list_users.json | 26 +
.../schemas/iterable-core/v1/json/lists.json | 38 +
.../iterable-core/v1/json/message_types.json | 44 +
.../iterable-core/v1/json/metadata.json | 131 +
.../iterable-core/v1/json/templates.json | 56 +
.../schemas/iterable-core/v1/json/users.json | 1830 ++
.../schemas/jira/v1/jira-v1-foreign-keys.yml | 428 +
_data/taps/schemas/jira/v1/jira-v1-tables.yml | 221 +
.../taps/schemas/jira/v1/json/changelogs.json | 399 +
.../schemas/jira/v1/json/issue_comments.json | 319 +
.../jira/v1/json/issue_transitions.json | 386 +
_data/taps/schemas/jira/v1/json/issues.json | 784 +
.../jira/v1/json/project_categories.json | 33 +
.../schemas/jira/v1/json/project_types.json | 39 +
_data/taps/schemas/jira/v1/json/projects.json | 1241 +
.../schemas/jira/v1/json/resolutions.json | 39 +
_data/taps/schemas/jira/v1/json/roles.json | 79 +
_data/taps/schemas/jira/v1/json/users.json | 83 +
_data/taps/schemas/jira/v1/json/versions.json | 184 +
_data/taps/schemas/jira/v1/json/worklogs.json | 325 +
.../schemas/jira/v2/jira-v2-foreign-keys.yml | 754 +
_data/taps/schemas/jira/v2/jira-v2-tables.yml | 242 +
.../taps/schemas/jira/v2/json/changelogs.json | 399 +
.../taps/schemas/jira/v2/json/components.json | 514 +
.../schemas/jira/v2/json/issue_comments.json | 319 +
.../jira/v2/json/issue_transitions.json | 386 +
_data/taps/schemas/jira/v2/json/issues.json | 784 +
.../jira/v2/json/project_categories.json | 33 +
.../schemas/jira/v2/json/project_types.json | 39 +
_data/taps/schemas/jira/v2/json/projects.json | 1241 +
.../schemas/jira/v2/json/resolutions.json | 39 +
_data/taps/schemas/jira/v2/json/roles.json | 79 +
_data/taps/schemas/jira/v2/json/users.json | 83 +
_data/taps/schemas/jira/v2/json/versions.json | 184 +
_data/taps/schemas/jira/v2/json/worklogs.json | 325 +
.../taps/schemas/klaviyo/v1/json/bounce.json | 64 +
.../schemas/klaviyo/v1/json/campaigns.json | 150 +
_data/taps/schemas/klaviyo/v1/json/click.json | 64 +
.../schemas/klaviyo/v1/json/clicked_sms.json | 64 +
.../klaviyo/v1/json/consented_to_receive.json | 64 +
.../klaviyo/v1/json/dropped_email.json | 64 +
.../klaviyo/v1/json/failed_to_deliver.json | 64 +
.../failed_to_deliver_automated_response.json | 64 +
.../klaviyo/v1/json/global_exclusions.json | 32 +
_data/taps/schemas/klaviyo/v1/json/lists.json | 56 +
.../schemas/klaviyo/v1/json/mark_as_spam.json | 64 +
_data/taps/schemas/klaviyo/v1/json/open.json | 64 +
.../taps/schemas/klaviyo/v1/json/receive.json | 64 +
.../v1/json/received_automated_response.json | 64 +
.../schemas/klaviyo/v1/json/received_sms.json | 64 +
.../schemas/klaviyo/v1/json/sent_sms.json | 64 +
.../klaviyo/v1/json/subscribe_list.json | 64 +
.../schemas/klaviyo/v1/json/unsub_list.json | 64 +
.../schemas/klaviyo/v1/json/unsubscribe.json | 64 +
.../v1/json/unsubscribed_from_sms.json | 64 +
.../v1/json/update_email_preferences.json | 64 +
.../schemas/klaviyo/v1/klaviyo-v1-tables.yml | 247 +
.../kustomer/v1/json/conversations.json | 1668 +
.../schemas/kustomer/v1/json/customers.json | 982 +
.../schemas/kustomer/v1/json/kobjects.json | 234 +
.../schemas/kustomer/v1/json/messages.json | 240 +
.../taps/schemas/kustomer/v1/json/notes.json | 238 +
.../schemas/kustomer/v1/json/shortcuts.json | 519 +
_data/taps/schemas/kustomer/v1/json/tags.json | 132 +
.../taps/schemas/kustomer/v1/json/teams.json | 197 +
.../taps/schemas/kustomer/v1/json/users.json | 230 +
.../kustomer/v1/kustomer-v1-foreign-keys.yml | 40 +
.../kustomer/v1/kustomer-v1-tables.yml | 121 +
.../lever/v1/json/archive_reasons.json | 11 +
.../lever/v1/json/candidate_applications.json | 57 +
.../lever/v1/json/candidate_offers.json | 120 +
.../lever/v1/json/candidate_referrals.json | 123 +
.../lever/v1/json/candidate_resumes.json | 28 +
.../schemas/lever/v1/json/candidates.json | 217 +
.../schemas/lever/v1/json/opportunities.json | 210 +
.../v1/json/opportunity_applications.json | 57 +
.../lever/v1/json/opportunity_offers.json | 240 +
.../lever/v1/json/opportunity_referrals.json | 123 +
.../lever/v1/json/opportunity_resumes.json | 28 +
.../taps/schemas/lever/v1/json/postings.json | 190 +
.../schemas/lever/v1/json/requisitions.json | 106 +
_data/taps/schemas/lever/v1/json/sources.json | 11 +
_data/taps/schemas/lever/v1/json/stages.json | 11 +
_data/taps/schemas/lever/v1/json/users.json | 56 +
.../lever/v1/lever-v1-foreign-keys.yml | 1906 ++
.../taps/schemas/lever/v1/lever-v1-issues.txt | 10 +
.../taps/schemas/lever/v1/lever-v1-tables.yml | 262 +
.../linkedin-ads/v1/json/account_users.json | 87 +
.../linkedin-ads/v1/json/accounts.json | 184 +
.../v1/json/ad_analytics_by_campaign.json | 496 +
.../v1/json/ad_analytics_by_creative.json | 496 +
.../linkedin-ads/v1/json/campaign_groups.json | 127 +
.../linkedin-ads/v1/json/campaigns.json | 461 +
.../linkedin-ads/v1/json/creatives.json | 178 +
.../linkedin-ads/v1/json/video_ads.json | 111 +
.../v1/linkedin-ads-v1-foreign-keys.yml | 188 +
.../v1/linkedin-ads-v1-tables.yml | 121 +
.../linkedin-ads/v2/json/account_users.json | 96 +
.../linkedin-ads/v2/json/accounts.json | 199 +
.../v2/json/ad_analytics_by_campaign.json | 754 +
.../v2/json/ad_analytics_by_creative.json | 754 +
.../linkedin-ads/v2/json/campaign_groups.json | 169 +
.../linkedin-ads/v2/json/campaigns.json | 590 +
.../linkedin-ads/v2/json/creatives.json | 135 +
.../linkedin-ads/v2/json/video_ads.json | 114 +
.../v2/linkedin-ads-v2-foreign-keys.yml | 188 +
.../v2/linkedin-ads-v2-tables.yml | 111 +
_data/taps/schemas/listrak/v1/json/lists.json | 159 +
.../listrak/v1/json/message_bounces.json | 47 +
.../listrak/v1/json/message_clicks.json | 41 +
.../listrak/v1/json/message_opens.json | 29 +
.../listrak/v1/json/message_reads.json | 29 +
.../listrak/v1/json/message_sends.json | 17 +
.../listrak/v1/json/message_unsubs.json | 41 +
.../schemas/listrak/v1/json/messages.json | 119 +
.../listrak/v1/json/subscribed_contacts.json | 34 +
.../listrak/v1/listrak-v1-foreign-keys.yml | 345 +
.../schemas/listrak/v1/listrak-v1-tables.yml | 123 +
.../liveperson/v1/json/agent_activity.json | 123 +
.../liveperson/v1/json/agent_groups.json | 23 +
.../v1/json/agent_state_distribution.json | 15 +
.../liveperson/v1/json/agent_status.json | 20 +
.../v1/json/engagement_history.json | 956 +
.../v1/json/messaging_interactions.json | 1036 +
.../v1/json/messaging_queue_health.json | 125 +
.../liveperson/v1/json/queue_health.json | 74 +
.../schemas/liveperson/v1/json/skills.json | 17 +
.../schemas/liveperson/v1/json/users.json | 17 +
.../liveperson/v1/liveperson-v1-tables.yml | 130 +
.../looker/v1/json/color_collections.json | 188 +
.../schemas/looker/v1/json/connections.json | 391 +
.../looker/v1/json/content_favorites.json | 348 +
.../looker/v1/json/content_metadata.json | 75 +
.../v1/json/content_metadata_access.json | 39 +
.../schemas/looker/v1/json/content_views.json | 69 +
.../looker/v1/json/dashboard_elements.json | 1248 +
.../looker/v1/json/dashboard_filters.json | 109 +
.../looker/v1/json/dashboard_layouts.json | 138 +
.../schemas/looker/v1/json/dashboards.json | 282 +
.../schemas/looker/v1/json/datagroups.json | 63 +
.../taps/schemas/looker/v1/json/explores.json | 2335 ++
.../taps/schemas/looker/v1/json/folders.json | 1074 +
.../schemas/looker/v1/json/git_branches.json | 111 +
_data/taps/schemas/looker/v1/json/groups.json | 57 +
.../looker/v1/json/groups_in_group.json | 63 +
.../looker/v1/json/integration_hubs.json | 69 +
.../schemas/looker/v1/json/integrations.json | 243 +
.../looker/v1/json/lookml_dashboards.json | 282 +
.../schemas/looker/v1/json/lookml_models.json | 96 +
_data/taps/schemas/looker/v1/json/looks.json | 399 +
.../schemas/looker/v1/json/merge_queries.json | 120 +
.../schemas/looker/v1/json/model_sets.json | 51 +
_data/taps/schemas/looker/v1/json/models.json | 96 +
.../looker/v1/json/permission_sets.json | 51 +
.../schemas/looker/v1/json/permissions.json | 27 +
.../schemas/looker/v1/json/project_files.json | 90 +
.../taps/schemas/looker/v1/json/projects.json | 105 +
.../taps/schemas/looker/v1/json/queries.json | 196 +
.../schemas/looker/v1/json/query_history.json | 76 +
.../schemas/looker/v1/json/role_groups.json | 63 +
_data/taps/schemas/looker/v1/json/roles.json | 147 +
.../looker/v1/json/scheduled_plans.json | 316 +
_data/taps/schemas/looker/v1/json/themes.json | 132 +
.../v1/json/user_attribute_group_values.json | 45 +
.../looker/v1/json/user_attribute_values.json | 69 +
.../looker/v1/json/user_attributes.json | 75 +
.../looker/v1/json/user_login_lockouts.json | 63 +
.../schemas/looker/v1/json/user_sessions.json | 93 +
_data/taps/schemas/looker/v1/json/users.json | 757 +
.../taps/schemas/looker/v1/json/versions.json | 87 +
.../schemas/looker/v1/json/workspaces.json | 126 +
.../looker/v1/looker-v1-foreign-keys.yml | 5666 ++++
.../schemas/looker/v1/looker-v1-tables.yml | 490 +
.../schemas/lookml/v1/json/model_files.json | 90 +
_data/taps/schemas/lookml/v1/json/models.json | 684 +
.../schemas/lookml/v1/json/view_files.json | 90 +
_data/taps/schemas/lookml/v1/json/views.json | 2009 ++
.../schemas/lookml/v1/lookml-v1-tables.yml | 65 +
.../mailchimp/v1/json/automations.json | 350 +
.../schemas/mailchimp/v1/json/campaigns.json | 458 +
.../mailchimp/v1/json/list_members.json | 211 +
.../v1/json/list_segment_members.json | 163 +
.../mailchimp/v1/json/list_segments.json | 101 +
.../taps/schemas/mailchimp/v1/json/lists.json | 312 +
.../v1/json/reports_email_activity.json | 63 +
.../mailchimp/v1/json/unsubscribes.json | 55 +
.../v1/mailchimp-v1-foreign-keys.yml | 223 +
.../mailchimp/v1/mailchimp-v1-tables.yml | 108 +
.../schemas/mailshake/v1/json/campaigns.json | 156 +
.../schemas/mailshake/v1/json/clicks.json | 200 +
.../taps/schemas/mailshake/v1/json/leads.json | 179 +
.../taps/schemas/mailshake/v1/json/opens.json | 194 +
.../schemas/mailshake/v1/json/recipients.json | 68 +
.../schemas/mailshake/v1/json/replies.json | 236 +
.../schemas/mailshake/v1/json/senders.json | 42 +
.../mailshake/v1/json/sent_messages.json | 293 +
.../mailshake/v1/json/team_members.json | 72 +
.../v1/mailshake-v1-foreign-keys.yml | 402 +
.../mailshake/v1/mailshake-v1-tables.yml | 107 +
.../schemas/mambu/v1/json/activities.json | 148 +
.../taps/schemas/mambu/v1/json/branches.json | 238 +
_data/taps/schemas/mambu/v1/json/cards.json | 18 +
_data/taps/schemas/mambu/v1/json/centres.json | 192 +
_data/taps/schemas/mambu/v1/json/clients.json | 352 +
.../schemas/mambu/v1/json/communications.json | 182 +
.../mambu/v1/json/credit_arrangements.json | 146 +
.../mambu/v1/json/custom_field_sets.json | 321 +
.../mambu/v1/json/deposit_accounts.json | 634 +
.../mambu/v1/json/deposit_products.json | 907 +
.../mambu/v1/json/deposit_transactions.json | 521 +
.../schemas/mambu/v1/json/gl_accounts.json | 129 +
.../mambu/v1/json/gl_journal_entries.json | 204 +
_data/taps/schemas/mambu/v1/json/groups.json | 290 +
.../mambu/v1/json/index_rate_sources.json | 30 +
.../schemas/mambu/v1/json/installments.json | 288 +
.../schemas/mambu/v1/json/loan_accounts.json | 1128 +
.../schemas/mambu/v1/json/loan_products.json | 976 +
.../mambu/v1/json/loan_repayments.json | 114 +
.../mambu/v1/json/loan_transactions.json | 507 +
_data/taps/schemas/mambu/v1/json/tasks.json | 134 +
_data/taps/schemas/mambu/v1/json/users.json | 253 +
.../mambu/v1/mambu-v1-foreign-keys.yml | 1423 +
.../taps/schemas/mambu/v1/mambu-v1-tables.yml | 265 +
.../schemas/mambu/v2/json/activities.json | 148 +
.../schemas/mambu/v2/json/audit_trail.json | 78 +
.../taps/schemas/mambu/v2/json/branches.json | 222 +
_data/taps/schemas/mambu/v2/json/cards.json | 18 +
_data/taps/schemas/mambu/v2/json/centres.json | 176 +
_data/taps/schemas/mambu/v2/json/clients.json | 342 +
.../schemas/mambu/v2/json/communications.json | 166 +
.../mambu/v2/json/credit_arrangements.json | 130 +
.../mambu/v2/json/custom_field_sets.json | 321 +
.../mambu/v2/json/deposit_accounts.json | 618 +
.../mambu/v2/json/deposit_products.json | 907 +
.../mambu/v2/json/deposit_transactions.json | 796 +
.../schemas/mambu/v2/json/gl_accounts.json | 129 +
.../mambu/v2/json/gl_journal_entries.json | 204 +
_data/taps/schemas/mambu/v2/json/groups.json | 274 +
.../mambu/v2/json/index_rate_sources.json | 30 +
.../schemas/mambu/v2/json/installments.json | 294 +
.../v2/json/interest_accrual_breakdown.json | 189 +
.../schemas/mambu/v2/json/loan_accounts.json | 1139 +
.../schemas/mambu/v2/json/loan_products.json | 976 +
.../mambu/v2/json/loan_repayments.json | 114 +
.../mambu/v2/json/loan_transactions.json | 692 +
_data/taps/schemas/mambu/v2/json/tasks.json | 130 +
_data/taps/schemas/mambu/v2/json/users.json | 237 +
.../mambu/v2/mambu-v2-foreign-keys.yml | 2270 ++
.../taps/schemas/mambu/v2/mambu-v2-tables.yml | 297 +
.../schemas/mambu/v4/json/activities.json | 238 +
.../schemas/mambu/v4/json/audit_trail.json | 78 +
.../taps/schemas/mambu/v4/json/branches.json | 208 +
_data/taps/schemas/mambu/v4/json/cards.json | 18 +
_data/taps/schemas/mambu/v4/json/centres.json | 156 +
_data/taps/schemas/mambu/v4/json/clients.json | 462 +
.../schemas/mambu/v4/json/communications.json | 146 +
.../mambu/v4/json/credit_arrangements.json | 137 +
.../mambu/v4/json/custom_field_sets.json | 280 +
.../mambu/v4/json/deposit_accounts.json | 636 +
.../mambu/v4/json/deposit_products.json | 927 +
.../mambu/v4/json/deposit_transactions.json | 825 +
.../schemas/mambu/v4/json/gl_accounts.json | 113 +
.../mambu/v4/json/gl_journal_entries.json | 281 +
_data/taps/schemas/mambu/v4/json/groups.json | 260 +
.../mambu/v4/json/index_rate_sources.json | 50 +
.../schemas/mambu/v4/json/installments.json | 399 +
.../v4/json/interest_accrual_breakdown.json | 203 +
.../schemas/mambu/v4/json/loan_accounts.json | 1388 +
.../schemas/mambu/v4/json/loan_products.json | 1800 ++
.../mambu/v4/json/loan_repayments.json | 278 +
.../mambu/v4/json/loan_transactions.json | 610 +
_data/taps/schemas/mambu/v4/json/tasks.json | 104 +
_data/taps/schemas/mambu/v4/json/users.json | 247 +
.../mambu/v4/mambu-v4-foreign-keys.yml | 952 +
.../taps/schemas/mambu/v4/mambu-v4-tables.yml | 282 +
.../schemas/marketo/v1/json/activities.json | 51 +
.../marketo/v1/json/activity_types.json | 53 +
_data/taps/schemas/marketo/v1/json/leads.json | 49 +
_data/taps/schemas/marketo/v1/json/lists.json | 39 +
.../schemas/marketo/v1/marketo-v1-tables.yml | 47 +
.../schemas/marketo/v2/json/activities.json | 44 +
.../marketo/v2/json/activity_types.json | 49 +
.../schemas/marketo/v2/json/campaigns.json | 51 +
_data/taps/schemas/marketo/v2/json/leads.json | 49 +
_data/taps/schemas/marketo/v2/json/lists.json | 36 +
.../schemas/marketo/v2/json/programs.json | 77 +
.../marketo/v2/marketo-v2-foreign-keys.yml | 71 +
.../schemas/marketo/v2/marketo-v2-tables.yml | 104 +
.../schemas/mixpanel/v1/json/annotations.json | 30 +
.../mixpanel/v1/json/cohort_members.json | 18 +
.../schemas/mixpanel/v1/json/cohorts.json | 48 +
.../taps/schemas/mixpanel/v1/json/engage.json | 12 +
.../taps/schemas/mixpanel/v1/json/export.json | 49 +
.../schemas/mixpanel/v1/json/funnels.json | 192 +
.../schemas/mixpanel/v1/json/revenue.json | 36 +
.../mixpanel/v1/mixpanel-v1-foreign-keys.yml | 40 +
.../mixpanel/v1/mixpanel-v1-tables.yml | 137 +
.../ms-teams/v1/json/channel_members.json | 52 +
.../v1/json/channel_message_replies.json | 414 +
.../ms-teams/v1/json/channel_messages.json | 414 +
.../ms-teams/v1/json/channel_tabs.json | 123 +
.../schemas/ms-teams/v1/json/channels.json | 39 +
.../ms-teams/v1/json/conversation_posts.json | 151 +
.../v1/json/conversation_threads.json | 63 +
.../ms-teams/v1/json/conversations.json | 58 +
.../ms-teams/v1/json/group_members.json | 82 +
.../ms-teams/v1/json/group_owners.json | 88 +
.../taps/schemas/ms-teams/v1/json/groups.json | 241 +
.../v1/json/team_device_usage_report.json | 81 +
.../schemas/ms-teams/v1/json/team_drives.json | 138 +
.../taps/schemas/ms-teams/v1/json/users.json | 82 +
.../ms-teams/v1/ms-teams-v1-foreign-keys.yml | 453 +
.../ms-teams/v1/ms-teams-v1-tables.yml | 175 +
.../v1/json/account_activity.json | 44 +
.../v1/json/account_period_activity.json | 44 +
.../v1/json/account_period_activity_pe.json | 49 +
.../v1/json/account_subsidiary_map.json | 19 +
.../v1/json/accounting_books.json | 99 +
.../v1/json/accounting_periods.json | 124 +
.../v1/json/accounts.json | 154 +
.../v1/json/activities.json | 84 +
.../v1/json/address_book.json | 104 +
.../v1/json/addresses.json | 79 +
.../v1/json/amortization_sched_lines.json | 39 +
.../v1/json/amortization_schedules.json | 69 +
.../v1/json/bill_of_distributions.json | 49 +
.../v1/json/bill_of_materials.json | 74 +
.../v1/json/billing_accounts.json | 124 +
.../v1/json/billing_class_rates.json | 29 +
.../v1/json/billing_classes.json | 44 +
.../v1/json/billing_rate_cards.json | 44 +
.../v1/json/billing_rate_cards_prices.json | 49 +
.../v1/json/billing_rate_cards_versions.json | 34 +
.../v1/json/billing_schedule.json | 64 +
.../json/billing_schedule_descriptions.json | 34 +
.../v1/json/billing_schedules.json | 64 +
.../v1/json/billing_subscription_lines.json | 154 +
.../v1/json/billing_subscriptions.json | 149 +
.../v1/json/bin_number.json | 49 +
.../v1/json/bin_number_counts.json | 34 +
.../v1/json/bins.json | 39 +
.../v1/json/bom_revision_components.json | 49 +
.../v1/json/bom_revisions.json | 64 +
.../v1/json/budget.json | 74 +
.../v1/json/budget_category.json | 29 +
.../v1/json/calls.json | 79 +
.../v1/json/campaign_audiences.json | 39 +
.../v1/json/campaign_categories.json | 54 +
.../v1/json/campaign_families.json | 39 +
.../v1/json/campaign_search_engine.json | 39 +
.../json/campaign_subscription_statuses.json | 34 +
.../v1/json/campaign_subscriptions.json | 39 +
.../v1/json/campaign_verticals.json | 39 +
.../v1/json/campaignchannel.json | 39 +
.../v1/json/campaignevent.json | 99 +
.../v1/json/campaignitem.json | 14 +
.../v1/json/campaignoffer.json | 39 +
.../v1/json/campaignresponse.json | 44 +
.../v1/json/campaignresponsehistory.json | 39 +
.../v1/json/campaigns.json | 129 +
.../v1/json/case_origins.json | 39 +
.../v1/json/case_stage_changes.json | 19 +
.../v1/json/case_types.json | 39 +
.../v1/json/caseescalationhistory.json | 34 +
.../v1/json/caseissue.json | 39 +
.../v1/json/caseorigin.json | 39 +
.../v1/json/casetype.json | 39 +
.../v1/json/charges.json | 179 +
.../v1/json/classes.json | 49 +
.../json/commission_authorization_link.json | 39 +
.../v1/json/commissionplan.json | 44 +
.../v1/json/commissionrate.json | 14 +
.../v1/json/commissionschedule.json | 64 +
.../v1/json/companies.json | 164 +
.../v1/json/company_status.json | 49 +
.../v1/json/companycontactmap.json | 29 +
.../v1/json/competitor.json | 64 +
.../v1/json/competitoroppmap.json | 24 +
.../v1/json/components_per_routing_steps.json | 24 +
.../v1/json/consolidated_exchange_rates.json | 64 +
.../v1/json/contact_types.json | 39 +
.../v1/json/contactrole.json | 34 +
.../v1/json/contacts.json | 239 +
.../v1/json/countries.json | 24 +
.../v1/json/coupon_codes.json | 34 +
.../v1/json/crmgroup.json | 64 +
.../v1/json/crmgroupmap.json | 19 +
.../v1/json/crmtemplate.json | 69 +
.../v1/json/currencies.json | 44 +
.../v1/json/currency_exchange_rate_types.json | 49 +
.../v1/json/currency_exchange_rates.json | 69 +
.../v1/json/currencyrates.json | 64 +
.../v1/json/customer_currencies.json | 34 +
.../v1/json/customer_group_pricing.json | 24 +
.../v1/json/customer_item_pricing.json | 29 +
.../v1/json/customer_partner_sales_teams.json | 39 +
.../v1/json/customer_sales_teams.json | 39 +
.../v1/json/customer_subsidiary_map.json | 19 +
.../v1/json/customer_types.json | 39 +
.../v1/json/customers.json | 749 +
.../v1/json/deleted_records.json | 49 +
.../v1/json/departments.json | 49 +
.../v1/json/distribution_categories.json | 34 +
.../v1/json/distribution_networks.json | 44 +
.../v1/json/employee_currency_map.json | 19 +
.../v1/json/employee_time.json | 214 +
.../v1/json/employee_types.json | 29 +
.../v1/json/employees.json | 344 +
.../v1/json/entity.json | 199 +
.../v1/json/entity_role_map.json | 19 +
.../v1/json/entity_status.json | 54 +
.../v1/json/entity_status_history.json | 29 +
.../v1/json/entitycategory.json | 34 +
.../v1/json/entityeventmap.json | 29 +
.../v1/json/entityterritorymap.json | 14 +
.../v1/json/eventattendees.json | 19 +
.../v1/json/events1.json | 84 +
.../v1/json/expense_accounts.json | 79 +
.../v1/json/expense_amortization_rules.json | 99 +
.../v1/json/expense_based_charge_rules.json | 74 +
.../v1/json/expense_categories.json | 54 +
.../v1/json/expense_categories_rates.json | 24 +
.../v1/json/expense_categories_subs_map.json | 19 +
.../v1/json/expense_detail.json | 94 +
.../v1/json/expense_plan_lines.json | 54 +
.../v1/json/expense_plans.json | 104 +
.../v1/json/fair_value_prices.json | 89 +
.../v1/json/fixed_fee_charge_rules.json | 94 +
.../v1/json/generic_resources.json | 89 +
.../v1/json/gift_certificates.json | 99 +
.../v1/json/global_account_map.json | 99 +
.../json/global_inventory_relationships.json | 64 +
.../v1/json/group_test_cell.json | 39 +
.../v1/json/inbound_shipment_items.json | 104 +
.../v1/json/inbound_shipments.json | 74 +
.../v1/json/income_accounts.json | 79 +
.../v1/json/inventory_cost_template.json | 44 +
.../json/inventory_cost_template_items.json | 24 +
.../v1/json/inventory_items.json | 674 +
.../v1/json/inventory_number.json | 64 +
.../v1/json/item_account_map.json | 104 +
.../v1/json/item_billing_rates.json | 64 +
.../v1/json/item_collection_item_map.json | 29 +
.../v1/json/item_collections.json | 34 +
.../v1/json/item_demand_plan_lines.json | 19 +
.../v1/json/item_demand_plans.json | 74 +
.../v1/json/item_fulfillments.json | 494 +
.../v1/json/item_group.json | 79 +
.../v1/json/item_location_map.json | 189 +
.../v1/json/item_price_history.json | 39 +
.../v1/json/item_prices.json | 59 +
.../v1/json/item_quantity.json | 29 +
.../v1/json/item_revisions.json | 59 +
.../v1/json/item_shipmethods.json | 24 +
.../v1/json/item_site_categories.json | 84 +
.../v1/json/item_subsidiary_map.json | 19 +
.../v1/json/item_supply_plan_attributes.json | 39 +
.../v1/json/item_supply_plan_lines.json | 44 +
.../v1/json/item_supply_plan_source.json | 49 +
.../json/item_supply_plan_source_types.json | 14 +
.../v1/json/item_supply_plans.json | 44 +
.../v1/json/item_vendor_map.json | 34 +
.../v1/json/item_vendor_pricing.json | 34 +
.../v1/json/items.json | 834 +
.../v1/json/job_resource_role.json | 49 +
.../v1/json/job_resources.json | 24 +
.../v1/json/job_types.json | 34 +
.../v1/json/location_costing_groups.json | 29 +
.../json/location_costing_grp_locations.json | 19 +
.../v1/json/locations.json | 159 +
.../v1/json/memorized_trans.json | 109 +
.../v1/json/message.json | 119 +
.../v1/json/messagerecipient.json | 14 +
.../v1/json/mfg_cost_template.json | 49 +
.../v1/json/mfg_cost_template_items.json | 24 +
.../v1/json/mfg_routing.json | 64 +
.../v1/json/mfg_routing_steps.json | 59 +
.../v1/json/nexus.json | 79 +
.../v1/json/notes_system.json | 114 +
.../v1/json/notes_system_custom.json | 144 +
.../v1/json/notes_user.json | 109 +
.../v1/json/notetype.json | 39 +
.../v1/json/opportunities.json | 234 +
.../v1/json/opportunity_lines.json | 304 +
.../v1/json/opportunitycontactmap.json | 29 +
.../v1/json/originating_leads.json | 629 +
.../v1/json/other_names.json | 194 +
.../v1/json/partner_sales_roles.json | 39 +
.../v1/json/partner_types.json | 39 +
.../v1/json/partners.json | 219 +
.../v1/json/payment_methods.json | 49 +
.../v1/json/payment_terms.json | 94 +
.../v1/json/payroll_item_types.json | 24 +
.../v1/json/payroll_items.json | 89 +
.../v1/json/percent_complete_overrides.json | 19 +
.../v1/json/planassignmap.json | 34 +
.../v1/json/planned_standard_costs.json | 44 +
.../v1/json/planschedulemap.json | 24 +
.../v1/json/posting_account_activity.json | 84 +
.../v1/json/posting_account_activity_pe.json | 89 +
.../v1/json/price_book_line_intervals.json | 94 +
.../v1/json/price_books.json | 34 +
.../v1/json/price_plans.json | 39 +
.../v1/json/price_tiers.json | 49 +
.../v1/json/price_types.json | 44 +
.../v1/json/pricing_groups.json | 19 +
.../v1/json/project_billing_budgets.json | 34 +
.../v1/json/project_cost_budgets.json | 44 +
.../v1/json/project_cost_categories.json | 59 +
.../v1/json/project_expense_types.json | 34 +
.../v1/json/project_revenue_rl_plans.json | 39 +
.../json/project_revenue_rls_charge_rls.json | 34 +
.../v1/json/project_revenue_rules.json | 129 +
.../v1/json/project_task_assignments.json | 74 +
.../v1/json/project_task_billing_budgets.json | 39 +
.../v1/json/project_task_cost_budgets.json | 39 +
.../v1/json/project_task_dependencies.json | 24 +
.../v1/json/project_tasks.json | 214 +
.../v1/json/project_templates.json | 114 +
.../v1/json/project_time_approval_types.json | 19 +
.../v1/json/promotion_codes.json | 74 +
.../v1/json/purchase_charge_rules.json | 79 +
.../v1/json/quota1.json | 74 +
.../v1/json/resource_allocations.json | 84 +
.../v1/json/resource_group_entity_map.json | 19 +
.../v1/json/resource_groups.json | 44 +
.../v1/json/revaluation.json | 154 +
.../v1/json/revenue_elements.json | 384 +
.../v1/json/revenue_plan_lines.json | 54 +
.../v1/json/revenue_plan_version_lines.json | 49 +
.../v1/json/revenue_plan_versions.json | 34 +
.../v1/json/revenue_plans.json | 89 +
.../v1/json/revenue_recognition_rules.json | 89 +
.../v1/json/revrecschedulelines.json | 34 +
.../v1/json/revrecschedules.json | 64 +
.../v1/json/role_subsidiary_map.json | 19 +
.../v1/json/roles1.json | 164 +
.../v1/json/sales_reps.json | 229 +
.../v1/json/sales_roles.json | 44 +
.../v1/json/sales_territories.json | 39 +
.../v1/json/salesforecast.json | 89 +
.../v1/json/service_items.json | 269 +
.../v1/json/shipment_packages.json | 174 +
.../v1/json/shipping_items.json | 164 +
.../v1/json/solution.json | 34 +
.../v1/json/solutioncasemap.json | 29 +
.../v1/json/solutiontopicmap.json | 19 +
.../v1/json/standard_cost_components.json | 39 +
.../v1/json/states.json | 29 +
.../json/subscript_line_price_intervals.json | 74 +
.../v1/json/subscription_change_orders.json | 114 +
.../v1/json/subscription_co_lines.json | 59 +
.../v1/json/subscription_line_revisions.json | 109 +
.../v1/json/subscription_plan_lines.json | 69 +
.../v1/json/subscription_plans.json | 119 +
.../v1/json/subscription_terms.json | 44 +
.../v1/json/subsidiaries.json | 239 +
.../v1/json/subsidiary_book_map.json | 44 +
.../v1/json/subsidiary_class_map.json | 19 +
.../v1/json/subsidiary_department_map.json | 19 +
.../v1/json/subsidiary_location_map.json | 19 +
.../v1/json/subsidiary_nexus_map.json | 19 +
.../v1/json/supplier_categories.json | 14 +
.../v1/json/support_incidents.json | 214 +
.../v1/json/support_reps.json | 219 +
.../v1/json/support_territories.json | 39 +
.../v1/json/supportcasehistory.json | 24 +
.../v1/json/system_notes.json | 99 +
.../v1/json/system_notes_custom.json | 119 +
.../v1/json/task_contacts.json | 19 +
.../v1/json/tasks.json | 84 +
.../v1/json/tax_items.json | 94 +
.../v1/json/territory.json | 34 +
.../v1/json/time_based_charge_rules.json | 134 +
.../v1/json/timesheet.json | 34 +
.../v1/json/topic.json | 44 +
.../v1/json/trans_partner_sales_teams.json | 39 +
.../v1/json/transaction_address.json | 174 +
.../v1/json/transaction_bin_numbers.json | 24 +
.../v1/json/transaction_book_map.json | 49 +
.../v1/json/transaction_cost_components.json | 39 +
.../v1/json/transaction_history.json | 59 +
.../json/transaction_inventory_numbers.json | 24 +
.../v1/json/transaction_line_book_map.json | 124 +
.../v1/json/transaction_lines.json | 629 +
.../v1/json/transaction_links.json | 79 +
.../v1/json/transaction_sales_teams.json | 39 +
.../v1/json/transaction_shipping_groups.json | 39 +
.../v1/json/transaction_tax_detail.json | 64 +
.../v1/json/transaction_tracking_numbers.json | 14 +
.../v1/json/transactions.json | 609 +
.../v1/json/units_type.json | 34 +
.../v1/json/unlocked_time_periods.json | 59 +
.../netsuite-suite-analytics/v1/json/uom.json | 54 +
.../v1/json/usages.json | 59 +
.../v1/json/vendor_currencies.json | 29 +
.../v1/json/vendor_subsidiary_map.json | 19 +
.../v1/json/vendor_types.json | 34 +
.../v1/json/vendors.json | 334 +
.../v1/json/winlossreason.json | 34 +
.../v1/json/work_calendar_holidays.json | 24 +
.../v1/json/work_calendars.json | 79 +
...tsuite-suite-analytics-v1-foreign-keys.yml | 25202 ++++++++++++++++
.../v1/netsuite-suite-analytics-v1-tables.yml | 2403 ++
.../schemas/netsuite/v1/json/Account.json | 176 +
.../netsuite/v1/json/AccountingPeriod.json | 103 +
.../schemas/netsuite/v1/json/Address.json | 80 +
.../netsuite/v1/json/BillingAccount.json | 136 +
.../netsuite/v1/json/BillingSchedule.json | 183 +
_data/taps/schemas/netsuite/v1/json/Bin.json | 45 +
.../taps/schemas/netsuite/v1/json/Budget.json | 224 +
.../netsuite/v1/json/CalendarEvent.json | 199 +
.../netsuite/v1/json/Classification.json | 56 +
.../v1/json/ConsolidatedExchangeRate.json | 85 +
.../netsuite/v1/json/ContactCategory.json | 42 +
.../schemas/netsuite/v1/json/ContactRole.json | 35 +
.../netsuite/v1/json/CostCategory.json | 40 +
.../schemas/netsuite/v1/json/CouponCode.json | 51 +
.../netsuite/v1/json/CurrencyRate.json | 35 +
.../schemas/netsuite/v1/json/CustomList.json | 68 +
.../schemas/netsuite/v1/json/Customer.json | 715 +
.../netsuite/v1/json/CustomerCategory.json | 30 +
.../netsuite/v1/json/CustomerMessage.json | 41 +
.../netsuite/v1/json/CustomerStatus.json | 52 +
.../schemas/netsuite/v1/json/Deleted.json | 39 +
.../schemas/netsuite/v1/json/Department.json | 56 +
.../schemas/netsuite/v1/json/EntityGroup.json | 145 +
.../netsuite/v1/json/ExpenseCategory.json | 77 +
.../netsuite/v1/json/FairValuePrice.json | 115 +
.../taps/schemas/netsuite/v1/json/Folder.json | 94 +
.../netsuite/v1/json/GiftCertificate.json | 66 +
.../v1/json/GlobalAccountMapping.json | 79 +
.../taps/schemas/netsuite/v1/json/HcmJob.json | 50 +
.../netsuite/v1/json/InboundShipment.json | 84 +
.../netsuite/v1/json/InventoryNumber.json | 59 +
.../taps/schemas/netsuite/v1/json/Issue.json | 223 +
.../netsuite/v1/json/ItemAccountMapping.json | 84 +
.../netsuite/v1/json/ItemDemandPlan.json | 85 +
.../netsuite/v1/json/ItemRevision.json | 50 +
.../netsuite/v1/json/ItemSupplyPlan.json | 59 +
_data/taps/schemas/netsuite/v1/json/Job.json | 430 +
.../schemas/netsuite/v1/json/JobStatus.json | 35 +
.../schemas/netsuite/v1/json/JobType.json | 35 +
.../v1/json/ManufacturingCostTemplate.json | 55 +
.../v1/json/ManufacturingOperationTask.json | 150 +
.../v1/json/ManufacturingRouting.json | 87 +
.../schemas/netsuite/v1/json/Message.json | 117 +
_data/taps/schemas/netsuite/v1/json/Note.json | 109 +
.../schemas/netsuite/v1/json/NoteType.json | 35 +
.../schemas/netsuite/v1/json/Opportunity.json | 411 +
.../netsuite/v1/json/OtherNameCategory.json | 30 +
.../netsuite/v1/json/PartnerCategory.json | 35 +
.../schemas/netsuite/v1/json/Paycheck.json | 161 +
.../netsuite/v1/json/PaymentMethod.json | 85 +
.../schemas/netsuite/v1/json/PayrollItem.json | 66 +
.../schemas/netsuite/v1/json/PhoneCall.json | 152 +
.../schemas/netsuite/v1/json/PriceLevel.json | 48 +
.../netsuite/v1/json/PricingGroup.json | 30 +
.../schemas/netsuite/v1/json/ProjectTask.json | 187 +
.../netsuite/v1/json/PromotionCode.json | 151 +
.../netsuite/v1/json/ResourceAllocation.json | 97 +
.../netsuite/v1/json/RevRecSchedule.json | 74 +
.../netsuite/v1/json/RevRecTemplate.json | 74 +
.../schemas/netsuite/v1/json/SalesRole.json | 41 +
.../netsuite/v1/json/SalesTaxItem.json | 173 +
.../netsuite/v1/json/SiteCategory.json | 127 +
.../schemas/netsuite/v1/json/Solution.json | 91 +
.../schemas/netsuite/v1/json/Subsidiary.json | 239 +
.../schemas/netsuite/v1/json/SupportCase.json | 228 +
_data/taps/schemas/netsuite/v1/json/Task.json | 189 +
.../schemas/netsuite/v1/json/TaxGroup.json | 119 +
.../schemas/netsuite/v1/json/TaxType.json | 74 +
_data/taps/schemas/netsuite/v1/json/Term.json | 84 +
.../schemas/netsuite/v1/json/TimeBill.json | 174 +
.../schemas/netsuite/v1/json/TimeEntry.json | 128 +
.../schemas/netsuite/v1/json/TimeSheet.json | 64 +
.../schemas/netsuite/v1/json/Transaction.json | 2095 ++
.../schemas/netsuite/v1/json/UnitsType.json | 35 +
.../taps/schemas/netsuite/v1/json/Usage.json | 65 +
.../taps/schemas/netsuite/v1/json/Vendor.json | 430 +
.../netsuite/v1/json/VendorCategory.json | 36 +
.../netsuite/v1/json/WinLossReason.json | 30 +
.../schemas/netsuite/v1/json/campaign.json | 207 +
.../taps/schemas/netsuite/v1/json/charge.json | 161 +
.../schemas/netsuite/v1/json/contact.json | 197 +
.../netsuite/v1/json/custom_record.json | 14 +
.../schemas/netsuite/v1/json/employee.json | 539 +
_data/taps/schemas/netsuite/v1/json/file.json | 170 +
_data/taps/schemas/netsuite/v1/json/item.json | 1474 +
.../schemas/netsuite/v1/json/location.json | 176 +
.../taps/schemas/netsuite/v1/json/nexus.json | 60 +
.../schemas/netsuite/v1/json/partner.json | 301 +
.../taps/schemas/netsuite/v1/json/topic.json | 50 +
.../netsuite/v1/netsuite-v1-tables.yml | 1237 +
.../v10-15-2015/json/accounting_period.json | 9 +
.../v10-15-2015/json/app_definition.json | 9 +
.../v10-15-2015/json/app_package.json | 9 +
.../v10-15-2015/json/billing_schedule.json | 9 +
.../v10-15-2015/json/calendar_event.json | 14 +
.../netsuite/v10-15-2015/json/campaign.json | 14 +
.../v10-15-2015/json/classification.json | 9 +
.../v10-15-2015/json/contact_category.json | 9 +
.../v10-15-2015/json/contact_role.json | 9 +
.../v10-15-2015/json/coupon_code.json | 9 +
.../v10-15-2015/json/currency_rate.json | 9 +
.../v10-15-2015/json/custom_list.json | 9 +
.../v10-15-2015/json/custom_records.json | 9 +
.../netsuite/v10-15-2015/json/customer.json | 14 +
.../v10-15-2015/json/customer_category.json | 14 +
.../v10-15-2015/json/customer_message.json | 9 +
.../v10-15-2015/json/customer_status.json | 9 +
.../netsuite/v10-15-2015/json/deleted.json | 29 +
.../netsuite/v10-15-2015/json/department.json | 9 +
.../v10-15-2015/json/entity_group.json | 14 +
.../v10-15-2015/json/expense_category.json | 9 +
.../netsuite/v10-15-2015/json/folder.json | 14 +
.../v10-15-2015/json/gift_certificate.json | 9 +
.../json/global_account_mapping.json | 9 +
.../v10-15-2015/json/inventory_number.json | 9 +
.../json/item_account_mapping.json | 9 +
.../v10-15-2015/json/item_demand_plan.json | 14 +
.../v10-15-2015/json/item_revision.json | 14 +
.../v10-15-2015/json/item_supply_plan.json | 14 +
.../netsuite/v10-15-2015/json/job.json | 14 +
.../netsuite/v10-15-2015/json/job_status.json | 9 +
.../netsuite/v10-15-2015/json/job_type.json | 9 +
.../json/manufacturing_cost_template.json | 9 +
.../json/manufacturing_operation_task.json | 9 +
.../json/manufacturing_routing.json | 9 +
.../netsuite/v10-15-2015/json/message.json | 9 +
.../netsuite/v10-15-2015/json/nexus.json | 9 +
.../netsuite/v10-15-2015/json/note.json | 9 +
.../netsuite/v10-15-2015/json/note_type.json | 9 +
.../v10-15-2015/json/opportunity.json | 14 +
.../v10-15-2015/json/originating_lead.json | 19 +
.../v10-15-2015/json/other_name_category.json | 9 +
.../v10-15-2015/json/partner_category.json | 9 +
.../v10-15-2015/json/payment_method.json | 9 +
.../v10-15-2015/json/payroll_item.json | 9 +
.../netsuite/v10-15-2015/json/phone_call.json | 14 +
.../v10-15-2015/json/price_level.json | 9 +
.../v10-15-2015/json/pricing_group.json | 9 +
.../v10-15-2015/json/project_task.json | 14 +
.../v10-15-2015/json/promotion_code.json | 9 +
.../v10-15-2015/json/resource_allocation.json | 9 +
.../v10-15-2015/json/rev_rec_schedule.json | 9 +
.../v10-15-2015/json/rev_rec_template.json | 9 +
.../netsuite/v10-15-2015/json/sales_role.json | 9 +
.../v10-15-2015/json/site_category.json | 9 +
.../netsuite/v10-15-2015/json/solution.json | 14 +
.../netsuite/v10-15-2015/json/subsidiary.json | 9 +
.../v10-15-2015/json/support_case.json | 14 +
.../netsuite/v10-15-2015/json/task.json | 14 +
.../netsuite/v10-15-2015/json/term.json | 9 +
.../netsuite/v10-15-2015/json/time_bill.json | 14 +
.../netsuite/v10-15-2015/json/time_entry.json | 14 +
.../netsuite/v10-15-2015/json/time_sheet.json | 9 +
.../v10-15-2015/json/transaction.json | 19 +
.../netsuite/v10-15-2015/json/units_type.json | 9 +
.../v10-15-2015/json/vendor_category.json | 9 +
.../v10-15-2015/json/win_loss_reason.json | 9 +
.../netsuite-v10-15-2015-tables.yml | 622 +
.../schemas/netsuite/v2/json/Account.json | 176 +
.../netsuite/v2/json/AccountingPeriod.json | 103 +
.../schemas/netsuite/v2/json/Address.json | 80 +
.../netsuite/v2/json/BillingAccount.json | 136 +
.../netsuite/v2/json/BillingSchedule.json | 183 +
_data/taps/schemas/netsuite/v2/json/Bin.json | 45 +
_data/taps/schemas/netsuite/v2/json/Bom.json | 100 +
.../schemas/netsuite/v2/json/BomRevision.json | 70 +
.../taps/schemas/netsuite/v2/json/Budget.json | 230 +
.../netsuite/v2/json/CalendarEvent.json | 199 +
.../schemas/netsuite/v2/json/Campaign.json | 207 +
.../taps/schemas/netsuite/v2/json/Charge.json | 161 +
.../netsuite/v2/json/Classification.json | 56 +
.../v2/json/ConsolidatedExchangeRate.json | 85 +
.../schemas/netsuite/v2/json/Contact.json | 197 +
.../netsuite/v2/json/ContactCategory.json | 36 +
.../schemas/netsuite/v2/json/ContactRole.json | 35 +
.../netsuite/v2/json/CostCategory.json | 40 +
.../schemas/netsuite/v2/json/CouponCode.json | 51 +
.../netsuite/v2/json/CurrencyRate.json | 40 +
.../schemas/netsuite/v2/json/CustomList.json | 68 +
.../schemas/netsuite/v2/json/Customer.json | 745 +
.../netsuite/v2/json/CustomerCategory.json | 30 +
.../netsuite/v2/json/CustomerMessage.json | 41 +
.../netsuite/v2/json/CustomerStatus.json | 52 +
.../json/CustomerSubsidiaryRelationship.json | 45 +
.../schemas/netsuite/v2/json/Deleted.json | 39 +
.../schemas/netsuite/v2/json/Department.json | 56 +
.../schemas/netsuite/v2/json/Employee.json | 582 +
.../schemas/netsuite/v2/json/EntityGroup.json | 145 +
.../netsuite/v2/json/ExpenseCategory.json | 77 +
.../netsuite/v2/json/FairValuePrice.json | 115 +
_data/taps/schemas/netsuite/v2/json/File.json | 170 +
.../taps/schemas/netsuite/v2/json/Folder.json | 94 +
.../netsuite/v2/json/GiftCertificate.json | 66 +
.../v2/json/GlobalAccountMapping.json | 79 +
.../taps/schemas/netsuite/v2/json/HcmJob.json | 50 +
.../netsuite/v2/json/InboundShipment.json | 89 +
.../netsuite/v2/json/InventoryNumber.json | 59 +
.../taps/schemas/netsuite/v2/json/Issue.json | 223 +
_data/taps/schemas/netsuite/v2/json/Item.json | 1562 +
.../netsuite/v2/json/ItemAccountMapping.json | 84 +
.../netsuite/v2/json/ItemDemandPlan.json | 85 +
.../netsuite/v2/json/ItemRevision.json | 50 +
.../netsuite/v2/json/ItemSupplyPlan.json | 59 +
_data/taps/schemas/netsuite/v2/json/Job.json | 482 +
.../schemas/netsuite/v2/json/JobStatus.json | 35 +
.../schemas/netsuite/v2/json/JobType.json | 35 +
.../schemas/netsuite/v2/json/Location.json | 194 +
.../v2/json/ManufacturingCostTemplate.json | 55 +
.../v2/json/ManufacturingOperationTask.json | 150 +
.../v2/json/ManufacturingRouting.json | 87 +
.../v2/json/MerchandiseHierarchyNode.json | 34 +
.../schemas/netsuite/v2/json/Message.json | 117 +
.../taps/schemas/netsuite/v2/json/Nexus.json | 66 +
_data/taps/schemas/netsuite/v2/json/Note.json | 109 +
.../schemas/netsuite/v2/json/NoteType.json | 35 +
.../schemas/netsuite/v2/json/Opportunity.json | 416 +
.../netsuite/v2/json/OtherNameCategory.json | 30 +
.../schemas/netsuite/v2/json/Partner.json | 311 +
.../netsuite/v2/json/PartnerCategory.json | 35 +
.../schemas/netsuite/v2/json/Paycheck.json | 161 +
.../netsuite/v2/json/PaymentMethod.json | 85 +
.../schemas/netsuite/v2/json/PayrollItem.json | 71 +
.../schemas/netsuite/v2/json/PhoneCall.json | 152 +
.../schemas/netsuite/v2/json/PriceLevel.json | 48 +
.../netsuite/v2/json/PricingGroup.json | 30 +
.../schemas/netsuite/v2/json/ProjectTask.json | 199 +
.../netsuite/v2/json/PromotionCode.json | 151 +
.../netsuite/v2/json/ResourceAllocation.json | 97 +
.../netsuite/v2/json/RevRecSchedule.json | 74 +
.../netsuite/v2/json/RevRecTemplate.json | 74 +
.../schemas/netsuite/v2/json/SalesRole.json | 41 +
.../netsuite/v2/json/SalesTaxItem.json | 178 +
.../netsuite/v2/json/SiteCategory.json | 127 +
.../schemas/netsuite/v2/json/Solution.json | 91 +
.../schemas/netsuite/v2/json/Subsidiary.json | 224 +
.../schemas/netsuite/v2/json/SupportCase.json | 228 +
_data/taps/schemas/netsuite/v2/json/Task.json | 189 +
.../schemas/netsuite/v2/json/TaxGroup.json | 119 +
.../schemas/netsuite/v2/json/TaxType.json | 74 +
_data/taps/schemas/netsuite/v2/json/Term.json | 118 +
.../schemas/netsuite/v2/json/TimeBill.json | 180 +
.../schemas/netsuite/v2/json/TimeEntry.json | 128 +
.../schemas/netsuite/v2/json/TimeSheet.json | 64 +
.../taps/schemas/netsuite/v2/json/Topic.json | 50 +
.../schemas/netsuite/v2/json/Transaction.json | 2253 ++
.../schemas/netsuite/v2/json/UnitsType.json | 35 +
.../taps/schemas/netsuite/v2/json/Usage.json | 70 +
.../taps/schemas/netsuite/v2/json/Vendor.json | 452 +
.../netsuite/v2/json/VendorCategory.json | 36 +
.../v2/json/VendorSubsidiaryRelationship.json | 61 +
.../netsuite/v2/json/WinLossReason.json | 30 +
.../netsuite/v2/netsuite-v2-tables.yml | 1297 +
.../onfleet/v1/json/administrators.json | 69 +
_data/taps/schemas/onfleet/v1/json/hubs.json | 84 +
.../onfleet/v1/json/organizations.json | 63 +
_data/taps/schemas/onfleet/v1/json/tasks.json | 395 +
_data/taps/schemas/onfleet/v1/json/teams.json | 59 +
.../taps/schemas/onfleet/v1/json/workers.json | 195 +
.../onfleet/v1/onfleet-v1-foreign-keys.yml | 218 +
.../schemas/onfleet/v1/onfleet-v1-tables.yml | 85 +
.../v1/json/campaign_performance.json | 54 +
.../schemas/outbrain/v1/json/campaigns.json | 121 +
.../outbrain/v1/outbrain-v1-tables.yml | 31 +
.../schemas/outreach/v1/json/accounts.json | 1067 +
.../outreach/v1/json/call_dispositions.json | 47 +
.../outreach/v1/json/call_purposes.json | 41 +
.../taps/schemas/outreach/v1/json/calls.json | 209 +
.../outreach/v1/json/content_categories.json | 59 +
.../taps/schemas/outreach/v1/json/duties.json | 23 +
.../taps/schemas/outreach/v1/json/events.json | 119 +
.../schemas/outreach/v1/json/mailboxes.json | 293 +
.../schemas/outreach/v1/json/mailings.json | 281 +
.../outreach/v1/json/opportunities.json | 1061 +
.../schemas/outreach/v1/json/personas.json | 35 +
.../schemas/outreach/v1/json/prospects.json | 1479 +
.../outreach/v1/json/sequence_states.json | 173 +
.../outreach/v1/json/sequence_steps.json | 161 +
.../outreach/v1/json/sequence_templates.json | 131 +
.../schemas/outreach/v1/json/sequences.json | 281 +
.../taps/schemas/outreach/v1/json/stages.json | 53 +
.../taps/schemas/outreach/v1/json/tasks.json | 191 +
.../taps/schemas/outreach/v1/json/teams.json | 59 +
.../taps/schemas/outreach/v1/json/users.json | 493 +
.../outreach/v1/outreach-v1-foreign-keys.yml | 2591 ++
.../outreach/v1/outreach-v1-tables.yml | 240 +
.../schemas/pardot/v1/json/campaigns.json | 25 +
.../schemas/pardot/v1/json/email_clicks.json | 56 +
.../pardot/v1/json/list_memberships.json | 41 +
_data/taps/schemas/pardot/v1/json/lists.json | 61 +
.../schemas/pardot/v1/json/opportunities.json | 73 +
.../pardot/v1/json/prospect_accounts.json | 101 +
.../schemas/pardot/v1/json/prospects.json | 277 +
_data/taps/schemas/pardot/v1/json/users.json | 55 +
.../pardot/v1/json/visitor_activities.json | 133 +
.../taps/schemas/pardot/v1/json/visitors.json | 73 +
_data/taps/schemas/pardot/v1/json/visits.json | 136 +
.../pardot/v1/pardot-v1-foreign-keys.yml | 250 +
.../schemas/pardot/v1/pardot-v1-tables.yml | 157 +
.../taps/schemas/pendo/v1/json/accounts.json | 67 +
_data/taps/schemas/pendo/v1/json/events.json | 84 +
.../schemas/pendo/v1/json/feature_events.json | 78 +
.../taps/schemas/pendo/v1/json/features.json | 344 +
.../schemas/pendo/v1/json/guide_events.json | 127 +
_data/taps/schemas/pendo/v1/json/guides.json | 468 +
.../pendo/v1/json/metadata_accounts.json | 219 +
.../pendo/v1/json/metadata_visitors.json | 771 +
.../schemas/pendo/v1/json/page_events.json | 78 +
_data/taps/schemas/pendo/v1/json/pages.json | 305 +
.../schemas/pendo/v1/json/poll_events.json | 115 +
.../schemas/pendo/v1/json/track_events.json | 114 +
.../schemas/pendo/v1/json/track_types.json | 207 +
.../pendo/v1/json/visitor_history.json | 114 +
.../taps/schemas/pendo/v1/json/visitors.json | 148 +
.../pendo/v1/pendo-v1-foreign-keys.yml | 1230 +
.../taps/schemas/pendo/v1/pendo-v1-tables.yml | 247 +
.../pepperjam/v1/json/creative_advanced.json | 176 +
.../pepperjam/v1/json/creative_banner.json | 176 +
.../pepperjam/v1/json/creative_coupon.json | 158 +
.../pepperjam/v1/json/creative_generic.json | 30 +
.../v1/json/creative_performance.json | 116 +
.../creative_performance_by_publisher.json | 128 +
.../pepperjam/v1/json/creative_product.json | 500 +
.../pepperjam/v1/json/creative_promotion.json | 18 +
.../pepperjam/v1/json/creative_text.json | 152 +
.../taps/schemas/pepperjam/v1/json/group.json | 24 +
.../pepperjam/v1/json/group_member.json | 36 +
.../pepperjam/v1/json/itemized_list.json | 30 +
.../v1/json/itemized_list_product.json | 24 +
.../schemas/pepperjam/v1/json/publisher.json | 202 +
.../v1/json/publisher_performance.json | 172 +
.../taps/schemas/pepperjam/v1/json/term.json | 36 +
.../v1/json/transaction_details.json | 146 +
.../v1/json/transaction_history.json | 140 +
.../v1/pepperjam-v1-foreign-keys.yml | 608 +
.../pepperjam/v1/pepperjam-v1-tables.yml | 254 +
.../schemas/pipedrive/v1/json/activities.json | 199 +
.../pipedrive/v1/json/activity_types.json | 62 +
.../schemas/pipedrive/v1/json/currency.json | 44 +
.../pipedrive/v1/json/deal_fields.json | 146 +
.../pipedrive/v1/json/deal_products.json | 123 +
.../schemas/pipedrive/v1/json/dealflow.json | 56 +
.../taps/schemas/pipedrive/v1/json/deals.json | 366 +
.../taps/schemas/pipedrive/v1/json/files.json | 182 +
.../schemas/pipedrive/v1/json/filters.json | 62 +
.../taps/schemas/pipedrive/v1/json/notes.json | 148 +
.../pipedrive/v1/json/organizations.json | 290 +
.../schemas/pipedrive/v1/json/persons.json | 300 +
.../schemas/pipedrive/v1/json/pipelines.json | 50 +
.../schemas/pipedrive/v1/json/products.json | 145 +
.../schemas/pipedrive/v1/json/stages.json | 68 +
.../taps/schemas/pipedrive/v1/json/users.json | 126 +
.../v1/pipedrive-v1-foreign-keys.yml | 775 +
.../pipedrive/v1/pipedrive-v1-tables.yml | 197 +
.../schemas/quickbooks/v1/json/accounts.json | 181 +
.../quickbooks/v1/json/bill_payments.json | 282 +
.../schemas/quickbooks/v1/json/bills.json | 780 +
.../schemas/quickbooks/v1/json/budgets.json | 184 +
.../schemas/quickbooks/v1/json/classes.json | 89 +
.../quickbooks/v1/json/credit_memos.json | 1278 +
.../schemas/quickbooks/v1/json/customers.json | 584 +
.../quickbooks/v1/json/deleted_objects.json | 40 +
.../quickbooks/v1/json/departments.json | 89 +
.../schemas/quickbooks/v1/json/deposits.json | 552 +
.../schemas/quickbooks/v1/json/employees.json | 281 +
.../schemas/quickbooks/v1/json/estimates.json | 1415 +
.../schemas/quickbooks/v1/json/invoices.json | 1530 +
.../schemas/quickbooks/v1/json/items.json | 376 +
.../quickbooks/v1/json/journal_entries.json | 533 +
.../quickbooks/v1/json/payment_methods.json | 64 +
.../schemas/quickbooks/v1/json/payments.json | 472 +
.../v1/json/profit_loss_report.json | 27 +
.../quickbooks/v1/json/purchase_orders.json | 1042 +
.../schemas/quickbooks/v1/json/purchases.json | 959 +
.../quickbooks/v1/json/refund_receipts.json | 1406 +
.../quickbooks/v1/json/sales_receipts.json | 1512 +
.../quickbooks/v1/json/tax_agencies.json | 82 +
.../schemas/quickbooks/v1/json/tax_codes.json | 194 +
.../schemas/quickbooks/v1/json/tax_rates.json | 188 +
.../schemas/quickbooks/v1/json/terms.json | 100 +
.../quickbooks/v1/json/time_activities.json | 271 +
.../schemas/quickbooks/v1/json/transfers.json | 152 +
.../quickbooks/v1/json/vendor_credits.json | 634 +
.../schemas/quickbooks/v1/json/vendors.json | 459 +
.../v1/quickbooks-v1-foreign-keys.yml | 5853 ++++
.../quickbooks/v1/quickbooks-v1-tables.yml | 393 +
.../schemas/quickbooks/v2/json/accounts.json | 181 +
.../quickbooks/v2/json/bill_payments.json | 282 +
.../schemas/quickbooks/v2/json/bills.json | 780 +
.../schemas/quickbooks/v2/json/budgets.json | 184 +
.../schemas/quickbooks/v2/json/classes.json | 89 +
.../quickbooks/v2/json/credit_memos.json | 1277 +
.../quickbooks/v2/json/customer_types.json | 64 +
.../schemas/quickbooks/v2/json/customers.json | 584 +
.../quickbooks/v2/json/deleted_objects.json | 40 +
.../quickbooks/v2/json/departments.json | 89 +
.../schemas/quickbooks/v2/json/deposits.json | 552 +
.../schemas/quickbooks/v2/json/employees.json | 281 +
.../schemas/quickbooks/v2/json/estimates.json | 1472 +
.../schemas/quickbooks/v2/json/invoices.json | 1528 +
.../schemas/quickbooks/v2/json/items.json | 376 +
.../quickbooks/v2/json/journal_entries.json | 533 +
.../quickbooks/v2/json/payment_methods.json | 64 +
.../schemas/quickbooks/v2/json/payments.json | 472 +
.../v2/json/profit_loss_report.json | 27 +
.../quickbooks/v2/json/purchase_orders.json | 1041 +
.../schemas/quickbooks/v2/json/purchases.json | 958 +
.../quickbooks/v2/json/refund_receipts.json | 1404 +
.../quickbooks/v2/json/sales_receipts.json | 1509 +
.../quickbooks/v2/json/tax_agencies.json | 82 +
.../schemas/quickbooks/v2/json/tax_codes.json | 194 +
.../schemas/quickbooks/v2/json/tax_rates.json | 188 +
.../schemas/quickbooks/v2/json/terms.json | 100 +
.../quickbooks/v2/json/time_activities.json | 271 +
.../schemas/quickbooks/v2/json/transfers.json | 152 +
.../quickbooks/v2/json/vendor_credits.json | 634 +
.../schemas/quickbooks/v2/json/vendors.json | 459 +
.../v2/quickbooks-v2-foreign-keys.yml | 5853 ++++
.../quickbooks/v2/quickbooks-v2-tables.yml | 404 +
.../schemas/recharge/v1/json/addresses.json | 226 +
.../schemas/recharge/v1/json/charges.json | 575 +
.../schemas/recharge/v1/json/collections.json | 54 +
.../schemas/recharge/v1/json/customers.json | 162 +
.../schemas/recharge/v1/json/discounts.json | 102 +
.../recharge/v1/json/metafields_customer.json | 66 +
.../recharge/v1/json/metafields_store.json | 66 +
.../v1/json/metafields_subscription.json | 66 +
.../schemas/recharge/v1/json/onetimes.json | 125 +
.../taps/schemas/recharge/v1/json/orders.json | 620 +
.../schemas/recharge/v1/json/products.json | 182 +
_data/taps/schemas/recharge/v1/json/shop.json | 84 +
.../recharge/v1/json/subscriptions.json | 209 +
.../recharge/v1/recharge-v1-foreign-keys.yml | 470 +
.../recharge/v1/recharge-v1-tables.yml | 156 +
.../schemas/recharge/v2/json/addresses.json | 300 +
.../schemas/recharge/v2/json/charges.json | 1025 +
.../schemas/recharge/v2/json/collections.json | 54 +
.../schemas/recharge/v2/json/customers.json | 256 +
.../schemas/recharge/v2/json/discounts.json | 265 +
.../recharge/v2/json/metafields_customer.json | 66 +
.../recharge/v2/json/metafields_store.json | 66 +
.../v2/json/metafields_subscription.json | 66 +
.../schemas/recharge/v2/json/onetimes.json | 160 +
.../taps/schemas/recharge/v2/json/orders.json | 1026 +
.../schemas/recharge/v2/json/products.json | 201 +
.../taps/schemas/recharge/v2/json/store.json | 152 +
.../recharge/v2/json/subscriptions.json | 317 +
.../recharge/v2/recharge-v2-foreign-keys.yml | 360 +
.../recharge/v2/recharge-v2-tables.yml | 157 +
.../schemas/recurly/v1/json/accounts.json | 553 +
.../schemas/recurly/v1/json/adjustments.json | 421 +
.../schemas/recurly/v1/json/billing_info.json | 271 +
.../recurly/v1/json/coupon_redemptions.json | 356 +
.../taps/schemas/recurly/v1/json/coupons.json | 259 +
.../schemas/recurly/v1/json/invoices.json | 1950 ++
_data/taps/schemas/recurly/v1/json/plans.json | 188 +
.../recurly/v1/json/plans_add_ons.json | 113 +
.../recurly/v1/json/subscriptions.json | 903 +
.../schemas/recurly/v1/json/transactions.json | 512 +
.../recurly/v1/recurly-v1-foreign-keys.yml | 836 +
.../schemas/recurly/v1/recurly-v1-tables.yml | 162 +
.../v1/json/referrals.json | 91 +
.../v1/json/reward_balances.json | 32 +
.../referral-saasquatch/v1/json/users.json | 75 +
.../referral-saasquatch-v1-foreign-keys.yml | 84 +
.../v1/referral-saasquatch-v1-tables.yml | 42 +
.../v1/json/hotel_reviews_snapshot.json | 79 +
.../json/hotel_reviews_snapshot_by_site.json | 89 +
.../json/hotel_reviews_snapshot_by_time.json | 54 +
.../taps/schemas/revinate/v1/json/hotels.json | 99 +
.../schemas/revinate/v1/json/reviews.json | 189 +
.../revinate/v1/revinate-v1-foreign-keys.yml | 129 +
.../revinate/v1/revinate-v1-tables.yml | 120 +
.../schemas/ringcentral/v1/json/call_log.json | 135 +
.../ringcentral/v1/json/company_call_log.json | 123 +
.../schemas/ringcentral/v1/json/contacts.json | 57 +
.../schemas/ringcentral/v1/json/messages.json | 59 +
.../ringcentral/v1/ringcentral-v1-tables.yml | 47 +
.../schemas/saasoptics/v1/json/accounts.json | 54 +
.../v1/json/auto_renewal_profiles.json | 42 +
.../v1/json/billing_descriptions.json | 30 +
.../saasoptics/v1/json/billing_methods.json | 18 +
.../schemas/saasoptics/v1/json/contracts.json | 431 +
.../saasoptics/v1/json/country_codes.json | 24 +
.../saasoptics/v1/json/currency_codes.json | 18 +
.../schemas/saasoptics/v1/json/customers.json | 528 +
.../saasoptics/v1/json/deleted_contracts.json | 24 +
.../saasoptics/v1/json/deleted_invoices.json | 24 +
.../v1/json/deleted_revenue_entries.json | 24 +
.../v1/json/deleted_transactions.json | 24 +
.../schemas/saasoptics/v1/json/invoices.json | 580 +
.../schemas/saasoptics/v1/json/items.json | 300 +
.../saasoptics/v1/json/payment_terms.json | 55 +
.../schemas/saasoptics/v1/json/registers.json | 42 +
.../saasoptics/v1/json/revenue_entries.json | 50 +
.../v1/json/revenue_recognition_methods.json | 18 +
.../saasoptics/v1/json/sales_orders.json | 1438 +
.../saasoptics/v1/json/transactions.json | 459 +
.../saasoptics/v1/saasoptics-v1-tables.yml | 227 +
.../sailthru/v1/json/ad_targeter_plans.json | 38 +
.../schemas/sailthru/v1/json/blast_query.json | 80 +
.../sailthru/v1/json/blast_repeats.json | 170 +
.../sailthru/v1/json/blast_save_list.json | 176 +
.../taps/schemas/sailthru/v1/json/blasts.json | 132 +
.../taps/schemas/sailthru/v1/json/lists.json | 44 +
.../sailthru/v1/json/purchase_log.json | 68 +
.../taps/schemas/sailthru/v1/json/users.json | 56 +
.../sailthru/v1/sailthru-v1-foreign-keys.yml | 172 +
.../sailthru/v1/sailthru-v1-tables.yml | 107 +
.../v1/json/campaigns.json | 47 +
.../v1/json/content_areas.json | 173 +
.../v1/json/data_extension.json | 14 +
.../v1/json/emails.json | 206 +
.../v1/json/events.json | 54 +
.../v1/json/folders.json | 103 +
.../v1/json/list_sends.json | 166 +
.../v1/json/list_subscribers.json | 75 +
.../v1/json/lists.json | 96 +
.../v1/json/sends.json | 117 +
.../v1/json/subscribers.json | 203 +
...sforce-marketing-cloud-v1-foreign-keys.yml | 256 +
.../salesforce-marketing-cloud-v1-tables.yml | 156 +
.../schemas/salesforce/v1/json/account.json | 319 +
.../schemas/salesforce/v1/json/contact.json | 329 +
.../taps/schemas/salesforce/v1/json/lead.json | 294 +
.../salesforce/v1/json/opportunity.json | 204 +
.../taps/schemas/salesforce/v1/json/user.json | 744 +
.../v1/salesforce-v1-foreign-keys.yml | 241 +
.../salesforce/v1/salesforce-v1-tables.yml | 60 +
.../schemas/salesforce/v2/json/account.json | 319 +
.../schemas/salesforce/v2/json/contact.json | 329 +
.../taps/schemas/salesforce/v2/json/lead.json | 294 +
.../salesforce/v2/json/opportunity.json | 204 +
.../taps/schemas/salesforce/v2/json/user.json | 744 +
.../v2/salesforce-v2-foreign-keys.yml | 241 +
.../salesforce/v2/salesforce-v2-tables.yml | 65 +
.../schemas/selligent/v1/json/campaign.json | 24 +
.../v1/json/internal_datasource.json | 46 +
.../taps/schemas/selligent/v1/json/owner.json | 24 +
.../schemas/selligent/v1/json/program.json | 34 +
.../schemas/selligent/v1/json/source.json | 29 +
.../v1/json/transactional_mailing.json | 71 +
.../v1/selligent-v1-foreign-keys.yml | 155 +
.../selligent/v1/selligent-v1-tables.yml | 46 +
.../schemas/sendgrid-core/v1/json/blocks.json | 28 +
.../sendgrid-core/v1/json/bounces.json | 28 +
.../sendgrid-core/v1/json/campaigns.json | 82 +
.../sendgrid-core/v1/json/contacts.json | 65 +
.../v1/json/global_suppressions.json | 16 +
.../sendgrid-core/v1/json/groups_all.json | 40 +
.../sendgrid-core/v1/json/groups_members.json | 15 +
.../sendgrid-core/v1/json/invalids.json | 22 +
.../sendgrid-core/v1/json/lists_all.json | 22 +
.../sendgrid-core/v1/json/lists_members.json | 70 +
.../sendgrid-core/v1/json/segments_all.json | 28 +
.../v1/json/segments_members.json | 69 +
.../sendgrid-core/v1/json/spam_reports.json | 22 +
.../sendgrid-core/v1/json/templates_all.json | 22 +
.../v1/sendgrid-core-v1-foreign-keys.yml | 359 +
.../v1/sendgrid-core-v1-tables.yml | 139 +
.../taps/schemas/shiphero/v1/json/orders.json | 715 +
.../schemas/shiphero/v1/json/products.json | 437 +
.../schemas/shiphero/v1/json/shipments.json | 637 +
.../schemas/shiphero/v1/json/vendors.json | 24 +
.../shiphero/v1/shiphero-v1-foreign-keys.yml | 82 +
.../shiphero/v1/shiphero-v1-tables.yml | 49 +
.../schemas/shippo/v1/json/addresses.json | 88 +
.../taps/schemas/shippo/v1/json/parcels.json | 60 +
.../taps/schemas/shippo/v1/json/refunds.json | 32 +
.../schemas/shippo/v1/json/shipments.json | 100 +
.../schemas/shippo/v1/json/transactions.json | 76 +
.../shippo/v1/shippo-v1-foreign-keys.yml | 77 +
.../schemas/shippo/v1/shippo-v1-tables.yml | 74 +
.../shopify/v1/json/abandoned_checkouts.json | 1748 ++
.../schemas/shopify/v1/json/collects.json | 47 +
.../shopify/v1/json/custom_collections.json | 103 +
.../schemas/shopify/v1/json/customers.json | 443 +
.../taps/schemas/shopify/v1/json/events.json | 82 +
.../shopify/v1/json/inventory_items.json | 97 +
.../shopify/v1/json/inventory_levels.json | 35 +
.../schemas/shopify/v1/json/locations.json | 122 +
.../schemas/shopify/v1/json/metafields.json | 80 +
.../shopify/v1/json/order_refunds.json | 955 +
.../taps/schemas/shopify/v1/json/orders.json | 3718 +++
.../schemas/shopify/v1/json/products.json | 469 +
.../schemas/shopify/v1/json/transactions.json | 284 +
.../shopify/v1/shopify-v1-foreign-keys.yml | 354 +
.../schemas/shopify/v1/shopify-v1-tables.yml | 205 +
.../slack/v1/json/channel_members.json | 21 +
.../taps/schemas/slack/v1/json/channels.json | 247 +
_data/taps/schemas/slack/v1/json/files.json | 443 +
.../taps/schemas/slack/v1/json/messages.json | 357 +
.../schemas/slack/v1/json/remote_files.json | 443 +
_data/taps/schemas/slack/v1/json/teams.json | 198 +
_data/taps/schemas/slack/v1/json/threads.json | 111 +
.../schemas/slack/v1/json/user_groups.json | 186 +
_data/taps/schemas/slack/v1/json/users.json | 131 +
.../slack/v1/slack-v1-foreign-keys.yml | 976 +
.../taps/schemas/slack/v1/slack-v1-tables.yml | 128 +
.../v1/json/ad_account_stats_daily.json | 49 +
.../v1/json/ad_account_stats_hourly.json | 49 +
.../snapchat-ads/v1/json/ad_accounts.json | 193 +
.../v1/json/ad_squad_stats_daily.json | 684 +
.../v1/json/ad_squad_stats_hourly.json | 684 +
.../snapchat-ads/v1/json/ad_squads.json | 353 +
.../snapchat-ads/v1/json/ad_stats_daily.json | 684 +
.../snapchat-ads/v1/json/ad_stats_hourly.json | 684 +
.../schemas/snapchat-ads/v1/json/ads.json | 169 +
.../v1/json/audience_segments.json | 97 +
.../snapchat-ads/v1/json/billing_centers.json | 78 +
.../v1/json/campaign_stats_daily.json | 684 +
.../v1/json/campaign_stats_hourly.json | 684 +
.../snapchat-ads/v1/json/campaigns.json | 94 +
.../snapchat-ads/v1/json/creatives.json | 200 +
.../snapchat-ads/v1/json/funding_sources.json | 132 +
.../schemas/snapchat-ads/v1/json/media.json | 127 +
.../schemas/snapchat-ads/v1/json/members.json | 48 +
.../snapchat-ads/v1/json/organizations.json | 148 +
.../snapchat-ads/v1/json/phone_numbers.json | 60 +
.../v1/json/pixel_domain_stats.json | 67 +
.../schemas/snapchat-ads/v1/json/pixels.json | 73 +
.../v1/json/product_catalogs.json | 79 +
.../snapchat-ads/v1/json/product_sets.json | 44 +
.../schemas/snapchat-ads/v1/json/roles.json | 54 +
.../json/targeting_advanced_demographics.json | 44 +
.../v1/json/targeting_age_groups.json | 44 +
.../v1/json/targeting_android_versions.json | 44 +
.../v1/json/targeting_carriers.json | 44 +
.../v1/json/targeting_connection_types.json | 44 +
.../v1/json/targeting_countries.json | 154 +
.../v1/json/targeting_device_makes.json | 44 +
.../v1/json/targeting_genders.json | 44 +
.../v1/json/targeting_interests_dlxc.json | 44 +
.../v1/json/targeting_interests_dlxp.json | 44 +
.../v1/json/targeting_interests_dlxs.json | 44 +
.../v1/json/targeting_interests_nln.json | 44 +
.../v1/json/targeting_interests_plc.json | 44 +
.../v1/json/targeting_interests_scls.json | 44 +
.../v1/json/targeting_ios_versions.json | 44 +
.../v1/json/targeting_languages.json | 44 +
.../json/targeting_location_categories.json | 44 +
.../v1/json/targeting_metros.json | 154 +
.../v1/json/targeting_os_types.json | 44 +
.../v1/json/targeting_postal_codes.json | 154 +
.../v1/json/targeting_regions.json | 154 +
.../v1/snapchat-ads-v1-tables.yml | 458 +
.../schemas/square/v1/json/bank_accounts.json | 86 +
.../square/v1/json/cash_drawer_shifts.json | 101 +
.../schemas/square/v1/json/categories.json | 70 +
.../schemas/square/v1/json/customers.json | 142 +
.../schemas/square/v1/json/discounts.json | 126 +
.../schemas/square/v1/json/employees.json | 68 +
.../schemas/square/v1/json/inventories.json | 44 +
_data/taps/schemas/square/v1/json/items.json | 392 +
.../schemas/square/v1/json/locations.json | 292 +
.../square/v1/json/modifier_lists.json | 184 +
_data/taps/schemas/square/v1/json/orders.json | 1668 +
.../taps/schemas/square/v1/json/payments.json | 373 +
.../taps/schemas/square/v1/json/refunds.json | 122 +
_data/taps/schemas/square/v1/json/roles.json | 50 +
.../schemas/square/v1/json/settlements.json | 114 +
_data/taps/schemas/square/v1/json/shifts.json | 158 +
_data/taps/schemas/square/v1/json/taxes.json | 112 +
.../square/v1/square-v1-foreign-keys.yml | 1155 +
.../schemas/square/v1/square-v1-tables.yml | 224 +
.../schemas/square/v2/json/bank_accounts.json | 104 +
.../square/v2/json/cash_drawer_shifts.json | 119 +
.../schemas/square/v2/json/categories.json | 70 +
.../schemas/square/v2/json/customers.json | 246 +
.../schemas/square/v2/json/discounts.json | 126 +
.../schemas/square/v2/json/inventories.json | 44 +
_data/taps/schemas/square/v2/json/items.json | 392 +
.../schemas/square/v2/json/locations.json | 304 +
.../square/v2/json/modifier_lists.json | 184 +
_data/taps/schemas/square/v2/json/orders.json | 2748 ++
.../taps/schemas/square/v2/json/payments.json | 1186 +
.../taps/schemas/square/v2/json/payouts.json | 148 +
.../taps/schemas/square/v2/json/refunds.json | 378 +
_data/taps/schemas/square/v2/json/roles.json | 50 +
_data/taps/schemas/square/v2/json/shifts.json | 164 +
_data/taps/schemas/square/v2/json/taxes.json | 112 +
.../schemas/square/v2/json/team_members.json | 94 +
.../square/v2/square-v2-foreign-keys.yml | 1111 +
.../schemas/square/v2/square-v2-tables.yml | 206 +
.../stripe/v1/json/balance_transactions.json | 143 +
.../taps/schemas/stripe/v1/json/charges.json | 2294 ++
.../taps/schemas/stripe/v1/json/coupons.json | 111 +
.../schemas/stripe/v1/json/customers.json | 1747 ++
.../taps/schemas/stripe/v1/json/disputes.json | 302 +
_data/taps/schemas/stripe/v1/json/events.json | 66 +
.../schemas/stripe/v1/json/invoice_items.json | 414 +
.../stripe/v1/json/invoice_line_items.json | 368 +
.../taps/schemas/stripe/v1/json/invoices.json | 911 +
.../stripe/v1/json/payout_transactions.json | 20 +
.../taps/schemas/stripe/v1/json/payouts.json | 270 +
_data/taps/schemas/stripe/v1/json/plans.json | 181 +
.../taps/schemas/stripe/v1/json/products.json | 167 +
.../stripe/v1/json/subscription_items.json | 323 +
.../schemas/stripe/v1/json/subscriptions.json | 611 +
.../schemas/stripe/v1/json/transfers.json | 160 +
.../stripe/v1/stripe-v1-foreign-keys.yml | 922 +
.../schemas/stripe/v1/stripe-v1-tables.yml | 251 +
.../stripe/v2/json/balance_transactions.json | 143 +
.../taps/schemas/stripe/v2/json/charges.json | 2300 ++
.../taps/schemas/stripe/v2/json/coupons.json | 117 +
.../schemas/stripe/v2/json/customers.json | 1950 ++
.../taps/schemas/stripe/v2/json/disputes.json | 308 +
_data/taps/schemas/stripe/v2/json/events.json | 66 +
.../schemas/stripe/v2/json/invoice_items.json | 426 +
.../stripe/v2/json/invoice_line_items.json | 680 +
.../taps/schemas/stripe/v2/json/invoices.json | 1105 +
.../stripe/v2/json/payment_intents.json | 5685 ++++
.../stripe/v2/json/payout_transactions.json | 20 +
.../taps/schemas/stripe/v2/json/payouts.json | 276 +
_data/taps/schemas/stripe/v2/json/plans.json | 187 +
.../taps/schemas/stripe/v2/json/products.json | 179 +
.../stripe/v2/json/subscription_items.json | 629 +
.../schemas/stripe/v2/json/subscriptions.json | 647 +
.../schemas/stripe/v2/json/transfers.json | 166 +
.../stripe/v2/stripe-v2-foreign-keys.yml | 922 +
.../schemas/stripe/v2/stripe-v2-tables.yml | 262 +
.../stripe/v3/json/balance_transactions.json | 143 +
.../taps/schemas/stripe/v3/json/charges.json | 2458 ++
.../taps/schemas/stripe/v3/json/coupons.json | 117 +
.../schemas/stripe/v3/json/customers.json | 1950 ++
.../taps/schemas/stripe/v3/json/disputes.json | 308 +
_data/taps/schemas/stripe/v3/json/events.json | 66 +
.../schemas/stripe/v3/json/invoice_items.json | 426 +
.../stripe/v3/json/invoice_line_items.json | 680 +
.../taps/schemas/stripe/v3/json/invoices.json | 1119 +
.../stripe/v3/json/payment_intents.json | 1093 +
.../stripe/v3/json/payout_transactions.json | 20 +
.../taps/schemas/stripe/v3/json/payouts.json | 276 +
_data/taps/schemas/stripe/v3/json/plans.json | 187 +
.../taps/schemas/stripe/v3/json/products.json | 179 +
.../stripe/v3/json/subscription_items.json | 629 +
.../schemas/stripe/v3/json/subscriptions.json | 647 +
.../schemas/stripe/v3/json/transfers.json | 166 +
.../stripe/v3/stripe-v3-foreign-keys.yml | 922 +
.../schemas/stripe/v3/stripe-v3-tables.yml | 262 +
.../surveymonkey/v1/json/responses.json | 221 +
.../v1/json/simplified_responses.json | 257 +
.../surveymonkey/v1/json/survey_details.json | 708 +
.../v1/surveymonkey-v1-foreign-keys.yml | 55 +
.../v1/surveymonkey-v1-tables.yml | 34 +
.../surveymonkey/v2/json/responses.json | 224 +
.../v2/json/simplified_responses.json | 260 +
.../surveymonkey/v2/json/survey_details.json | 714 +
.../schemas/surveymonkey/v2/json/surveys.json | 52 +
.../v2/surveymonkey-v2-foreign-keys.yml | 55 +
.../v2/surveymonkey-v2-tables.yml | 43 +
.../schemas/taboola/v1/json/campaign.json | 146 +
.../taboola/v1/json/campaign_performance.json | 64 +
.../taboola/v1/taboola-v1-foreign-keys.yml | 23 +
.../schemas/taboola/v1/taboola-v1-tables.yml | 72 +
.../tiktok-ads/v1/json/ad_insights.json | 447 +
.../json/ad_insights_by_age_and_gender.json | 315 +
.../v1/json/ad_insights_by_country.json | 309 +
.../v1/json/ad_insights_by_platform.json | 309 +
.../schemas/tiktok-ads/v1/json/adgroups.json | 728 +
.../taps/schemas/tiktok-ads/v1/json/ads.json | 429 +
.../tiktok-ads/v1/json/advertisers.json | 159 +
.../json/campaign_insights_by_province.json | 195 +
.../schemas/tiktok-ads/v1/json/campaigns.json | 171 +
.../tiktok-ads/v1/tiktok-ads-v1-tables.yml | 125 +
_data/taps/schemas/toggl/v1/json/clients.json | 50 +
_data/taps/schemas/toggl/v1/json/groups.json | 32 +
.../taps/schemas/toggl/v1/json/projects.json | 56 +
_data/taps/schemas/toggl/v1/json/tags.json | 26 +
_data/taps/schemas/toggl/v1/json/tasks.json | 56 +
.../schemas/toggl/v1/json/time_entries.json | 117 +
_data/taps/schemas/toggl/v1/json/users.json | 140 +
.../toggl/v1/json/workspace_users.json | 62 +
.../schemas/toggl/v1/json/workspaces.json | 80 +
.../toggl/v1/toggl-v1-foreign-keys.yml | 335 +
.../taps/schemas/toggl/v1/toggl-v1-tables.yml | 141 +
.../taps/schemas/trello/v1/json/actions.json | 590 +
_data/taps/schemas/trello/v1/json/boards.json | 487 +
_data/taps/schemas/trello/v1/json/cards.json | 474 +
.../schemas/trello/v1/json/checklists.json | 1090 +
_data/taps/schemas/trello/v1/json/lists.json | 50 +
_data/taps/schemas/trello/v1/json/users.json | 30 +
.../trello/v1/trello-v1-foreign-keys.yml | 810 +
.../schemas/trello/v1/trello-v1-tables.yml | 94 +
.../twilio/v1/json/account_balance.json | 25 +
.../taps/schemas/twilio/v1/json/accounts.json | 220 +
.../schemas/twilio/v1/json/addresses.json | 96 +
_data/taps/schemas/twilio/v1/json/alerts.json | 96 +
.../schemas/twilio/v1/json/applications.json | 126 +
.../available_phone_number_countries.json | 88 +
.../json/available_phone_numbers_local.json | 127 +
.../json/available_phone_numbers_mobile.json | 127 +
.../available_phone_numbers_toll_free.json | 127 +
_data/taps/schemas/twilio/v1/json/calls.json | 215 +
.../v1/json/conference_participants.json | 90 +
.../schemas/twilio/v1/json/conferences.json | 103 +
.../v1/json/dependent_phone_numbers.json | 189 +
.../v1/json/incoming_phone_numbers.json | 237 +
_data/taps/schemas/twilio/v1/json/keys.json | 36 +
.../schemas/twilio/v1/json/message_media.json | 48 +
.../taps/schemas/twilio/v1/json/messages.json | 173 +
.../twilio/v1/json/outgoing_caller_ids.json | 48 +
_data/taps/schemas/twilio/v1/json/queues.json | 91 +
.../schemas/twilio/v1/json/recordings.json | 188 +
.../twilio/v1/json/transcriptions.json | 85 +
.../schemas/twilio/v1/json/usage_records.json | 198 +
.../twilio/v1/json/usage_triggers.json | 104 +
.../schemas/twilio/v1/twilio-v1-tables.yml | 302 +
.../twitter-ads/v1/json/account_media.json | 124 +
.../schemas/twitter-ads/v1/json/accounts.json | 81 +
.../json/advertiser_business_categories.json | 34 +
.../twitter-ads/v1/json/campaigns.json | 118 +
.../schemas/twitter-ads/v1/json/cards.json | 64 +
.../v1/json/cards_image_conversation.json | 105 +
.../twitter-ads/v1/json/cards_poll.json | 135 +
.../v1/json/cards_video_conversation.json | 117 +
.../v1/json/content_categories.json | 34 +
.../v1/json/example-custom-report.json | 74 +
.../v1/json/funding_instruments.json | 118 +
.../twitter-ads/v1/json/iab_categories.json | 27 +
.../twitter-ads/v1/json/line_item_apps.json | 57 +
.../twitter-ads/v1/json/line_items.json | 204 +
.../twitter-ads/v1/json/media_creatives.json | 69 +
.../v1/json/preroll_call_to_actions.json | 57 +
.../twitter-ads/v1/json/promotable_users.json | 45 +
.../v1/json/promoted_accounts.json | 63 +
.../twitter-ads/v1/json/promoted_tweets.json | 63 +
.../v1/json/scheduled_promoted_tweets.json | 57 +
.../v1/json/tailored_audiences.json | 107 +
.../json/targeting_app_store_categories.json | 33 +
.../v1/json/targeting_conversations.json | 33 +
.../v1/json/targeting_criteria.json | 81 +
.../v1/json/targeting_devices.json | 39 +
.../twitter-ads/v1/json/targeting_events.json | 184 +
.../v1/json/targeting_interests.json | 27 +
.../v1/json/targeting_languages.json | 27 +
.../v1/json/targeting_locations.json | 39 +
.../v1/json/targeting_network_operators.json | 33 +
.../v1/json/targeting_platform_versions.json | 39 +
.../v1/json/targeting_platforms.json | 27 +
.../v1/json/targeting_tv_markets.json | 27 +
.../v1/json/targeting_tv_shows.json | 58 +
.../twitter-ads/v1/json/tracking_tags.json | 51 +
.../schemas/twitter-ads/v1/json/tweets.json | 1409 +
.../v1/twitter-ads-v1-foreign-keys.yml | 1448 +
.../twitter-ads/v1/twitter-ads-v1-tables.yml | 436 +
.../schemas/typeform/v1/json/answers.json | 63 +
.../taps/schemas/typeform/v1/json/forms.json | 94 +
.../schemas/typeform/v1/json/landings.json | 86 +
.../schemas/typeform/v1/json/questions.json | 42 +
.../typeform/v1/typeform-v1-foreign-keys.yml | 57 +
.../typeform/v1/typeform-v1-tables.yml | 59 +
.../schemas/typeform/v2/json/answers.json | 57 +
.../taps/schemas/typeform/v2/json/forms.json | 100 +
.../schemas/typeform/v2/json/questions.json | 441 +
.../typeform/v2/json/submitted_landings.json | 87 +
.../v2/json/unsubmitted_landings.json | 69 +
.../typeform/v2/typeform-v2-foreign-keys.yml | 78 +
.../typeform/v2/typeform-v2-tables.yml | 78 +
.../ujet/v1/json/agent_activity_logs.json | 132 +
_data/taps/schemas/ujet/v1/json/agents.json | 287 +
_data/taps/schemas/ujet/v1/json/calls.json | 818 +
_data/taps/schemas/ujet/v1/json/chats.json | 642 +
.../taps/schemas/ujet/v1/json/menu_tree.json | 45 +
_data/taps/schemas/ujet/v1/json/menus.json | 281 +
.../taps/schemas/ujet/v1/json/team_tree.json | 45 +
_data/taps/schemas/ujet/v1/json/teams.json | 100 +
.../schemas/ujet/v1/json/user_statuses.json | 33 +
.../schemas/ujet/v1/ujet-v1-foreign-keys.yml | 262 +
_data/taps/schemas/ujet/v1/ujet-v1-tables.yml | 89 +
.../urban-airship/v1/json/channels.json | 221 +
.../schemas/urban-airship/v1/json/lists.json | 62 +
.../urban-airship/v1/json/named_users.json | 26 +
.../urban-airship/v1/json/segments.json | 26 +
.../v1/urban-airship-v1-foreign-keys.yml | 42 +
.../v1/urban-airship-v1-tables.yml | 61 +
.../schemas/uservoice/v1/json/categories.json | 46 +
.../schemas/uservoice/v1/json/comments.json | 66 +
.../uservoice/v1/json/external_accounts.json | 79 +
.../uservoice/v1/json/external_users.json | 66 +
.../uservoice/v1/json/feature_statuses.json | 56 +
.../schemas/uservoice/v1/json/features.json | 81 +
.../schemas/uservoice/v1/json/forums.json | 91 +
.../schemas/uservoice/v1/json/labels.json | 51 +
.../uservoice/v1/json/nps_ratings.json | 66 +
.../uservoice/v1/json/product_areas.json | 41 +
.../schemas/uservoice/v1/json/requests.json | 96 +
.../uservoice/v1/json/segmented_values.json | 61 +
.../schemas/uservoice/v1/json/segments.json | 83 +
.../uservoice/v1/json/status_updates.json | 76 +
.../schemas/uservoice/v1/json/statuses.json | 44 +
.../uservoice/v1/json/suggestions.json | 238 +
.../schemas/uservoice/v1/json/supporters.json | 71 +
.../taps/schemas/uservoice/v1/json/teams.json | 19 +
.../taps/schemas/uservoice/v1/json/users.json | 150 +
.../v1/uservoice-v1-foreign-keys.yml | 1338 +
.../uservoice/v1/uservoice-v1-tables.yml | 257 +
.../schemas/wootric/v1/json/declines.json | 23 +
.../schemas/wootric/v1/json/end_users.json | 39 +
.../schemas/wootric/v1/json/responses.json | 50 +
.../wootric/v1/wootric-v1-foreign-keys.yml | 59 +
.../schemas/wootric/v1/wootric-v1-tables.yml | 39 +
_data/taps/schemas/xero/v1/json/accounts.json | 116 +
.../schemas/xero/v1/json/attachments.json | 9 +
.../xero/v1/json/bank_transactions.json | 1242 +
.../schemas/xero/v1/json/bank_transfers.json | 309 +
.../schemas/xero/v1/json/branding_themes.json | 32 +
.../schemas/xero/v1/json/contact_groups.json | 32 +
_data/taps/schemas/xero/v1/json/contacts.json | 785 +
.../schemas/xero/v1/json/credit_notes.json | 2393 ++
.../taps/schemas/xero/v1/json/currencies.json | 20 +
.../taps/schemas/xero/v1/json/employees.json | 44 +
.../schemas/xero/v1/json/expense_claims.json | 2809 ++
_data/taps/schemas/xero/v1/json/invoices.json | 10393 +++++++
_data/taps/schemas/xero/v1/json/items.json | 150 +
_data/taps/schemas/xero/v1/json/journals.json | 245 +
.../xero/v1/json/linked_transactions.json | 68 +
.../schemas/xero/v1/json/manual_journals.json | 243 +
.../schemas/xero/v1/json/organisations.json | 355 +
.../schemas/xero/v1/json/overpayments.json | 3832 +++
_data/taps/schemas/xero/v1/json/payments.json | 1474 +
.../schemas/xero/v1/json/prepayments.json | 3832 +++
.../schemas/xero/v1/json/purchase_orders.json | 1186 +
_data/taps/schemas/xero/v1/json/receipts.json | 1193 +
.../xero/v1/json/repeating_invoices.json | 1142 +
.../taps/schemas/xero/v1/json/tax_rates.json | 128 +
.../xero/v1/json/tracking_categories.json | 107 +
_data/taps/schemas/xero/v1/json/users.json | 74 +
.../xero/v1/json/validation_errors.json | 9 +
.../schemas/xero/v1/xero-v1-foreign-keys.yml | 1492 +
_data/taps/schemas/xero/v1/xero-v1-tables.yml | 312 +
_data/taps/schemas/xero/v2/json/accounts.json | 116 +
.../xero/v2/json/bank_transactions.json | 1242 +
.../schemas/xero/v2/json/bank_transfers.json | 309 +
.../schemas/xero/v2/json/branding_themes.json | 32 +
.../schemas/xero/v2/json/contact_groups.json | 32 +
_data/taps/schemas/xero/v2/json/contacts.json | 785 +
.../schemas/xero/v2/json/credit_notes.json | 2393 ++
.../taps/schemas/xero/v2/json/currencies.json | 20 +
.../taps/schemas/xero/v2/json/employees.json | 44 +
.../schemas/xero/v2/json/expense_claims.json | 2809 ++
_data/taps/schemas/xero/v2/json/invoices.json | 10393 +++++++
_data/taps/schemas/xero/v2/json/items.json | 150 +
_data/taps/schemas/xero/v2/json/journals.json | 245 +
.../xero/v2/json/linked_transactions.json | 68 +
.../schemas/xero/v2/json/manual_journals.json | 243 +
.../schemas/xero/v2/json/organisations.json | 355 +
.../schemas/xero/v2/json/overpayments.json | 3832 +++
_data/taps/schemas/xero/v2/json/payments.json | 1474 +
.../schemas/xero/v2/json/prepayments.json | 3832 +++
.../schemas/xero/v2/json/purchase_orders.json | 1186 +
_data/taps/schemas/xero/v2/json/quotes.json | 1239 +
_data/taps/schemas/xero/v2/json/receipts.json | 1193 +
.../xero/v2/json/repeating_invoices.json | 1142 +
.../taps/schemas/xero/v2/json/tax_rates.json | 128 +
.../xero/v2/json/tracking_categories.json | 107 +
_data/taps/schemas/xero/v2/json/users.json | 74 +
.../schemas/xero/v2/xero-v2-foreign-keys.yml | 1492 +
_data/taps/schemas/xero/v2/xero-v2-tables.yml | 324 +
_data/taps/schemas/yotpo/v1/json/emails.json | 136 +
.../yotpo/v1/json/product_reviews.json | 128 +
.../taps/schemas/yotpo/v1/json/products.json | 92 +
_data/taps/schemas/yotpo/v1/json/reviews.json | 68 +
.../schemas/yotpo/v1/json/unsubscribers.json | 21 +
.../yotpo/v1/yotpo-v1-foreign-keys.yml | 67 +
.../taps/schemas/yotpo/v1/yotpo-v1-tables.yml | 104 +
.../schemas/yotpo/v2/json/collections.json | 38 +
_data/taps/schemas/yotpo/v2/json/emails.json | 137 +
.../yotpo/v2/json/order_fulfillments.json | 116 +
_data/taps/schemas/yotpo/v2/json/orders.json | 446 +
.../yotpo/v2/json/product_reviews.json | 192 +
.../yotpo/v2/json/product_variants.json | 152 +
.../taps/schemas/yotpo/v2/json/products.json | 166 +
_data/taps/schemas/yotpo/v2/json/reviews.json | 110 +
.../schemas/yotpo/v2/json/unsubscribers.json | 30 +
.../yotpo/v2/yotpo-v2-foreign-keys.yml | 67 +
.../taps/schemas/yotpo/v2/yotpo-v2-tables.yml | 156 +
.../schemas/zendesk-chat/v1/json/account.json | 280 +
.../schemas/zendesk-chat/v1/json/agents.json | 122 +
.../schemas/zendesk-chat/v1/json/bans.json | 49 +
.../schemas/zendesk-chat/v1/json/chats.json | 575 +
.../zendesk-chat/v1/json/departments.json | 49 +
.../schemas/zendesk-chat/v1/json/goals.json | 83 +
.../zendesk-chat/v1/json/shortcuts.json | 66 +
.../zendesk-chat/v1/json/triggers.json | 63 +
.../v1/zendesk-chat-v1-foreign-keys.yml | 164 +
.../v1/zendesk-chat-v1-tables.yml | 92 +
.../zendesk/v1/json/group_memberships.json | 50 +
.../taps/schemas/zendesk/v1/json/groups.json | 44 +
.../taps/schemas/zendesk/v1/json/macros.json | 114 +
.../zendesk/v1/json/organizations.json | 111 +
.../zendesk/v1/json/satisfaction_ratings.json | 81 +
.../schemas/zendesk/v1/json/sla_policies.json | 151 +
_data/taps/schemas/zendesk/v1/json/tags.json | 20 +
.../zendesk/v1/json/ticket_audits.json | 786 +
.../zendesk/v1/json/ticket_comments.json | 481 +
.../zendesk/v1/json/ticket_fields.json | 197 +
.../schemas/zendesk/v1/json/ticket_forms.json | 110 +
.../zendesk/v1/json/ticket_metrics.json | 268 +
.../taps/schemas/zendesk/v1/json/tickets.json | 424 +
_data/taps/schemas/zendesk/v1/json/users.json | 379 +
.../zendesk/v1/zendesk-v1-foreign-keys.yml | 615 +
.../schemas/zendesk/v1/zendesk-v1-tables.yml | 290 +
.../zendesk/v2/json/group_memberships.json | 50 +
.../taps/schemas/zendesk/v2/json/groups.json | 44 +
.../taps/schemas/zendesk/v2/json/macros.json | 114 +
.../zendesk/v2/json/organizations.json | 111 +
.../zendesk/v2/json/satisfaction_ratings.json | 81 +
.../schemas/zendesk/v2/json/sla_policies.json | 151 +
_data/taps/schemas/zendesk/v2/json/tags.json | 20 +
.../zendesk/v2/json/talk_phone_numbers.json | 215 +
.../zendesk/v2/json/ticket_audits.json | 786 +
.../zendesk/v2/json/ticket_comments.json | 481 +
.../zendesk/v2/json/ticket_fields.json | 197 +
.../schemas/zendesk/v2/json/ticket_forms.json | 110 +
.../zendesk/v2/json/ticket_metric_events.json | 115 +
.../zendesk/v2/json/ticket_metrics.json | 268 +
.../taps/schemas/zendesk/v2/json/tickets.json | 424 +
_data/taps/schemas/zendesk/v2/json/users.json | 379 +
.../zendesk/v2/zendesk-v2-foreign-keys.yml | 615 +
.../schemas/zendesk/v2/zendesk-v2-tables.yml | 308 +
.../schemas/zoom/v1/json/meeting_files.json | 29 +
.../zoom/v1/json/meeting_poll_results.json | 48 +
.../schemas/zoom/v1/json/meeting_polls.json | 65 +
.../zoom/v1/json/meeting_questions.json | 80 +
.../zoom/v1/json/meeting_registrants.json | 156 +
_data/taps/schemas/zoom/v1/json/meetings.json | 440 +
.../v1/json/report_meeting_participants.json | 51 +
.../schemas/zoom/v1/json/report_meetings.json | 107 +
.../v1/json/report_webinar_participants.json | 57 +
.../schemas/zoom/v1/json/report_webinars.json | 119 +
_data/taps/schemas/zoom/v1/json/users.json | 105 +
.../zoom/v1/json/webinar_absentees.json | 156 +
.../schemas/zoom/v1/json/webinar_files.json | 29 +
.../zoom/v1/json/webinar_panelists.json | 34 +
.../zoom/v1/json/webinar_poll_results.json | 48 +
.../schemas/zoom/v1/json/webinar_polls.json | 65 +
.../zoom/v1/json/webinar_qna_results.json | 48 +
.../zoom/v1/json/webinar_questions.json | 80 +
.../zoom/v1/json/webinar_registrants.json | 156 +
.../v1/json/webinar_tracking_sources.json | 40 +
_data/taps/schemas/zoom/v1/json/webinars.json | 373 +
.../schemas/zoom/v1/zoom-v1-foreign-keys.yml | 583 +
_data/taps/schemas/zoom/v1/zoom-v1-tables.yml | 303 +
.../zoom/v2/json/meeting_poll_results.json | 61 +
.../schemas/zoom/v2/json/meeting_polls.json | 175 +
.../zoom/v2/json/meeting_questions.json | 82 +
.../zoom/v2/json/meeting_registrants.json | 163 +
_data/taps/schemas/zoom/v2/json/meetings.json | 713 +
.../v2/json/report_meeting_participants.json | 81 +
.../schemas/zoom/v2/json/report_meetings.json | 135 +
.../v2/json/report_webinar_participants.json | 75 +
.../schemas/zoom/v2/json/report_webinars.json | 147 +
_data/taps/schemas/zoom/v2/json/users.json | 161 +
.../zoom/v2/json/webinar_absentees.json | 157 +
.../zoom/v2/json/webinar_panelists.json | 64 +
.../zoom/v2/json/webinar_poll_results.json | 61 +
.../schemas/zoom/v2/json/webinar_polls.json | 175 +
.../zoom/v2/json/webinar_qna_results.json | 49 +
.../zoom/v2/json/webinar_questions.json | 82 +
.../zoom/v2/json/webinar_registrants.json | 157 +
.../v2/json/webinar_tracking_sources.json | 40 +
_data/taps/schemas/zoom/v2/json/webinars.json | 603 +
.../schemas/zoom/v2/zoom-v2-foreign-keys.yml | 517 +
_data/taps/schemas/zoom/v2/zoom-v2-tables.yml | 277 +
_data/taps/schemas/zuora/v1/json/Account.json | 214 +
.../schemas/zuora/v1/json/AccountingCode.json | 69 +
.../zuora/v1/json/AccountingPeriod.json | 84 +
.../taps/schemas/zuora/v1/json/Amendment.json | 124 +
.../schemas/zuora/v1/json/BillingRun.json | 119 +
.../zuora/v1/json/CommunicationProfile.json | 44 +
_data/taps/schemas/zuora/v1/json/Contact.json | 134 +
.../zuora/v1/json/ContactSnapshot.json | 134 +
.../v1/json/CreditBalanceAdjustment.json | 174 +
.../zuora/v1/json/DiscountAppliedMetrics.json | 109 +
_data/taps/schemas/zuora/v1/json/Export.json | 84 +
_data/taps/schemas/zuora/v1/json/Import.json | 79 +
_data/taps/schemas/zuora/v1/json/Invoice.json | 199 +
.../schemas/zuora/v1/json/InvoiceItem.json | 164 +
.../zuora/v1/json/InvoiceItemAdjustment.json | 219 +
.../schemas/zuora/v1/json/JournalEntry.json | 74 +
.../zuora/v1/json/JournalEntryItem.json | 64 +
.../schemas/zuora/v1/json/JournalRun.json | 69 +
_data/taps/schemas/zuora/v1/json/Payment.json | 194 +
.../schemas/zuora/v1/json/PaymentRun.json | 99 +
.../schemas/zuora/v1/json/ProcessedUsage.json | 114 +
_data/taps/schemas/zuora/v1/json/Product.json | 69 +
.../zuora/v1/json/ProductRatePlan.json | 64 +
.../zuora/v1/json/ProductRatePlanCharge.json | 244 +
.../v1/json/ProductRatePlanChargeTier.json | 84 +
.../taps/schemas/zuora/v1/json/RatePlan.json | 64 +
.../zuora/v1/json/RatePlanChargeTier.json | 84 +
_data/taps/schemas/zuora/v1/json/Refund.json | 189 +
.../v1/json/RevenueChargeSummaryItem.json | 114 +
.../zuora/v1/json/RevenueEventItem.json | 139 +
.../v1/json/RevenueEventItemInvoiceItem.json | 164 +
...RevenueEventItemInvoiceItemAdjustment.json | 169 +
.../zuora/v1/json/RevenueScheduleItem.json | 139 +
.../json/RevenueScheduleItemInvoiceItem.json | 139 +
...enueScheduleItemInvoiceItemAdjustment.json | 144 +
.../schemas/zuora/v1/json/Subscription.json | 204 +
.../zuora/v1/zuora-v1-foreign-keys.yml | 7561 +++++
.../taps/schemas/zuora/v1/zuora-v1-issues.txt | 3 +
.../taps/schemas/zuora/v1/zuora-v1-tables.yml | 428 +
_data/taps/snapshot-attributes.yml | 26 +-
.../templates/schemas/foreign-keys.html | 111 +-
.../schemas/saas-table-sections.html | 2 +-
.../templates/schemas/schemas-table.html | 134 +
.../templates/schemas/schemas.html | 133 +
.../templates/schemas/table-attributes.html | 112 -
.../templates/schemas/table-schemas.html | 94 -
.../templates/schemas/table-snapshot.html | 64 -
_layouts/new.html | 7 +
_layouts/saas.html | 2 +-
.../v1/{sailthru-v0.2.md => sailthru-v1.md} | 0
.../3plcentral/customers.md | 0
.../3plcentral/foreign-keys.md | 0
.../3plcentral/inventory.md | 0
.../3plcentral/locations.md | 0
.../3plcentral/orders.md | 0
.../3plcentral/sku_items.md | 0
.../3plcentral/stock_details.md | 0
.../3plcentral/stock_summaries.md | 0
.../activecampaign/v1/account_contacts.md | 0
.../v1/account_custom_field_values.md | 0
.../v1/account_custom_fields.md | 0
.../activecampaign/v1/accounts.md | 0
.../activecampaign/v1/activities.md | 0
.../activecampaign/v1/addresses.md | 0
.../activecampaign/v1/automation_blocks.md | 0
.../activecampaign/v1/automations.md | 0
.../activecampaign/v1/bounce_logs.md | 0
.../activecampaign/v1/brandings.md | 0
.../activecampaign/v1/calendars.md | 0
.../activecampaign/v1/campaign_links.md | 0
.../activecampaign/v1/campaign_lists.md | 0
.../activecampaign/v1/campaign_messages.md | 0
.../activecampaign/v1/campaigns.md | 0
.../activecampaign/v1/configs.md | 0
.../activecampaign/v1/contact_automations.md | 0
.../activecampaign/v1/contact_conversions.md | 0
.../v1/contact_custom_field_options.md | 0
.../v1/contact_custom_field_rels.md | 0
.../v1/contact_custom_field_values.md | 0
.../v1/contact_custom_fields.md | 0
.../activecampaign/v1/contact_data.md | 0
.../activecampaign/v1/contact_deals.md | 0
.../activecampaign/v1/contact_emails.md | 0
.../activecampaign/v1/contact_lists.md | 0
.../activecampaign/v1/contact_tags.md | 0
.../activecampaign/v1/contacts.md | 0
.../activecampaign/v1/conversion_triggers.md | 0
.../activecampaign/v1/conversions.md | 0
.../activecampaign/v1/deal_activities.md | 0
.../v1/deal_custom_field_values.md | 0
.../activecampaign/v1/deal_custom_fields.md | 0
.../activecampaign/v1/deal_group_users.md | 0
.../activecampaign/v1/deal_groups.md | 0
.../activecampaign/v1/deal_stages.md | 0
.../activecampaign/v1/deals.md | 0
.../v1/ecommerce_connections.md | 0
.../activecampaign/v1/ecommerce_customers.md | 0
.../v1/ecommerce_order_activities.md | 0
.../v1/ecommerce_order_products.md | 0
.../activecampaign/v1/ecommerce_orders.md | 0
.../activecampaign/v1/email_activities.md | 0
.../activecampaign/v1/foreign-keys.md | 2 +-
.../activecampaign/v1/forms.md | 0
.../activecampaign/v1/goals.md | 0
.../activecampaign/v1/groups.md | 0
.../activecampaign/v1/lists.md | 0
.../activecampaign/v1/messages.md | 0
.../activecampaign/v1/saved_responses.md | 0
.../activecampaign/v1/scores.md | 0
.../activecampaign/v1/segments.md | 0
.../activecampaign/v1/site_messages.md | 0
.../activecampaign/v1/sms.md | 0
.../activecampaign/v1/tags.md | 0
.../activecampaign/v1/task_types.md | 0
.../activecampaign/v1/tasks.md | 0
.../activecampaign/v1/templates.md | 0
.../activecampaign/v1/users.md | 0
.../activecampaign/v1/webhooks.md | 0
.../adroll/v1/ad_groups.md | 0
.../adroll/v1/ad_reports.md | 0
.../_integration-schemas}/adroll/v1/ads.md | 0
.../adroll/v1/advertisables.md | 0
.../adroll/v1/campaigns.md | 0
.../adroll/v1/foreign-keys.md | 0
.../adroll/v1/segments.md | 0
.../amplitude/v1/events.md | 0
.../amplitude/v1/merge_ids.md | 0
.../appsflyer/in_app_events.md | 0
.../appsflyer/installations.md | 0
.../asana/v1/foreign-keys.md | 0
.../asana/v1/projects.md | 0
.../_integration-schemas}/asana/v1/tags.md | 0
.../_integration-schemas}/asana/v1/tasks.md | 0
.../_integration-schemas}/asana/v1/users.md | 0
.../asana/v1/workspaces.md | 0
.../asana/v2/foreign-keys.md | 0
.../asana/v2/portfolios.md | 0
.../asana/v2/projects.md | 0
.../asana/v2/sections.md | 0
.../_integration-schemas}/asana/v2/stories.md | 0
.../_integration-schemas}/asana/v2/tags.md | 0
.../_integration-schemas}/asana/v2/tasks.md | 0
.../_integration-schemas}/asana/v2/teams.md | 0
.../_integration-schemas}/asana/v2/users.md | 0
.../asana/v2/workspaces.md | 0
.../autopilot/contacts.md | 0
.../autopilot/foreign-keys.md | 0
.../_integration-schemas}/autopilot/lists.md | 0
.../autopilot/lists_contacts.md | 0
.../autopilot/smart_segments.md | 0
.../autopilot/smart_segments_contacts.md | 0
.../bigcommerce/coupons.md | 0
.../bigcommerce/customers.md | 0
.../bigcommerce/foreign-keys.md | 0
.../bigcommerce/orders.md | 2 +-
.../bigcommerce/products.md | 0
.../bing-ads/v1/accounts.md | 2 +-
.../bing-ads/v1/ad_groups.md | 2 +-
.../bing-ads/v1/ad_performance_report.md | 6 +-
.../bing-ads/v1/adgroup_performance_report.md | 6 +-
.../_integration-schemas}/bing-ads/v1/ads.md | 2 +-
.../v1/age_gender_performance_report.md | 6 +-
.../v1/campaign_performance_report.md | 6 +-
.../bing-ads/v1/campaigns.md | 2 +-
.../bing-ads/v1/foreign-keys.md | 4 +-
.../v1/geographic_performance_report.md | 6 +-
.../bing-ads/v1/goals_and_funnels_report.md | 6 +-
.../bing-ads/v1/keyword_performance_report.md | 6 +-
.../v1/search_query_performance_report.md | 6 +-
.../bing-ads/v2/accounts.md | 2 +-
.../bing-ads/v2/ad_extension_detail_report.md | 2 +-
.../v2/ad_group_performance_report.md | 2 +-
.../bing-ads/v2/ad_groups.md | 2 +-
.../bing-ads/v2/ad_performance_report.md | 2 +-
.../_integration-schemas}/bing-ads/v2/ads.md | 2 +-
.../bing-ads/v2/age_gender_audience_report.md | 2 +-
.../v2/audience_performance_report.md | 2 +-
.../v2/campaign_performance_report.md | 2 +-
.../bing-ads/v2/campaigns.md | 2 +-
.../bing-ads/v2/foreign-keys.md | 0
.../v2/geographic_performance_report.md | 2 +-
.../bing-ads/v2/goals_and_funnels_report.md | 2 +-
.../bing-ads/v2/keyword_performance_report.md | 2 +-
.../v2/search_query_performance_report.md | 2 +-
.../braintree/transactions.yml | 0
.../_integration-schemas}/bronto/contact.md | 0
.../bronto/foreign-keys.md | 0
.../bronto/inbound_activity.md | 0
.../_integration-schemas}/bronto/list.md | 0
.../bronto/outbound_activity.md | 0
.../bronto/unsubscribe.md | 0
.../campaign-manager/sample_report_table.md | 0
.../campaign-monitor/v1/campaign_bounces.md | 0
.../campaign-monitor/v1/campaign_clicks.md | 0
.../v1/campaign_email_client_usage.md | 0
.../campaign-monitor/v1/campaign_opens.md | 0
.../v1/campaign_recipients.md | 0
.../v1/campaign_spam_complaints.md | 0
.../campaign-monitor/v1/campaign_summary.md | 0
.../v1/campaign_unsubscribes.md | 0
.../campaign-monitor/v1/campaigns.md | 0
.../campaign-monitor/v1/foreign-keys.yml | 0
.../v1/list_active_subscribers.md | 0
.../v1/list_bounced_subscribers.md | 0
.../v1/list_deleted_subscribers.md | 0
.../campaign-monitor/v1/list_details.md | 0
.../v1/list_unconfirmed_subscribers.md | 0
.../v1/list_unsubscribed_subscribers.md | 0
.../campaign-monitor/v1/lists.md | 0
.../chargebee/20-05-2019/addons.md | 0
.../chargebee/20-05-2019/coupons.md | 0
.../chargebee/20-05-2019/credit_notes.md | 0
.../chargebee/20-05-2019/customers.md | 0
.../chargebee/20-05-2019/events.md | 0
.../chargebee/20-05-2019/foreign-keys.md | 0
.../chargebee/20-05-2019/invoices.md | 0
.../chargebee/20-05-2019/payment_sources.md | 0
.../chargebee/20-05-2019/plans.md | 0
.../chargebee/20-05-2019/subscriptions.md | 0
.../chargebee/20-05-2019/transactions.md | 0
.../20-05-2019/virtual_bank_accounts.md | 0
.../chargebee/v1/addons.md | 0
.../chargebee/v1/coupons.md | 0
.../chargebee/v1/credit_notes.md | 0
.../chargebee/v1/customers.md | 0
.../chargebee/v1/events.md | 0
.../chargebee/v1/foreign-keys.md | 0
.../chargebee/v1/gifts.md | 0
.../chargebee/v1/invoices.md | 0
.../chargebee/v1/item_families.md | 0
.../chargebee/v1/item_prices.md | 0
.../chargebee/v1/items.md | 0
.../chargebee/v1/orders.md | 0
.../chargebee/v1/payment_sources.md | 0
.../chargebee/v1/plans.md | 0
.../chargebee/v1/promotional_credit.md | 0
.../chargebee/v1/subscriptions.md | 0
.../chargebee/v1/transactions.md | 0
.../chargebee/v1/virtual_bank_accounts.md | 0
.../chargify/v1/components.md | 0
.../chargify/v1/coupons.md | 0
.../chargify/v1/customers.md | 0
.../chargify/v1/events.md | 0
.../chargify/v1/foreign-keys.md | 0
.../chargify/v1/invoices.md | 0
.../chargify/v1/price_points.md | 0
.../chargify/v1/product_families.md | 0
.../chargify/v1/products.md | 0
.../chargify/v1/statements.md | 0
.../chargify/v1/subscriptions.md | 0
.../chargify/v1/transactions.md | 0
.../circle-ci/v1/foreign-keys.md | 0
.../circle-ci/v1/jobs.md | 0
.../circle-ci/v1/pipelines.md | 1 -
.../circle-ci/v1/workflows.md | 0
.../closeio/v1/activities.md | 0
.../closeio/v1/custom_fields.md | 0
.../closeio/v1/event_log.md | 0
.../closeio/v1/foreign-keys.md | 0
.../_integration-schemas}/closeio/v1/leads.md | 0
.../_integration-schemas}/closeio/v1/tasks.md | 0
.../_integration-schemas}/closeio/v1/users.md | 0
.../clubspeed/v1/booking.md | 0
.../clubspeed/v1/booking_availability.md | 0
.../clubspeed/v1/check_details.md | 0
.../clubspeed/v1/checks.md | 0
.../clubspeed/v1/customers.md | 0
.../clubspeed/v1/discount_types.md | 0
.../clubspeed/v1/event_heat_details.md | 0
.../clubspeed/v1/event_heat_types.md | 0
.../clubspeed/v1/event_reservation_links.md | 0
.../clubspeed/v1/event_reservation_types.md | 0
.../clubspeed/v1/event_reservations.md | 0
.../clubspeed/v1/event_rounds.md | 0
.../clubspeed/v1/event_statuses.md | 0
.../clubspeed/v1/event_task_types.md | 0
.../clubspeed/v1/event_tasks.md | 0
.../clubspeed/v1/event_types.md | 0
.../clubspeed/v1/events.md | 0
.../clubspeed/v1/foreign-keys.md | 0
.../clubspeed/v1/gift_card_history.md | 0
.../clubspeed/v1/heat_main.md | 0
.../clubspeed/v1/heat_main_details.md | 0
.../clubspeed/v1/heat_types.md | 0
.../clubspeed/v1/membership_types.md | 0
.../clubspeed/v1/memberships.md | 0
.../clubspeed/v1/payments.md | 0
.../clubspeed/v1/payments_voided.md | 0
.../clubspeed/v1/product_classes.md | 0
.../clubspeed/v1/products.md | 0
.../clubspeed/v1/reservations.md | 0
.../clubspeed/v1/sources.md | 0
.../clubspeed/v1/taxes.md | 0
.../clubspeed/v1/users.md | 0
.../codat/v1/accounts.md | 0
.../codat/v1/balance_sheets.md | 0
.../codat/v1/bank_account_transactions.md | 0
.../codat/v1/bank_accounts.md | 0
.../codat/v1/bank_statement_lines.md | 0
.../codat/v1/bank_statements.md | 0
.../codat/v1/bill_payments.md | 0
.../_integration-schemas}/codat/v1/bills.md | 0
.../codat/v1/companies.md | 0
.../codat/v1/company_info.md | 0
.../codat/v1/connections.md | 0
.../codat/v1/credit_notes.md | 0
.../codat/v1/customers.md | 0
.../_integration-schemas}/codat/v1/events.md | 0
.../codat/v1/foreign-keys.md | 0
.../codat/v1/invoices.md | 0
.../_integration-schemas}/codat/v1/items.md | 0
.../codat/v1/journal_entries.md | 0
.../codat/v1/payments.md | 0
.../codat/v1/profit_and_loss.md | 0
.../codat/v1/suppliers.md | 0
.../codat/v1/tax_rates.md | 0
.../covid-19/c19_trk_us_daily.md | 0
.../c19_trk_us_population_counties.md | 0
.../covid-19/c19_trk_us_population_states.md | 0
...c19_trk_us_population_states_age_groups.md | 0
.../c19_trk_us_states_acs_health_insurance.md | 0
.../covid-19/c19_trk_us_states_current.md | 0
.../covid-19/c19_trk_us_states_daily.md | 0
.../covid-19/c19_trk_us_states_info.md | 0
.../c19_trk_us_states_kff_hospital_beds.md | 0
.../covid-19/eu_daily.md | 0
.../covid-19/eu_ecdc_daily.md | 0
.../covid-19/italy_national_daily.md | 0
.../covid-19/italy_provincial_daily.md | 0
.../covid-19/italy_regional_daily.md | 0
.../covid-19/jh_csse_daily.md | 0
.../covid-19/neherlab_case_counts.md | 0
.../covid-19/neherlab_country_codes.md | 0
.../covid-19/neherlab_icu_capacity.md | 0
.../covid-19/neherlab_population.md | 0
.../covid-19/nytimes_us_counties.md | 0
.../covid-19/nytimes_us_states.md | 0
.../crossbeam/v1/foreign-keys.md | 0
.../crossbeam/v1/partner_populations.md | 0
.../crossbeam/v1/partners.md | 0
.../crossbeam/v1/populations.md | 0
.../crossbeam/v1/thread_timelines.md | 0
.../crossbeam/v1/threads.md | 0
.../_integration-schemas}/darksky/forecast.md | 0
.../deputy/v1/addresses.md | 2 +-
.../deputy/v1/categories.md | 2 +-
.../deputy/v1/comments.md | 2 +-
.../deputy/v1/companies.md | 2 +-
.../deputy/v1/company_periods.md | 2 +-
.../deputy/v1/contacts.md | 2 +-
.../deputy/v1/countries.md | 2 +-
.../deputy/v1/custom_app_data.md | 2 +-
.../deputy/v1/custom_field_data.md | 2 +-
.../deputy/v1/custom_fields.md | 2 +-
.../deputy/v1/employee_agreement_history.md | 2 +-
.../deputy/v1/employee_agreements.md | 2 +-
.../deputy/v1/employee_appraisal.md | 2 +-
.../deputy/v1/employee_availability.md | 2 +-
.../v1/employee_contract_leave_rules.md | 2 +-
.../deputy/v1/employee_contracts.md | 2 +-
.../deputy/v1/employee_history.md | 2 +-
.../deputy/v1/employee_paycycle_returns.md | 2 +-
.../deputy/v1/employee_paycycles.md | 2 +-
.../deputy/v1/employee_roles.md | 2 +-
.../v1/employee_salary_opunit_costing.md | 2 +-
.../deputy/v1/employee_workplaces.md | 2 +-
.../deputy/v1/employment_conditions.md | 2 +-
.../_integration-schemas}/deputy/v1/events.md | 2 +-
.../deputy/v1/foreign-keys.md | 0
.../_integration-schemas}/deputy/v1/geo.md | 2 +-
.../deputy/v1/journal.md | 2 +-
.../_integration-schemas}/deputy/v1/kiosks.md | 2 +-
.../deputy/v1/leave_accruals.md | 2 +-
.../deputy/v1/leave_pay_lines.md | 2 +-
.../deputy/v1/leave_rules.md | 2 +-
.../_integration-schemas}/deputy/v1/leaves.md | 2 +-
.../_integration-schemas}/deputy/v1/memos.md | 2 +-
.../deputy/v1/operational_units.md | 2 +-
.../deputy/v1/pay_periods.md | 2 +-
.../deputy/v1/pay_rules.md | 2 +-
.../deputy/v1/public_holidays.md | 2 +-
.../deputy/v1/roster_opens.md | 2 +-
.../deputy/v1/roster_swaps.md | 2 +-
.../deputy/v1/rosters.md | 2 +-
.../deputy/v1/sales_data.md | 2 +-
.../deputy/v1/schedules.md | 2 +-
.../deputy/v1/sms_logs.md | 2 +-
.../_integration-schemas}/deputy/v1/states.md | 2 +-
.../deputy/v1/stress_profiles.md | 2 +-
.../deputy/v1/system_usage_balances.md | 2 +-
.../deputy/v1/system_usage_tracking.md | 2 +-
.../deputy/v1/task_group_setups.md | 2 +-
.../deputy/v1/task_groups.md | 2 +-
.../deputy/v1/task_opunit_configs.md | 2 +-
.../deputy/v1/task_setups.md | 2 +-
.../_integration-schemas}/deputy/v1/tasks.md | 2 +-
.../_integration-schemas}/deputy/v1/teams.md | 2 +-
.../deputy/v1/timesheet_pay_returns.md | 2 +-
.../deputy/v1/timesheets.md | 2 +-
.../deputy/v1/training_modules.md | 2 +-
.../deputy/v1/training_records.md | 2 +-
.../deputy/v1/webhooks.md | 2 +-
.../dixa/v1/activity_logs.md | 0
.../dixa/v1/conversations.md | 0
.../dixa/v1/foreign-keys.md | 0
.../_integration-schemas}/dixa/v1/messages.md | 0
.../_integration-schemas}/ebay/v1/orders.md | 0
.../eloqua/v1/accounts.md | 0
.../eloqua/v1/activity_bounceback.md | 0
.../eloqua/v1/activity_email_clickthrough.md | 0
.../eloqua/v1/activity_email_open.md | 0
.../eloqua/v1/activity_email_send.md | 0
.../eloqua/v1/activity_form_submit.md | 0
.../eloqua/v1/activity_page_view.md | 0
.../eloqua/v1/activity_subscribe.md | 0
.../eloqua/v1/activity_unsubscribe.md | 0
.../eloqua/v1/activity_web_visit.md | 0
.../_integration-schemas}/eloqua/v1/assets.md | 0
.../eloqua/v1/campaigns.md | 0
.../eloqua/v1/contacts.md | 0
.../eloqua/v1/custom-objects.md | 0
.../eloqua/v1/email_groups.md | 0
.../_integration-schemas}/eloqua/v1/emails.md | 0
.../eloqua/v1/foreign-keys.md | 0
.../_integration-schemas}/eloqua/v1/forms.md | 0
.../eloqua/v1/visitors.md | 0
.../facebook-ads/adcreative.md | 1 -
.../_integration-schemas}/facebook-ads/ads.md | 0
.../facebook-ads/ads_insights.md | 0
.../ads_insights_age_and_gender.md | 0
.../facebook-ads/ads_insights_country.md | 0
.../facebook-ads/ads_insights_dma.md | 0
.../ads_insights_hourly_advertiser.md | 0
.../ads_insights_platform_and_device.md | 0
.../facebook-ads/ads_insights_region.md | 0
.../facebook-ads/adsets.md | 0
.../facebook-ads/campaigns.md | 0
.../facebook-ads/foreign-keys.md | 0
.../_integration-schemas}/freshdesk/agents.md | 0
.../freshdesk/companies.md | 2 +-
.../freshdesk/contacts.md | 0
.../freshdesk/conversations.md | 0
.../freshdesk/foreign-keys.md | 0
.../_integration-schemas}/freshdesk/groups.md | 0
.../_integration-schemas}/freshdesk/roles.md | 0
.../freshdesk/satisfaction_ratings.md | 0
.../freshdesk/tickets.md | 0
.../freshdesk/time_entries.md | 0
.../frontapp/v1/tags_table.md | 0
.../frontapp/v1/team_table.md | 0
.../frontapp/v2/accounts_table.md | 0
.../frontapp/v2/channels_table.md | 0
.../frontapp/v2/inboxes_table.md | 0
.../frontapp/v2/tags_table.md | 0
.../frontapp/v2/teammates_table.md | 0
.../frontapp/v2/teams_table.md | 0
.../_integration-schemas}/fullstory/events.md | 0
.../ga360/foreign-keys.md | 0
.../ga360/ga_session_hits.md | 0
.../ga360/ga_sessions.md | 0
.../ga4/v1/sample-report.md | 0
.../github/v1/assignees.md | 0
.../github/v1/collaborators.md | 0
.../github/v1/comments.md | 0
.../github/v1/commit_comments.md | 0
.../github/v1/commits.md | 0
.../_integration-schemas}/github/v1/events.md | 0
.../github/v1/foreign-keys.md | 0
.../github/v1/issue_events.md | 0
.../github/v1/issue_labels.md | 0
.../github/v1/issue_milestones.md | 0
.../_integration-schemas}/github/v1/issues.md | 0
.../github/v1/pr_commits.md | 2 +-
.../github/v1/project_cards.md | 0
.../github/v1/project_columns.md | 0
.../github/v1/projects.md | 0
.../github/v1/pull_requests.md | 0
.../github/v1/releases.md | 0
.../github/v1/review_comments.md | 2 +-
.../github/v1/reviews.md | 2 +-
.../github/v1/stargazers.md | 0
.../github/v1/team_members.md | 0
.../github/v1/team_memberships.md | 0
.../_integration-schemas}/github/v1/teams.md | 0
.../github/v2/assignees.md | 0
.../github/v2/collaborators.md | 0
.../github/v2/comments.md | 0
.../github/v2/commit_comments.md | 0
.../github/v2/commits.md | 0
.../_integration-schemas}/github/v2/events.md | 0
.../github/v2/foreign-keys.md | 0
.../github/v2/issue_events.md | 0
.../github/v2/issue_labels.md | 0
.../github/v2/issue_milestones.md | 0
.../_integration-schemas}/github/v2/issues.md | 0
.../github/v2/pr_commits.md | 0
.../github/v2/project_cards.md | 0
.../github/v2/project_columns.md | 0
.../github/v2/projects.md | 0
.../github/v2/pull_requests.md | 0
.../github/v2/releases.md | 0
.../github/v2/review_comments.md | 0
.../github/v2/reviews.md | 0
.../github/v2/stargazers.md | 0
.../github/v2/team_members.md | 0
.../github/v2/team_memberships.md | 0
.../_integration-schemas}/github/v2/teams.md | 0
.../_integration-schemas}/gitlab/branches.md | 0
.../_integration-schemas}/gitlab/commits.md | 0
.../gitlab/foreign-keys.md | 0
.../_integration-schemas}/gitlab/issues.md | 0
.../gitlab/milestones.md | 0
.../_integration-schemas}/gitlab/projects.md | 0
.../_integration-schemas}/gitlab/users.md | 0
.../account_performance_report.md | 0
.../google-ads-adwords/accounts.md | 0
.../google-ads-adwords/ad_groups.md | 0
.../ad_performance_report.md | 0
.../adgroup_performance_report.md | 0
.../google-ads-adwords/ads.md | 0
.../age_range_performance_report.md | 0
.../audience_performance_report.md | 0
.../call_metrics_call_details_report.md | 0
.../campaign_performance_report.md | 0
.../google-ads-adwords/campaigns.md | 0
.../click_performance_report.md | 0
.../criteria_performance_report.md | 0
.../display_keyword_performance_report.md | 0
.../display_topics_performance_report.md | 0
.../google-ads-adwords/final_url_report.md | 0
.../gender_performance_report.md | 0
.../geo_performance_report.md | 0
.../keywordless_query_report.md | 0
.../keywords_performance_report.md | 0
.../search_query_performance_report.md | 0
.../video_performance_report.md | 0
.../accessible_bidding_strategies.md | 0
.../google-ads/account_performance_report.md | 0
.../google-ads/accounts.md | 0
.../ad_group_audience_performance_report.md | 1 -
.../google-ads/ad_group_criterion.md | 0
.../google-ads/ad_group_performance_report.md | 0
.../google-ads/ad_groups.md | 0
.../google-ads/ad_performance_report.md | 0
.../_integration-schemas}/google-ads/ads.md | 0
.../age_range_performance_report.md | 0
.../google-ads/bidding_strategies.md | 0
.../google-ads/call_details.md | 0
.../campaign_audience_performance_report.md | 0
.../google-ads/campaign_budgets.md | 0
.../google-ads/campaign_criterion.md | 0
.../google-ads/campaign_labels.md | 0
.../google-ads/campaign_performance_report.md | 0
.../google-ads/campaigns.md | 0
.../google-ads/carrier_constant.md | 0
.../google-ads/click_performance_report.md | 0
.../display_keyword_performance_report.md | 0
.../display_topics_performance_report.md | 0
.../expanded_landing_page_report.md | 0
.../_integration-schemas}/google-ads/feed.md | 0
.../google-ads/feed_item.md | 0
.../google-ads/gender_performance_report.md | 0
.../google-ads/geo_performance_report.md | 0
.../google-ads/keywordless_query_report.md | 0
.../google-ads/keywords_performance_report.md | 0
.../google-ads/labels.md | 0
.../google-ads/landing_page_report.md | 0
.../google-ads/language_constant.md | 2 +-
.../mobile_app_category_constant.md | 0
.../google-ads/mobile_device_constant.md | 2 +-
.../operating_system_verison_constant.md | 2 +-
.../placeholder_feed_item_report.md | 0
.../google-ads/placeholder_report.md | 0
.../placement_performance_report.md | 0
.../search_query_performance_report.md | 0
.../google-ads/shopping_performance_report.md | 0
.../google-ads/topic_constant.md | 0
.../google-ads/user_interest.md | 0
.../google-ads/user_list.md | 0
.../user_location_performance_report.md | 0
.../google-ads/video_performance_report.md | 0
.../google-adwords/foreign-keys.md | 2 +-
.../google-analytics-adwords/report.md | 2 +-
.../v15-10-2015/adwords.md | 2 +-
.../v15-10-2015/campaigns.md | 0
.../google-analytics/v1/sample-table.md | 0
.../google-analytics/v14-09-2016/report.md | 0
.../google-ecommerce/ecommerce-v2.md | 0
.../google-search-console/v1/foreign-keys.md | 0
.../v1/performance_report_country.md | 0
.../v1/performance_report_custom.md | 0
.../v1/performance_report_date.md | 0
.../v1/performance_report_device.md | 0
.../v1/performance_report_page.md | 0
.../v1/performance_report_query.md | 0
.../google-search-console/v1/sitemaps.md | 0
.../google-search-console/v1/sites.md | 0
.../google-sheets/v1/file_metadata.md | 0
.../google-sheets/v1/foreign-keys.md | 0
.../google-sheets/v1/sample-table.md | 0
.../google-sheets/v1/sheet_metadata.md | 0
.../google-sheets/v1/sheets_loaded.md | 0
.../google-sheets/v1/spreadsheet_metadata.md | 0
.../google-sheets/v2/file_metadata.md | 0
.../google-sheets/v2/sheet_metadata.md | 0
.../google-sheets/v2/sheets_loaded.md | 0
.../google-sheets/v2/spreadsheet_metadata.md | 0
.../harvest-forecast/assignments.md | 0
.../harvest-forecast/clients.md | 0
.../harvest-forecast/foreign-keys.md | 0
.../harvest-forecast/milestones.md | 0
.../harvest-forecast/people.md | 0
.../harvest-forecast/placeholders.md | 0
.../harvest-forecast/projects.md | 0
.../harvest-forecast/roles.md | 0
.../harvest/v1/clients.md | 0
.../harvest/v1/contacts.md | 0
.../harvest/v1/expense_categories.md | 0
.../harvest/v1/expenses.md | 0
.../harvest/v1/invoice_item_categories.md | 0
.../harvest/v1/invoice_messages.md | 0
.../harvest/v1/invoice_payments.md | 0
.../harvest/v1/invoices.md | 4 +-
.../harvest/v1/people.md | 0
.../harvest/v1/project_tasks.md | 0
.../harvest/v1/project_users.md | 0
.../harvest/v1/projects.md | 0
.../_integration-schemas}/harvest/v1/tasks.md | 0
.../harvest/v1/time_entries.md | 4 +-
.../harvest/v2/clients.md | 0
.../harvest/v2/contacts.md | 0
.../harvest/v2/estimate_item_categories.md | 0
.../harvest/v2/estimate_line_items.md | 0
.../harvest/v2/estimate_messages.md | 0
.../harvest/v2/estimates.md | 0
.../harvest/v2/expense_categories.md | 0
.../harvest/v2/expenses.md | 0
.../harvest/v2/external_reference.md | 6 +-
.../harvest/v2/foreign-keys.md | 0
.../harvest/v2/invoice_item_categories.md | 0
.../harvest/v2/invoice_line_items.md | 0
.../harvest/v2/invoice_messages.md | 0
.../harvest/v2/invoice_payments.md | 0
.../harvest/v2/invoices.md | 0
.../harvest/v2/project_tasks.md | 0
.../harvest/v2/project_users.md | 0
.../harvest/v2/projects.md | 0
.../_integration-schemas}/harvest/v2/roles.md | 0
.../_integration-schemas}/harvest/v2/tasks.md | 0
.../harvest/v2/time_entries.md | 0
.../v2/time_entry_external_reference.md | 0
.../harvest/v2/user_project_tasks.md | 4 +-
.../harvest/v2/user_projects.md | 0
.../harvest/v2/user_roles.md | 4 +-
.../_integration-schemas}/harvest/v2/users.md | 0
.../heap/v1/event_tables.md | 0
.../heap/v1/foreign-keys.md | 0
.../heap/v1/pageviews.md | 0
.../_integration-schemas}/heap/v1/sessions.md | 0
.../heap/v1/user_migrations.md | 0
.../_integration-schemas}/heap/v1/users.md | 0
.../helpscout/v1/conversation_threads.md | 0
.../helpscout/v1/conversations.md | 0
.../helpscout/v1/customers.md | 0
.../helpscout/v1/foreign-keys.md | 0
.../helpscout/v1/happiness_ratings_report.md | 0
.../helpscout/v1/mailbox_fields.md | 0
.../helpscout/v1/mailbox_folders.md | 0
.../helpscout/v1/mailboxes.md | 0
.../helpscout/v1/team_members.md | 0
.../helpscout/v1/teams.md | 0
.../helpscout/v1/users.md | 0
.../helpscout/v1/workflows.md | 0
.../hubspot/campaigns.md | 0
.../hubspot/companies.md | 0
.../hubspot/contact_lists.md | 0
.../_integration-schemas}/hubspot/contacts.md | 0
.../hubspot/contacts_by_company.md | 0
.../hubspot/deal_pipelines.md | 0
.../_integration-schemas}/hubspot/deals.md | 0
.../hubspot/email_events.md | 0
.../hubspot/engagements.md | 0
.../hubspot/foreign-keys.md | 0
.../_integration-schemas}/hubspot/forms.md | 0
.../_integration-schemas}/hubspot/owners.md | 0
.../hubspot/subscription_changes.md | 0
.../_integration-schemas}/hubspot/tickets.md | 0
.../hubspot/v01-03-2017/campaigns.md | 0
.../hubspot/v01-03-2017/companies.md | 0
.../hubspot/v01-03-2017/contact_lists.md | 0
.../hubspot/v01-03-2017/contacts.md | 0
.../hubspot/v01-03-2017/deals.md | 0
.../hubspot/v01-03-2017/email_events.md | 0
.../hubspot/v01-03-2017/engagements.md | 0
.../hubspot/v01-03-2017/forms.md | 0
.../hubspot/v01-03-2017/keywords.md | 0
.../hubspot/v01-03-2017/owners.md | 0
.../v01-03-2017/subscription_changes.md | 0
.../hubspot/v01-03-2017/workflows.md | 0
.../hubspot/v1/campaigns.md | 0
.../hubspot/v1/companies.md | 0
.../hubspot/v1/contact_lists.md | 0
.../hubspot/v1/contacts.md | 0
.../hubspot/v1/contacts_by_company.md | 6 +-
.../_integration-schemas}/hubspot/v1/deals.md | 0
.../hubspot/v1/email_events.md | 0
.../hubspot/v1/engagements.md | 0
.../_integration-schemas}/hubspot/v1/forms.md | 0
.../hubspot/v1/keywords.md | 0
.../hubspot/v1/owners.md | 0
.../hubspot/v1/subscription_changes.md | 0
.../hubspot/workflows.md | 0
.../ilevel/v1/asset_to_asset_relations.md | 0
.../_integration-schemas}/ilevel/v1/assets.md | 0
.../ilevel/v1/data_items.md | 0
.../ilevel/v1/foreign-keys.md | 0
.../ilevel/v1/fund_to_asset_relations.md | 0
.../ilevel/v1/fund_to_fund_relations.md | 0
.../_integration-schemas}/ilevel/v1/funds.md | 0
.../ilevel/v1/investment_transactions.md | 0
.../ilevel/v1/investments.md | 0
.../ilevel/v1/periodic_data_calculated.md | 0
.../ilevel/v1/periodic_data_standardized.md | 0
.../ilevel/v1/scenarios.md | 0
.../ilevel/v1/securities.md | 0
.../impact/v1/action_inquiries.md | 0
.../impact/v1/action_updates.md | 0
.../impact/v1/actions.md | 0
.../_integration-schemas}/impact/v1/ads.md | 0
.../impact/v1/api_submissions.md | 0
.../impact/v1/campaigns.md | 0
.../impact/v1/catalog_items.md | 0
.../impact/v1/catalogs.md | 0
.../_integration-schemas}/impact/v1/clicks.md | 0
.../impact/v1/company_information.md | 0
.../impact/v1/contacts.md | 0
.../impact/v1/conversion_paths.md | 0
.../_integration-schemas}/impact/v1/deals.md | 0
.../impact/v1/exception_list_items.md | 0
.../impact/v1/exception_lists.md | 0
.../impact/v1/foreign-keys.md | 0
.../impact/v1/ftp_file_submissions.md | 0
.../impact/v1/invoices.md | 0
.../impact/v1/media_partner_groups.md | 0
.../impact/v1/media_partners.md | 0
.../_integration-schemas}/impact/v1/notes.md | 0
.../impact/v1/phone_numbers.md | 0
.../impact/v1/promo_codes.md | 0
.../impact/v1/report_metadata.md | 0
.../impact/v1/reports.md | 0
.../impact/v1/tracking_value_requests.md | 0
.../impact/v1/unique_urls.md | 0
.../intercom/v02-02-2016/admins.md | 0
.../intercom/v02-02-2016/companies.md | 0
.../intercom/v02-02-2016/company_segments.md | 0
.../intercom/v02-02-2016/contacts.md | 0
.../intercom/v02-02-2016/conversations.md | 0
.../intercom/v02-02-2016/foreign-keys.md | 0
.../intercom/v02-02-2016/segments.md | 0
.../intercom/v02-02-2016/tags.md | 0
.../intercom/v02-02-2016/users.md | 0
.../intercom/v1/admins.md | 0
.../intercom/v1/companies.md | 0
.../intercom/v1/company_attributes.md | 0
.../intercom/v1/company_segments.md | 0
.../intercom/v1/contact_attributes.md | 0
.../intercom/v1/contacts.md | 0
.../intercom/v1/conversation_parts.md | 0
.../intercom/v1/conversations.md | 0
.../intercom/v1/foreign-keys.md | 0
.../intercom/v1/segments.md | 0
.../_integration-schemas}/intercom/v1/tags.md | 0
.../intercom/v1/teams.md | 0
.../intercom/v2/admins.md | 0
.../intercom/v2/companies.md | 0
.../intercom/v2/company_attributes.md | 0
.../intercom/v2/company_segments.md | 0
.../intercom/v2/contact_attributes.md | 0
.../intercom/v2/contacts.md | 0
.../intercom/v2/conversation_parts.md | 0
.../intercom/v2/conversations.md | 0
.../intercom/v2/foreign-keys.md | 0
.../intercom/v2/segments.md | 0
.../_integration-schemas}/intercom/v2/tags.md | 0
.../intercom/v2/teams.md | 0
.../invoiced/credit_notes.md | 0
.../invoiced/customers.md | 1 -
.../invoiced/estimates.md | 7 +-
.../invoiced/foreign-keys.md | 0
.../invoiced/invoices.md | 5 -
.../_integration-schemas}/invoiced/plans.md | 0
.../invoiced/subscriptions.md | 1 -
.../invoiced/transactions.md | 0
.../iterable/v1/campaigns.md | 0
.../iterable/v1/channels.md | 0
.../iterable/v1/email_bounce.md | 0
.../iterable/v1/email_click.md | 0
.../iterable/v1/email_complaint.md | 0
.../iterable/v1/email_open.md | 0
.../iterable/v1/email_send.md | 0
.../iterable/v1/email_send_skip.md | 0
.../iterable/v1/email_subscribe.md | 0
.../iterable/v1/email_unsubscribe.md | 0
.../iterable/v1/foreign-keys.md | 0
.../iterable/v1/list_users.md | 0
.../iterable/v1/lists.md | 0
.../iterable/v1/message_types.md | 0
.../iterable/v1/metadata.md | 0
.../iterable/v1/templates.md | 0
.../iterable/v1/users.md | 0
.../jira/v1/changelogs.md | 0
.../jira/v1/foreign-keys.md | 2 +-
.../jira/v1/issue_comments.md | 0
.../jira/v1/issue_transitions.md | 0
.../_integration-schemas}/jira/v1/issues.md | 0
.../jira/v1/project_categories.md | 0
.../jira/v1/project_types.md | 0
.../_integration-schemas}/jira/v1/projects.md | 2 -
.../jira/v1/resolutions.md | 0
.../_integration-schemas}/jira/v1/roles.md | 0
.../_integration-schemas}/jira/v1/users.md | 0
.../_integration-schemas}/jira/v1/versions.md | 0
.../_integration-schemas}/jira/v1/worklogs.md | 0
.../jira/v2/changelogs.md | 0
.../jira/v2/components.md | 0
.../jira/v2/foreign-keys.md | 2 +-
.../jira/v2/issue_comments.md | 0
.../jira/v2/issue_transitions.md | 0
.../_integration-schemas}/jira/v2/issues.md | 0
.../jira/v2/project_categories.md | 0
.../jira/v2/project_types.md | 0
.../_integration-schemas}/jira/v2/projects.md | 2 -
.../jira/v2/resolutions.md | 0
.../_integration-schemas}/jira/v2/roles.md | 0
.../_integration-schemas}/jira/v2/users.md | 0
.../_integration-schemas}/jira/v2/versions.md | 0
.../_integration-schemas}/jira/v2/worklogs.md | 0
.../_integration-schemas}/klaviyo/bounce.md | 0
.../klaviyo/campaigns.md | 0
.../_integration-schemas}/klaviyo/click.md | 0
.../klaviyo/clicked_sms.md | 0
.../klaviyo/consented_to_receive.md | 0
.../klaviyo/dropped_email.md | 0
.../klaviyo/failed_to_deliver.md | 0
.../failed_to_deliver_automated_response.md | 0
.../klaviyo/foreign-keys.yml | 0
.../klaviyo/global_exclusions.md | 0
.../_integration-schemas}/klaviyo/lists.md | 0
.../klaviyo/mark_as_spam.md | 0
.../_integration-schemas}/klaviyo/open.md | 0
.../_integration-schemas}/klaviyo/receive.md | 0
.../klaviyo/received_automated_response.md | 0
.../klaviyo/received_sms.md | 0
.../_integration-schemas}/klaviyo/sent_sms.md | 0
.../klaviyo/subscribe_list.md | 0
.../klaviyo/unsub_list.md | 0
.../klaviyo/unsubscribe.md | 0
.../klaviyo/update_email_preferences.md | 0
.../kustomer/v1/conversations.md | 0
.../kustomer/v1/customers.md | 0
.../kustomer/v1/foreign-keys.md | 0
.../kustomer/v1/kobjects.md | 0
.../kustomer/v1/messages.md | 0
.../kustomer/v1/notes.md | 0
.../kustomer/v1/shortcuts.md | 0
.../_integration-schemas}/kustomer/v1/tags.md | 0
.../kustomer/v1/teams.md | 0
.../kustomer/v1/users.md | 0
.../lever/v1/archive_reasons.md | 0
.../lever/v1/candidate_applications.md | 0
.../lever/v1/candidate_offers.md | 0
.../lever/v1/candidate_referrals.md | 0
.../lever/v1/candidate_resumes.md | 0
.../lever/v1/candidates.md | 1 -
.../lever/v1/foreign-keys.md | 0
.../lever/v1/opportunities.md | 0
.../lever/v1/opportunity_applications.md | 0
.../lever/v1/opportunity_offers.md | 0
.../lever/v1/opportunity_referrals.md | 0
.../lever/v1/opportunity_resumes.md | 0
.../lever/v1/postings.md | 0
.../lever/v1/requisitions.md | 1 -
.../_integration-schemas}/lever/v1/sources.md | 0
.../_integration-schemas}/lever/v1/stages.md | 0
.../_integration-schemas}/lever/v1/users.md | 0
.../linkedin-ads/v1/account_users.md | 0
.../linkedin-ads/v1/accounts.md | 0
.../v1/ad_analytics_by_campaign.md | 0
.../v1/ad_analytics_by_creative.md | 0
.../linkedin-ads/v1/campaign_groups.md | 0
.../linkedin-ads/v1/campaigns.md | 0
.../linkedin-ads/v1/creatives.md | 0
.../linkedin-ads/v1/foreign-keys.md | 0
.../linkedin-ads/v1/video_ads.md | 0
.../linkedin-ads/v2/account_users.md | 0
.../linkedin-ads/v2/accounts.md | 0
.../v2/ad_analytics_by_campaign.md | 0
.../v2/ad_analytics_by_creative.md | 0
.../linkedin-ads/v2/campaign_groups.md | 0
.../linkedin-ads/v2/campaigns.md | 0
.../linkedin-ads/v2/creatives.md | 0
.../linkedin-ads/v2/foreign-keys.md | 0
.../linkedin-ads/v2/video_ads.md | 0
.../listrak/foreign-keys.md | 0
.../_integration-schemas}/listrak/lists.md | 0
.../listrak/message_bounces.md | 0
.../listrak/message_clicks.md | 0
.../listrak/message_opens.md | 0
.../listrak/message_reads.md | 0
.../listrak/message_sends.md | 0
.../listrak/message_unsubs.md | 0
.../_integration-schemas}/listrak/messages.md | 0
.../listrak/subscribed_contacts.md | 0
.../liveperson/v1/agent_activity.md | 0
.../liveperson/v1/agent_groups.md | 0
.../liveperson/v1/agent_state_distribution.md | 0
.../liveperson/v1/agent_status.md | 0
.../liveperson/v1/engagement_history.md | 0
.../liveperson/v1/foreign-keys.md | 0
.../liveperson/v1/messaging_interactions.md | 0
.../liveperson/v1/messaging_queue_health.md | 0
.../liveperson/v1/queue_health.md | 0
.../liveperson/v1/skills.md | 0
.../liveperson/v1/users.md | 0
.../looker/v1/color_collections.md | 0
.../looker/v1/connections.md | 0
.../looker/v1/content_favorites.md | 0
.../looker/v1/content_metadata.md | 0
.../looker/v1/content_metadata_access.md | 0
.../looker/v1/content_views.md | 0
.../looker/v1/dashboard_elements.md | 0
.../looker/v1/dashboard_filters.md | 0
.../looker/v1/dashboard_layouts.md | 0
.../looker/v1/dashboards.md | 0
.../looker/v1/datagroups.md | 0
.../looker/v1/explores.md | 0
.../looker/v1/folders.md | 0
.../looker/v1/foreign-keys.md | 0
.../looker/v1/git_branches.md | 0
.../_integration-schemas}/looker/v1/groups.md | 0
.../looker/v1/groups_in_group.md | 0
.../looker/v1/integration_hubs.md | 0
.../looker/v1/integrations.md | 0
.../looker/v1/lookml_dashboards.md | 0
.../looker/v1/lookml_models.md | 0
.../_integration-schemas}/looker/v1/looks.md | 0
.../looker/v1/merge_queries.md | 0
.../looker/v1/model_sets.md | 0
.../_integration-schemas}/looker/v1/models.md | 0
.../looker/v1/permission_sets.md | 0
.../looker/v1/permissions.md | 0
.../looker/v1/project_files.md | 0
.../looker/v1/projects.md | 0
.../looker/v1/queries.md | 0
.../looker/v1/query_history.md | 0
.../looker/v1/role_groups.md | 0
.../_integration-schemas}/looker/v1/roles.md | 0
.../looker/v1/scheduled_plans.md | 0
.../_integration-schemas}/looker/v1/themes.md | 0
.../looker/v1/user_attribute_group_values.md | 0
.../looker/v1/user_attribute_values.md | 0
.../looker/v1/user_attributes.md | 0
.../looker/v1/user_login_lockouts.md | 0
.../looker/v1/user_sessions.md | 0
.../_integration-schemas}/looker/v1/users.md | 0
.../looker/v1/versions.md | 0
.../looker/v1/workspaces.md | 0
.../lookml/v1/model_files.md | 0
.../_integration-schemas}/lookml/v1/models.md | 0
.../lookml/v1/view_files.md | 0
.../_integration-schemas}/lookml/v1/views.md | 0
.../mailchimp/v1/automations.md | 0
.../mailchimp/v1/campaigns.md | 0
.../mailchimp/v1/foreign-keys.md | 0
.../mailchimp/v1/list_members.md | 0
.../mailchimp/v1/list_segment_members.md | 0
.../mailchimp/v1/list_segments.md | 0
.../mailchimp/v1/lists.md | 0
.../mailchimp/v1/reports_email_activity.md | 0
.../mailchimp/v1/unsubscribes.md | 0
.../mailshake/v1/campaigns.md | 0
.../mailshake/v1/clicks.md | 0
.../mailshake/v1/foreign-keys.md | 0
.../mailshake/v1/leads.md | 1 -
.../mailshake/v1/opens.md | 1 -
.../mailshake/v1/recipients.md | 0
.../mailshake/v1/replies.md | 0
.../mailshake/v1/senders.md | 0
.../mailshake/v1/sent_messages.md | 1 -
.../mailshake/v1/team_members.md | 0
.../mambu/v1/activities.md | 0
.../mambu/v1/branches.md | 0
.../_integration-schemas}/mambu/v1/cards.md | 2 +-
.../_integration-schemas}/mambu/v1/centres.md | 0
.../_integration-schemas}/mambu/v1/clients.md | 0
.../mambu/v1/communications.md | 0
.../mambu/v1/credit_arrangements.md | 0
.../mambu/v1/custom_field_sets.md | 0
.../mambu/v1/deposit_accounts.md | 0
.../mambu/v1/deposit_products.md | 0
.../mambu/v1/deposit_transactions.md | 0
.../mambu/v1/foreign-keys.md | 0
.../mambu/v1/gl_accounts.md | 0
.../mambu/v1/gl_journal_entries.md | 0
.../_integration-schemas}/mambu/v1/groups.md | 0
.../mambu/v1/index_rate_sources.md | 0
.../mambu/v1/installments.md | 0
.../mambu/v1/loan_accounts.md | 0
.../mambu/v1/loan_products.md | 0
.../mambu/v1/loan_repayments.md | 2 +-
.../mambu/v1/loan_transactions.md | 0
.../_integration-schemas}/mambu/v1/tasks.md | 0
.../_integration-schemas}/mambu/v1/users.md | 0
.../mambu/v2/activities.md | 0
.../mambu/v2/audit_trail.md | 0
.../mambu/v2/branches.md | 0
.../_integration-schemas}/mambu/v2/cards.md | 2 +-
.../_integration-schemas}/mambu/v2/centres.md | 0
.../_integration-schemas}/mambu/v2/clients.md | 0
.../mambu/v2/communications.md | 0
.../mambu/v2/credit_arrangements.md | 0
.../mambu/v2/custom_field_sets.md | 0
.../mambu/v2/deposit_accounts.md | 0
.../mambu/v2/deposit_products.md | 0
.../mambu/v2/deposit_transactions.md | 0
.../mambu/v2/foreign-keys.md | 0
.../mambu/v2/gl_accounts.md | 0
.../mambu/v2/gl_journal_entries.md | 0
.../_integration-schemas}/mambu/v2/groups.md | 0
.../mambu/v2/index_rate_sources.md | 0
.../mambu/v2/installments.md | 0
.../mambu/v2/loan_accounts.md | 0
.../mambu/v2/loan_products.md | 0
.../mambu/v2/loan_repayments.md | 2 +-
.../mambu/v2/loan_transactions.md | 0
.../_integration-schemas}/mambu/v2/tasks.md | 0
.../_integration-schemas}/mambu/v2/users.md | 0
.../mambu/v4/activities.md | 0
.../mambu/v4/audit_trail.md | 0
.../mambu/v4/branches.md | 0
.../_integration-schemas}/mambu/v4/cards.md | 0
.../_integration-schemas}/mambu/v4/centres.md | 0
.../_integration-schemas}/mambu/v4/clients.md | 0
.../mambu/v4/communications.md | 0
.../mambu/v4/credit_arrangements.md | 0
.../mambu/v4/custom_field_sets.md | 0
.../mambu/v4/deposit_accounts.md | 0
.../mambu/v4/deposit_products.md | 0
.../mambu/v4/deposit_transactions.md | 0
.../mambu/v4/foreign-keys.md | 0
.../mambu/v4/gl_accounts.md | 0
.../mambu/v4/gl_journal_entries.md | 0
.../_integration-schemas}/mambu/v4/groups.md | 0
.../mambu/v4/index_rate_sources.md | 0
.../mambu/v4/installments.md | 0
.../mambu/v4/loan_accounts.md | 0
.../mambu/v4/loan_products.md | 0
.../mambu/v4/loan_repayments.md | 0
.../mambu/v4/loan_transactions.md | 0
.../_integration-schemas}/mambu/v4/tasks.md | 0
.../_integration-schemas}/mambu/v4/users.md | 0
.../marketo/activities.md | 0
.../marketo/activity_types.md | 0
.../marketo/campaigns.md | 2 +-
.../marketo/foreign-keys.md | 0
.../_integration-schemas}/marketo/leads.md | 2 +-
.../_integration-schemas}/marketo/lists.md | 0
.../_integration-schemas}/marketo/programs.md | 0
.../marketo/v1/activities.md | 0
.../marketo/v1/activity_types.md | 0
.../_integration-schemas}/marketo/v1/leads.md | 2 +-
.../_integration-schemas}/marketo/v1/lists.md | 0
.../mixpanel/v1/annotations.md | 0
.../mixpanel/v1/cohort_members.md | 0
.../mixpanel/v1/cohorts.md | 0
.../mixpanel/v1/engage.md | 0
.../mixpanel/v1/export.md | 2 +-
.../mixpanel/v1/foreign-keys.md | 0
.../mixpanel/v1/funnels.md | 0
.../mixpanel/v1/revenue.md | 0
.../ms-teams/v1/channel_members.md | 0
.../ms-teams/v1/channel_message_replies.md | 0
.../ms-teams/v1/channel_messages.md | 0
.../ms-teams/v1/channel_tabs.md | 0
.../ms-teams/v1/channels.md | 0
.../ms-teams/v1/conversation_posts.md | 0
.../ms-teams/v1/conversation_threads.md | 0
.../ms-teams/v1/conversations.md | 0
.../ms-teams/v1/foreign-keys.md | 0
.../ms-teams/v1/group_members.md | 0
.../ms-teams/v1/group_owners.md | 0
.../ms-teams/v1/groups.md | 0
.../ms-teams/v1/team_device_usage_report.md | 0
.../ms-teams/v1/team_drives.md | 0
.../ms-teams/v1/users.md | 0
.../v1/account_activity.md | 0
.../v1/account_period_activity.md | 0
.../v1/account_period_activity_pe.md | 0
.../v1/account_subsidiary_map.md | 0
.../v1/accounting_books.md | 0
.../v1/accounting_periods.md | 0
.../netsuite-suite-analytics/v1/accounts.md | 0
.../netsuite-suite-analytics/v1/activities.md | 0
.../v1/address_book.md | 0
.../netsuite-suite-analytics/v1/addresses.md | 0
.../v1/amortization_sched_lines.md | 0
.../v1/amortization_schedules.md | 0
.../v1/bill_of_distributions.md | 0
.../v1/bill_of_materials.md | 0
.../v1/billing_accounts.md | 0
.../v1/billing_class_rates.md | 0
.../v1/billing_classes.md | 0
.../v1/billing_rate_cards.md | 0
.../v1/billing_rate_cards_prices.md | 0
.../v1/billing_rate_cards_versions.md | 0
.../v1/billing_schedule.md | 0
.../v1/billing_schedule_descriptions.md | 0
.../v1/billing_schedules.md | 0
.../v1/billing_subscription_lines.md | 0
.../v1/billing_subscriptions.md | 0
.../netsuite-suite-analytics/v1/bin_number.md | 0
.../v1/bin_number_counts.md | 0
.../netsuite-suite-analytics/v1/bins.md | 0
.../v1/bom_revision_components.md | 0
.../v1/bom_revisions.md | 0
.../netsuite-suite-analytics/v1/budget.md | 0
.../v1/budget_category.md | 0
.../netsuite-suite-analytics/v1/calls.md | 0
.../v1/campaign_audiences.md | 0
.../v1/campaign_categories.md | 0
.../v1/campaign_families.md | 0
.../v1/campaign_search_engine.md | 0
.../v1/campaign_subscription_statuses.md | 0
.../v1/campaign_subscriptions.md | 0
.../v1/campaign_verticals.md | 0
.../v1/campaignchannel.md | 0
.../v1/campaignevent.md | 0
.../v1/campaignitem.md | 0
.../v1/campaignoffer.md | 0
.../v1/campaignresponse.md | 0
.../v1/campaignresponsehistory.md | 0
.../netsuite-suite-analytics/v1/campaigns.md | 0
.../v1/case_origins.md | 0
.../v1/case_stage_changes.md | 0
.../netsuite-suite-analytics/v1/case_types.md | 0
.../v1/caseescalationhistory.md | 0
.../netsuite-suite-analytics/v1/caseissue.md | 0
.../netsuite-suite-analytics/v1/caseorigin.md | 0
.../netsuite-suite-analytics/v1/casetype.md | 0
.../netsuite-suite-analytics/v1/charges.md | 0
.../netsuite-suite-analytics/v1/classes.md | 0
.../v1/commission_authorization_link.md | 0
.../v1/commissionplan.md | 0
.../v1/commissionrate.md | 0
.../v1/commissionschedule.md | 0
.../netsuite-suite-analytics/v1/companies.md | 0
.../v1/company_status.md | 0
.../v1/companycontactmap.md | 0
.../netsuite-suite-analytics/v1/competitor.md | 0
.../v1/competitoroppmap.md | 0
.../v1/components_per_routing_steps.md | 0
.../v1/consolidated_exchange_rates.md | 0
.../v1/contact_types.md | 0
.../v1/contactrole.md | 0
.../netsuite-suite-analytics/v1/contacts.md | 0
.../netsuite-suite-analytics/v1/countries.md | 0
.../v1/coupon_codes.md | 0
.../netsuite-suite-analytics/v1/crmgroup.md | 0
.../v1/crmgroupmap.md | 0
.../v1/crmtemplate.md | 0
.../netsuite-suite-analytics/v1/currencies.md | 0
.../v1/currency_exchange_rate_types.md | 0
.../v1/currency_exchange_rates.md | 0
.../v1/currencyrates.md | 0
.../v1/customer_currencies.md | 0
.../v1/customer_group_pricing.md | 0
.../v1/customer_item_pricing.md | 0
.../v1/customer_partner_sales_teams.md | 0
.../v1/customer_sales_teams.md | 0
.../v1/customer_subsidiary_map.md | 0
.../v1/customer_types.md | 0
.../netsuite-suite-analytics/v1/customers.md | 0
.../v1/deleted_records.md | 0
.../v1/departments.md | 0
.../v1/distribution_categories.md | 0
.../v1/distribution_networks.md | 0
.../v1/employee_currency_map.md | 0
.../v1/employee_time.md | 0
.../v1/employee_types.md | 0
.../netsuite-suite-analytics/v1/employees.md | 0
.../netsuite-suite-analytics/v1/entity.md | 0
.../v1/entity_role_map.md | 0
.../v1/entity_status.md | 0
.../v1/entity_status_history.md | 0
.../v1/entitycategory.md | 0
.../v1/entityeventmap.md | 0
.../v1/entityterritorymap.md | 0
.../v1/eventattendees.md | 0
.../netsuite-suite-analytics/v1/events1.md | 0
.../v1/expense_accounts.md | 0
.../v1/expense_amortization_rules.md | 0
.../v1/expense_based_charge_rules.md | 0
.../v1/expense_categories.md | 0
.../v1/expense_categories_rates.md | 0
.../v1/expense_categories_subs_map.md | 0
.../v1/expense_detail.md | 0
.../v1/expense_plan_lines.md | 0
.../v1/expense_plans.md | 0
.../v1/fair_value_prices.md | 0
.../v1/fixed_fee_charge_rules.md | 0
.../v1/foreign-keys.md | 0
.../v1/generic_resources.md | 0
.../v1/gift_certificates.md | 0
.../v1/global_account_map.md | 0
.../v1/global_inventory_relationships.md | 0
.../v1/group_test_cell.md | 0
.../v1/inbound_shipment_items.md | 0
.../v1/inbound_shipments.md | 0
.../v1/income_accounts.md | 0
.../v1/inventory_cost_template.md | 0
.../v1/inventory_cost_template_items.md | 0
.../v1/inventory_items.md | 0
.../v1/inventory_number.md | 0
.../v1/item_account_map.md | 0
.../v1/item_billing_rates.md | 0
.../v1/item_collection_item_map.md | 0
.../v1/item_collections.md | 0
.../v1/item_demand_plan_lines.md | 0
.../v1/item_demand_plans.md | 0
.../v1/item_fulfillments.md | 0
.../netsuite-suite-analytics/v1/item_group.md | 0
.../v1/item_location_map.md | 0
.../v1/item_price_history.md | 0
.../v1/item_prices.md | 0
.../v1/item_quantity.md | 0
.../v1/item_revisions.md | 0
.../v1/item_shipmethods.md | 0
.../v1/item_site_categories.md | 0
.../v1/item_subsidiary_map.md | 0
.../v1/item_supply_plan_attributes.md | 0
.../v1/item_supply_plan_lines.md | 0
.../v1/item_supply_plan_source.md | 0
.../v1/item_supply_plan_source_types.md | 0
.../v1/item_supply_plans.md | 0
.../v1/item_vendor_map.md | 0
.../v1/item_vendor_pricing.md | 0
.../netsuite-suite-analytics/v1/items.md | 0
.../v1/job_resource_role.md | 0
.../v1/job_resources.md | 0
.../netsuite-suite-analytics/v1/job_types.md | 0
.../v1/last_sales_activity_record.md | 0
.../v1/location_costing_groups.md | 0
.../v1/location_costing_grp_locations.md | 0
.../netsuite-suite-analytics/v1/locations.md | 0
.../v1/memorized_trans.md | 0
.../netsuite-suite-analytics/v1/message.md | 0
.../v1/messagerecipient.md | 0
.../v1/mfg_cost_template.md | 0
.../v1/mfg_cost_template_items.md | 0
.../v1/mfg_routing.md | 0
.../v1/mfg_routing_steps.md | 0
.../netsuite-suite-analytics/v1/nexus.md | 0
.../netsuite-suite-analytics/v1/nlcompany.md | 0
.../v1/notes_system.md | 0
.../v1/notes_system_custom.md | 0
.../netsuite-suite-analytics/v1/notes_user.md | 0
.../netsuite-suite-analytics/v1/notetype.md | 0
.../v1/opportunities.md | 0
.../v1/opportunity_lines.md | 0
.../v1/opportunitycontactmap.md | 0
.../v1/originating_leads.md | 0
.../v1/other_names.md | 0
.../v1/partner_sales_roles.md | 0
.../v1/partner_types.md | 0
.../netsuite-suite-analytics/v1/partners.md | 0
.../v1/payment_methods.md | 0
.../v1/payment_terms.md | 0
.../v1/payroll_item_types.md | 0
.../v1/payroll_items.md | 0
.../v1/percent_complete_overrides.md | 0
.../v1/planassignmap.md | 0
.../v1/planned_standard_costs.md | 0
.../v1/planschedulemap.md | 0
.../v1/posting_account_activity.md | 0
.../v1/posting_account_activity_pe.md | 0
.../v1/price_book_line_intervals.md | 0
.../v1/price_books.md | 0
.../v1/price_plans.md | 0
.../v1/price_tiers.md | 0
.../v1/price_types.md | 0
.../v1/pricing_groups.md | 0
.../v1/project_billing_budgets.md | 0
.../v1/project_cost_budgets.md | 0
.../v1/project_cost_categories.md | 0
.../v1/project_expense_types.md | 0
.../v1/project_revenue_rl_plans.md | 0
.../v1/project_revenue_rls_charge_rls.md | 0
.../v1/project_revenue_rules.md | 0
.../v1/project_task_assignments.md | 0
.../v1/project_task_billing_budgets.md | 0
.../v1/project_task_cost_budgets.md | 0
.../v1/project_task_dependencies.md | 0
.../v1/project_tasks.md | 0
.../v1/project_templates.md | 0
.../v1/project_time_approval_types.md | 0
.../v1/promotion_codes.md | 0
.../v1/purchase_charge_rules.md | 0
.../netsuite-suite-analytics/v1/quota1.md | 0
.../v1/resource_allocations.md | 0
.../v1/resource_group_entity_map.md | 0
.../v1/resource_groups.md | 0
.../v1/revaluation.md | 0
.../v1/revenue_elements.md | 0
.../v1/revenue_plan_lines.md | 0
.../v1/revenue_plan_version_lines.md | 0
.../v1/revenue_plan_versions.md | 0
.../v1/revenue_plans.md | 0
.../v1/revenue_recognition_rules.md | 0
.../v1/revrecschedulelines.md | 0
.../v1/revrecschedules.md | 0
.../v1/role_subsidiary_map.md | 0
.../netsuite-suite-analytics/v1/roles1.md | 0
.../netsuite-suite-analytics/v1/sales_reps.md | 0
.../v1/sales_roles.md | 0
.../v1/sales_territories.md | 0
.../v1/salesforecast.md | 0
.../v1/service_items.md | 0
.../v1/shipment_packages.md | 0
.../v1/shipping_items.md | 0
.../netsuite-suite-analytics/v1/solution.md | 0
.../v1/solutioncasemap.md | 0
.../v1/solutiontopicmap.md | 0
.../v1/standard_cost_components.md | 0
.../netsuite-suite-analytics/v1/states.md | 0
.../v1/subscript_line_price_intervals.md | 0
.../v1/subscription_change_orders.md | 0
.../v1/subscription_co_lines.md | 0
.../v1/subscription_line_revisions.md | 0
.../v1/subscription_plan_lines.md | 0
.../v1/subscription_plans.md | 0
.../v1/subscription_terms.md | 0
.../v1/subsidiaries.md | 0
.../v1/subsidiary_book_map.md | 0
.../v1/subsidiary_class_map.md | 0
.../v1/subsidiary_department_map.md | 0
.../v1/subsidiary_location_map.md | 0
.../v1/subsidiary_nexus_map.md | 0
.../v1/supplier_categories.md | 0
.../v1/support_incidents.md | 0
.../v1/support_reps.md | 0
.../v1/support_territories.md | 0
.../v1/supportcasehistory.md | 0
.../v1/system_notes.md | 0
.../v1/system_notes_custom.md | 0
.../v1/task_contacts.md | 0
.../netsuite-suite-analytics/v1/tasks.md | 0
.../netsuite-suite-analytics/v1/tax_items.md | 0
.../netsuite-suite-analytics/v1/territory.md | 0
.../v1/time_based_charge_rules.md | 0
.../netsuite-suite-analytics/v1/timesheet.md | 0
.../netsuite-suite-analytics/v1/topic.md | 0
.../v1/trans_partner_sales_teams.md | 0
.../v1/transaction_address.md | 0
.../v1/transaction_bin_numbers.md | 0
.../v1/transaction_book_map.md | 0
.../v1/transaction_cost_components.md | 0
.../v1/transaction_history.md | 0
.../v1/transaction_inventory_numbers.md | 0
.../v1/transaction_line_book_map.md | 0
.../v1/transaction_lines.md | 0
.../v1/transaction_links.md | 0
.../v1/transaction_sales_teams.md | 0
.../v1/transaction_shipping_groups.md | 0
.../v1/transaction_tax_detail.md | 0
.../v1/transaction_tracking_numbers.md | 0
.../v1/transactions.md | 0
.../netsuite-suite-analytics/v1/units_type.md | 0
.../v1/unlocked_time_periods.md | 0
.../netsuite-suite-analytics/v1/uom.md | 0
.../netsuite-suite-analytics/v1/usages.md | 0
.../v1/vendor_currencies.md | 0
.../v1/vendor_subsidiary_map.md | 0
.../v1/vendor_types.md | 0
.../netsuite-suite-analytics/v1/vendors.md | 0
.../v1/winlossreason.md | 0
.../v1/work_calendar_holidays.md | 0
.../v1/work_calendars.md | 0
.../netsuite/v1/Account.md | 2 +-
.../netsuite/v1/AccountingPeriod.md | 2 +-
.../netsuite/v1/Address.md | 2 +-
.../netsuite/v1/BillingAccount.md | 2 +-
.../netsuite/v1/BillingSchedule.md | 2 +-
.../_integration-schemas}/netsuite/v1/Bin.md | 2 +-
.../netsuite/v1/Budget.md | 2 +-
.../netsuite/v1/CalendarEvent.md | 2 +-
.../netsuite/v1/Classification.md | 2 +-
.../netsuite/v1/ConsolidatedExchangeRate.md | 2 +-
.../netsuite/v1/ContactCategory.md | 2 +-
.../netsuite/v1/ContactRole.md | 2 +-
.../netsuite/v1/CostCategory.md | 2 +-
.../netsuite/v1/CouponCode.md | 2 +-
.../netsuite/v1/CurrencyRate.md | 2 +-
.../netsuite/v1/CustomList.md | 2 +-
.../netsuite/v1/Customer.md | 2 +-
.../netsuite/v1/CustomerCategory.md | 2 +-
.../netsuite/v1/CustomerMessage.md | 2 +-
.../netsuite/v1/CustomerStatus.md | 2 +-
.../netsuite/v1/Deleted.md | 2 +-
.../netsuite/v1/Department.md | 2 +-
.../netsuite/v1/EntityGroup.md | 2 +-
.../netsuite/v1/ExpenseCategory.md | 2 +-
.../netsuite/v1/FairValuePrice.md | 2 +-
.../netsuite/v1/Folder.md | 2 +-
.../netsuite/v1/GiftCertificate.md | 2 +-
.../netsuite/v1/GlobalAccountMapping.md | 2 +-
.../netsuite/v1/HcmJob.md | 2 +-
.../netsuite/v1/InboundShipment.md | 2 +-
.../netsuite/v1/InventoryNumber.md | 2 +-
.../netsuite/v1/Issue.md | 2 +-
.../netsuite/v1/ItemAccountMapping.md | 2 +-
.../netsuite/v1/ItemDemandPlan.md | 2 +-
.../netsuite/v1/ItemRevision.md | 2 +-
.../netsuite/v1/ItemSupplyPlan.md | 2 +-
.../_integration-schemas}/netsuite/v1/Job.md | 2 +-
.../netsuite/v1/JobStatus.md | 2 +-
.../netsuite/v1/JobType.md | 2 +-
.../netsuite/v1/ManufacturingCostTemplate.md | 2 +-
.../netsuite/v1/ManufacturingOperationTask.md | 2 +-
.../netsuite/v1/ManufacturingRouting.md | 2 +-
.../netsuite/v1/Message.md | 2 +-
.../_integration-schemas}/netsuite/v1/Note.md | 2 +-
.../netsuite/v1/NoteType.md | 2 +-
.../netsuite/v1/Opportunity.md | 2 +-
.../netsuite/v1/OtherNameCategory.md | 2 +-
.../netsuite/v1/PartnerCategory.md | 2 +-
.../netsuite/v1/Paycheck.md | 2 +-
.../netsuite/v1/PaymentMethod.md | 2 +-
.../netsuite/v1/PayrollItem.md | 2 +-
.../netsuite/v1/PhoneCall.md | 2 +-
.../netsuite/v1/PriceLevel.md | 2 +-
.../netsuite/v1/PricingGroup.md | 2 +-
.../netsuite/v1/ProjectTask.md | 2 +-
.../netsuite/v1/PromotionCode.md | 2 +-
.../netsuite/v1/ResourceAllocation.md | 2 +-
.../netsuite/v1/RevRecSchedule.md | 2 +-
.../netsuite/v1/RevRecTemplate.md | 2 +-
.../netsuite/v1/SalesRole.md | 2 +-
.../netsuite/v1/SalesTaxItem.md | 2 +-
.../netsuite/v1/SiteCategory.md | 2 +-
.../netsuite/v1/Solution.md | 2 +-
.../netsuite/v1/Subsidiary.md | 2 +-
.../netsuite/v1/SupportCase.md | 2 +-
.../_integration-schemas}/netsuite/v1/Task.md | 2 +-
.../netsuite/v1/TaxGroup.md | 2 +-
.../netsuite/v1/TaxType.md | 2 +-
.../_integration-schemas}/netsuite/v1/Term.md | 2 +-
.../netsuite/v1/TimeBill.md | 2 +-
.../netsuite/v1/TimeEntry.md | 2 +-
.../netsuite/v1/TimeSheet.md | 2 +-
.../netsuite/v1/Transaction.md | 2 +-
.../netsuite/v1/UnitsType.md | 2 +-
.../netsuite/v1/Usage.md | 2 +-
.../netsuite/v1/Vendor.md | 2 +-
.../netsuite/v1/VendorCategory.md | 2 +-
.../netsuite/v1/WinLossReason.md | 2 +-
.../netsuite/v1/campaign.md | 2 +-
.../netsuite/v1/charge.md | 2 +-
.../netsuite/v1/contact.md | 2 +-
.../netsuite/v1/custom_record.md | 2 +-
.../netsuite/v1/employee.md | 2 +-
.../_integration-schemas}/netsuite/v1/file.md | 2 +-
.../_integration-schemas}/netsuite/v1/item.md | 2 +-
.../netsuite/v1/location.md | 2 +-
.../netsuite/v1/nexus.md | 2 +-
.../netsuite/v1/partner.md | 2 +-
.../netsuite/v1/topic.md | 2 +-
.../netsuite/v10-15-2015/accounting_period.md | 0
.../netsuite/v10-15-2015/app_definition.md | 0
.../netsuite/v10-15-2015/app_package.md | 0
.../netsuite/v10-15-2015/billing_schedule.md | 0
.../netsuite/v10-15-2015/calendar_event.md | 0
.../netsuite/v10-15-2015/campaign.md | 0
.../netsuite/v10-15-2015/classification.md | 0
.../netsuite/v10-15-2015/contact_category.md | 0
.../netsuite/v10-15-2015/contact_role.md | 0
.../netsuite/v10-15-2015/coupon_code.md | 0
.../netsuite/v10-15-2015/currency_rate.md | 0
.../netsuite/v10-15-2015/custom_list.md | 0
.../netsuite/v10-15-2015/custom_records.md | 0
.../netsuite/v10-15-2015/customer.md | 0
.../netsuite/v10-15-2015/customer_category.md | 0
.../netsuite/v10-15-2015/customer_message.md | 0
.../netsuite/v10-15-2015/customer_status.md | 0
.../netsuite/v10-15-2015/deleted.md | 2 +-
.../netsuite/v10-15-2015/department.md | 0
.../netsuite/v10-15-2015/entity_group.md | 0
.../netsuite/v10-15-2015/expense_category.md | 0
.../netsuite/v10-15-2015/folder.md | 0
.../netsuite/v10-15-2015/gift_certificate.md | 0
.../v10-15-2015/global_account_mapping.md | 0
.../netsuite/v10-15-2015/inventory_number.md | 0
.../v10-15-2015/item_account_mapping.md | 0
.../netsuite/v10-15-2015/item_demand_plan.md | 0
.../netsuite/v10-15-2015/item_revision.md | 0
.../netsuite/v10-15-2015/item_supply_plan.md | 0
.../netsuite/v10-15-2015/job.md | 0
.../netsuite/v10-15-2015/job_status.md | 0
.../netsuite/v10-15-2015/job_type.md | 0
.../manufacturing_cost_template.md | 0
.../manufacturing_operation_task.md | 0
.../v10-15-2015/manufacturing_routing.md | 0
.../netsuite/v10-15-2015/message.md | 0
.../netsuite/v10-15-2015/nexus.md | 0
.../netsuite/v10-15-2015/note.md | 0
.../netsuite/v10-15-2015/note_type.md | 0
.../netsuite/v10-15-2015/opportunity.md | 0
.../netsuite/v10-15-2015/originating_lead.md | 0
.../v10-15-2015/other_name_category.md | 0
.../netsuite/v10-15-2015/partner_category.md | 0
.../netsuite/v10-15-2015/payment_method.md | 0
.../netsuite/v10-15-2015/payroll_item.md | 0
.../netsuite/v10-15-2015/phone_call.md | 0
.../netsuite/v10-15-2015/price_level.md | 0
.../netsuite/v10-15-2015/pricing_group.md | 0
.../netsuite/v10-15-2015/project_task.md | 0
.../netsuite/v10-15-2015/promotion_code.md | 0
.../v10-15-2015/resource_allocation.md | 0
.../netsuite/v10-15-2015/rev_rec_schedule.md | 0
.../netsuite/v10-15-2015/rev_rec_template.md | 0
.../netsuite/v10-15-2015/sales_role.md | 0
.../netsuite/v10-15-2015/site_category.md | 0
.../netsuite/v10-15-2015/solution.md | 0
.../netsuite/v10-15-2015/subsidiary.md | 0
.../netsuite/v10-15-2015/support_case.md | 0
.../netsuite/v10-15-2015/task.md | 0
.../netsuite/v10-15-2015/term.md | 0
.../netsuite/v10-15-2015/time_bill.md | 0
.../netsuite/v10-15-2015/time_entry.md | 0
.../netsuite/v10-15-2015/time_sheet.md | 0
.../netsuite/v10-15-2015/transaction.md | 0
.../netsuite/v10-15-2015/units_type.md | 0
.../netsuite/v10-15-2015/vendor_category.md | 0
.../netsuite/v10-15-2015/win_loss_reason.md | 0
.../netsuite/v2/Account.md | 0
.../netsuite/v2/AccountingPeriod.md | 0
.../netsuite/v2/Address.md | 0
.../netsuite/v2/BillingAccount.md | 0
.../netsuite/v2/BillingSchedule.md | 0
.../_integration-schemas}/netsuite/v2/Bin.md | 0
.../_integration-schemas}/netsuite/v2/Bom.md | 0
.../netsuite/v2/BomRevision.md | 0
.../netsuite/v2/Budget.md | 0
.../netsuite/v2/CalendarEvent.md | 0
.../netsuite/v2/Campaign.md | 0
.../netsuite/v2/Charge.md | 0
.../netsuite/v2/Classification.md | 0
.../netsuite/v2/ConsolidatedExchangeRate.md | 0
.../netsuite/v2/Contact.md | 0
.../netsuite/v2/ContactCategory.md | 0
.../netsuite/v2/ContactRole.md | 0
.../netsuite/v2/CostCategory.md | 0
.../netsuite/v2/CouponCode.md | 0
.../netsuite/v2/CurrencyRate.md | 0
.../netsuite/v2/CustomList.md | 0
.../netsuite/v2/Customer.md | 0
.../netsuite/v2/CustomerCategory.md | 0
.../netsuite/v2/CustomerMessage.md | 0
.../netsuite/v2/CustomerStatus.md | 0
.../v2/CustomerSubsidiaryRelationship.md | 0
.../netsuite/v2/Deleted.md | 0
.../netsuite/v2/Department.md | 0
.../netsuite/v2/Employee.md | 0
.../netsuite/v2/EntityGroup.md | 0
.../netsuite/v2/ExpenseCategory.md | 0
.../netsuite/v2/FairValuePrice.md | 0
.../_integration-schemas}/netsuite/v2/File.md | 0
.../netsuite/v2/Folder.md | 0
.../netsuite/v2/GiftCertificate.md | 0
.../netsuite/v2/GlobalAccountMapping.md | 0
.../netsuite/v2/HcmJob.md | 0
.../netsuite/v2/InboundShipment.md | 0
.../netsuite/v2/InventoryNumber.md | 0
.../netsuite/v2/Issue.md | 0
.../_integration-schemas}/netsuite/v2/Item.md | 0
.../netsuite/v2/ItemAccountMapping.md | 0
.../netsuite/v2/ItemDemandPlan.md | 0
.../netsuite/v2/ItemRevision.md | 0
.../netsuite/v2/ItemSupplyPlan.md | 0
.../_integration-schemas}/netsuite/v2/Job.md | 0
.../netsuite/v2/JobStatus.md | 0
.../netsuite/v2/JobType.md | 0
.../netsuite/v2/Location.md | 0
.../netsuite/v2/ManufacturingCostTemplate.md | 0
.../netsuite/v2/ManufacturingOperationTask.md | 0
.../netsuite/v2/ManufacturingRouting.md | 0
.../netsuite/v2/MerchandiseHierarchyNode.md | 0
.../netsuite/v2/Message.md | 0
.../netsuite/v2/Nexus.md | 0
.../_integration-schemas}/netsuite/v2/Note.md | 0
.../netsuite/v2/NoteType.md | 0
.../netsuite/v2/Opportunity.md | 0
.../netsuite/v2/OtherNameCategory.md | 0
.../netsuite/v2/Partner.md | 0
.../netsuite/v2/PartnerCategory.md | 0
.../netsuite/v2/Paycheck.md | 0
.../netsuite/v2/PaymentMethod.md | 0
.../netsuite/v2/PayrollItem.md | 0
.../netsuite/v2/PhoneCall.md | 0
.../netsuite/v2/PriceLevel.md | 0
.../netsuite/v2/PricingGroup.md | 0
.../netsuite/v2/ProjectTask.md | 0
.../netsuite/v2/PromotionCode.md | 0
.../netsuite/v2/ResourceAllocation.md | 0
.../netsuite/v2/RevRecSchedule.md | 0
.../netsuite/v2/RevRecTemplate.md | 0
.../netsuite/v2/SalesRole.md | 0
.../netsuite/v2/SalesTaxItem.md | 0
.../netsuite/v2/SiteCategory.md | 0
.../netsuite/v2/Solution.md | 0
.../netsuite/v2/Subsidiary.md | 0
.../netsuite/v2/SupportCase.md | 0
.../_integration-schemas}/netsuite/v2/Task.md | 0
.../netsuite/v2/TaxGroup.md | 0
.../netsuite/v2/TaxType.md | 0
.../_integration-schemas}/netsuite/v2/Term.md | 0
.../netsuite/v2/TimeBill.md | 0
.../netsuite/v2/TimeEntry.md | 0
.../netsuite/v2/TimeSheet.md | 0
.../netsuite/v2/Topic.md | 0
.../netsuite/v2/Transaction.md | 0
.../netsuite/v2/UnitsType.md | 0
.../netsuite/v2/Usage.md | 0
.../netsuite/v2/Vendor.md | 0
.../netsuite/v2/VendorCategory.md | 0
.../v2/VendorSubsidiaryRelationship.md | 0
.../netsuite/v2/WinLossReason.md | 0
.../onfleet/v1/administrators.md | 0
.../onfleet/v1/foreign-keys.md | 0
.../_integration-schemas}/onfleet/v1/hubs.md | 0
.../onfleet/v1/organizations.md | 0
.../_integration-schemas}/onfleet/v1/tasks.md | 0
.../_integration-schemas}/onfleet/v1/teams.md | 0
.../onfleet/v1/workers.md | 0
.../outbrain/campaign_performance.md | 0
.../outbrain/campaigns.md | 0
.../outbrain/link_performance.md | 2 +-
.../_integration-schemas}/outbrain/links.md | 2 +-
.../outreach/v1/accounts.md | 0
.../outreach/v1/call_dispositions.md | 0
.../outreach/v1/call_purposes.md | 0
.../outreach/v1/calls.md | 0
.../outreach/v1/content_categories.md | 0
.../outreach/v1/duties.md | 0
.../outreach/v1/events.md | 0
.../outreach/v1/foreign-keys.md | 0
.../outreach/v1/mailboxes.md | 0
.../outreach/v1/mailings.md | 0
.../outreach/v1/opportunities.md | 0
.../outreach/v1/personas.md | 0
.../outreach/v1/prospects.md | 0
.../outreach/v1/sequence_states.md | 0
.../outreach/v1/sequence_steps.md | 0
.../outreach/v1/sequence_templates.md | 0
.../outreach/v1/sequences.md | 0
.../outreach/v1/stages.md | 0
.../outreach/v1/tasks.md | 0
.../outreach/v1/teams.md | 0
.../outreach/v1/users.md | 0
.../pardot/v1/campaigns.md | 0
.../pardot/v1/email_clicks.md | 0
.../pardot/v1/foreign-keys.md | 0
.../pardot/v1/list_memberships.md | 0
.../_integration-schemas}/pardot/v1/lists.md | 0
.../pardot/v1/opportunities.md | 0
.../pardot/v1/prospect_accounts.md | 0
.../pardot/v1/prospects.md | 0
.../_integration-schemas}/pardot/v1/users.md | 0
.../pardot/v1/visitor_activities.md | 0
.../pardot/v1/visitors.md | 0
.../_integration-schemas}/pardot/v1/visits.md | 0
.../pendo/v1/accounts.md | 0
.../_integration-schemas}/pendo/v1/events.md | 0
.../pendo/v1/feature_events.md | 0
.../pendo/v1/features.md | 0
.../pendo/v1/foreign-keys.md | 0
.../pendo/v1/guide_events.md | 0
.../_integration-schemas}/pendo/v1/guides.md | 0
.../pendo/v1/metadata_accounts.md | 0
.../pendo/v1/metadata_visitors.md | 0
.../pendo/v1/page_events.md | 0
.../_integration-schemas}/pendo/v1/pages.md | 0
.../pendo/v1/poll_events.md | 0
.../pendo/v1/track_events.md | 0
.../pendo/v1/track_types.md | 0
.../pendo/v1/visitor_history.md | 0
.../pendo/v1/visitors.md | 0
.../pepperjam/v1/creative_advanced.md | 0
.../pepperjam/v1/creative_banner.md | 0
.../pepperjam/v1/creative_coupon.md | 0
.../pepperjam/v1/creative_generic.md | 0
.../pepperjam/v1/creative_performance.md | 0
.../v1/creative_performance_by_publisher.md | 0
.../pepperjam/v1/creative_product.md | 0
.../pepperjam/v1/creative_promotion.md | 0
.../pepperjam/v1/creative_text.md | 0
.../pepperjam/v1/foreign-keys.md | 0
.../pepperjam/v1/group.md | 0
.../pepperjam/v1/group_member.md | 0
.../pepperjam/v1/itemized_list.md | 0
.../pepperjam/v1/itemized_list_product.md | 0
.../pepperjam/v1/publisher.md | 0
.../pepperjam/v1/publisher_performance.md | 0
.../pepperjam/v1/term.md | 0
.../pepperjam/v1/transaction_details.md | 0
.../pepperjam/v1/transaction_history.md | 0
.../pipedrive/v1/activities.md | 0
.../pipedrive/v1/activity_types.md | 0
.../pipedrive/v1/currency.md | 0
.../pipedrive/v1/deal_fields.md | 0
.../pipedrive/v1/deal_products.md | 0
.../pipedrive/v1/dealflow.md | 0
.../pipedrive/v1/deals.md | 0
.../pipedrive/v1/files.md | 0
.../pipedrive/v1/filters.md | 0
.../pipedrive/v1/foreign-keys.md | 0
.../pipedrive/v1/notes.md | 0
.../pipedrive/v1/organizations.md | 0
.../pipedrive/v1/persons.md | 0
.../pipedrive/v1/pipelines.md | 0
.../pipedrive/v1/products.md | 0
.../pipedrive/v1/stages.md | 0
.../pipedrive/v1/users.md | 0
.../quickbooks/v1/accounts.md | 0
.../quickbooks/v1/bill_payments.md | 0
.../quickbooks/v1/bills.md | 0
.../quickbooks/v1/budgets.md | 0
.../quickbooks/v1/classes.md | 0
.../quickbooks/v1/credit_memos.md | 0
.../quickbooks/v1/customers.md | 0
.../quickbooks/v1/departments.md | 0
.../quickbooks/v1/deposits.md | 0
.../quickbooks/v1/employees.md | 0
.../quickbooks/v1/estimates.md | 0
.../quickbooks/v1/foreign-keys.md | 0
.../quickbooks/v1/invoices.md | 0
.../quickbooks/v1/items.md | 0
.../quickbooks/v1/journal_entries.md | 0
.../quickbooks/v1/payment_methods.md | 0
.../quickbooks/v1/payments.md | 0
.../quickbooks/v1/profit_loss_report.md | 0
.../quickbooks/v1/purchase_orders.md | 0
.../quickbooks/v1/purchases.md | 0
.../quickbooks/v1/refund_receipts.md | 2 +-
.../quickbooks/v1/sales_receipts.md | 0
.../quickbooks/v1/tax_agencies.md | 0
.../quickbooks/v1/tax_codes.md | 0
.../quickbooks/v1/tax_rates.md | 0
.../quickbooks/v1/terms.md | 0
.../quickbooks/v1/time_activities.md | 0
.../quickbooks/v1/transfers.md | 0
.../quickbooks/v1/vendor_credits.md | 0
.../quickbooks/v1/vendors.md | 0
.../quickbooks/v2/accounts.md | 0
.../quickbooks/v2/bill_payments.md | 0
.../quickbooks/v2/bills.md | 0
.../quickbooks/v2/budgets.md | 0
.../quickbooks/v2/classes.md | 0
.../quickbooks/v2/credit_memos.md | 0
.../quickbooks/v2/customer_types.md | 0
.../quickbooks/v2/customers.md | 0
.../quickbooks/v2/deleted_objects.md | 0
.../quickbooks/v2/departments.md | 0
.../quickbooks/v2/deposits.md | 0
.../quickbooks/v2/employees.md | 0
.../quickbooks/v2/estimates.md | 0
.../quickbooks/v2/foreign-keys.md | 0
.../quickbooks/v2/invoices.md | 0
.../quickbooks/v2/items.md | 0
.../quickbooks/v2/journal_entries.md | 0
.../quickbooks/v2/payment_methods.md | 0
.../quickbooks/v2/payments.md | 0
.../quickbooks/v2/profit_loss_report.md | 0
.../quickbooks/v2/purchase_orders.md | 0
.../quickbooks/v2/purchases.md | 0
.../quickbooks/v2/refund_receipts.md | 0
.../quickbooks/v2/sales_receipts.md | 0
.../quickbooks/v2/tax_agencies.md | 0
.../quickbooks/v2/tax_codes.md | 0
.../quickbooks/v2/tax_rates.md | 0
.../quickbooks/v2/terms.md | 0
.../quickbooks/v2/time_activities.md | 0
.../quickbooks/v2/transfers.md | 0
.../quickbooks/v2/vendor_credits.md | 0
.../quickbooks/v2/vendors.md | 0
.../recharge/v1/addresses.md | 0
.../recharge/v1/charges.md | 0
.../recharge/v1/collections.md | 0
.../recharge/v1/customers.md | 0
.../recharge/v1/discounts.md | 0
.../recharge/v1/foreign-keys.md | 0
.../recharge/v1/metafields_customer.md | 0
.../recharge/v1/metafields_store.md | 0
.../recharge/v1/metafields_subscription.md | 0
.../recharge/v1/onetimes.md | 0
.../recharge/v1/orders.md | 0
.../recharge/v1/products.md | 0
.../_integration-schemas}/recharge/v1/shop.md | 0
.../recharge/v1/subscriptions.md | 0
.../recharge/v2/addresses.md | 0
.../recharge/v2/charges.md | 0
.../recharge/v2/collections.md | 0
.../recharge/v2/customers.md | 0
.../recharge/v2/discounts.md | 0
.../recharge/v2/foreign-keys.md | 0
.../recharge/v2/metafields_customer.md | 0
.../recharge/v2/metafields_store.md | 0
.../recharge/v2/metafields_subscription.md | 0
.../recharge/v2/onetimes.md | 0
.../recharge/v2/orders.md | 0
.../recharge/v2/products.md | 0
.../recharge/v2/store.md | 0
.../recharge/v2/subscriptions.md | 0
.../recurly/v1/accounts.md | 0
.../recurly/v1/adjustments.md | 0
.../recurly/v1/billing_info.md | 0
.../recurly/v1/coupon_redemptions.md | 0
.../recurly/v1/coupons.md | 0
.../recurly/v1/foreign-keys.md | 4 +-
.../recurly/v1/invoices.md | 12 +-
.../_integration-schemas}/recurly/v1/plans.md | 0
.../recurly/v1/plans_add_ons.md | 0
.../recurly/v1/subscriptions.md | 0
.../recurly/v1/transactions.md | 0
.../referral-saasquatch/foreign-keys.md | 0
.../referral-saasquatch/referrals.md | 0
.../referral-saasquatch/reward_balance.md | 0
.../referral-saasquatch/users.md | 0
.../revinate/v1/foreign-keys.md | 0
.../revinate/v1/hotel_reviews_snapshot.md | 0
.../v1/hotel_reviews_snapshot_by_site.md | 0
.../v1/hotel_reviews_snapshot_by_time.md | 0
.../revinate/v1/hotels.md | 0
.../revinate/v1/reviews.md | 2 +-
.../ringcentral/v1/call_log.md | 0
.../ringcentral/v1/company_call_log.md | 0
.../ringcentral/v1/contacts.md | 0
.../ringcentral/v1/foreign-keys.yml | 0
.../ringcentral/v1/messages.md | 0
.../saasoptics/v1/accounts.md | 0
.../saasoptics/v1/auto_renewal_profiles.md | 0
.../saasoptics/v1/billing_descriptions.md | 0
.../saasoptics/v1/billing_methods.md | 0
.../saasoptics/v1/contracts.md | 0
.../saasoptics/v1/country_codes.md | 0
.../saasoptics/v1/currency_codes.md | 0
.../saasoptics/v1/customers.md | 0
.../saasoptics/v1/deleted_contracts.md | 0
.../saasoptics/v1/deleted_invoices.md | 0
.../saasoptics/v1/deleted_revenue_entries.md | 0
.../saasoptics/v1/deleted_transactions.md | 0
.../saasoptics/v1/foreign-keys.yml | 0
.../saasoptics/v1/invoices.md | 0
.../saasoptics/v1/items.md | 0
.../saasoptics/v1/payment_terms.md | 0
.../saasoptics/v1/registers.md | 0
.../saasoptics/v1/revenue_entries.md | 0
.../v1/revenue_recognition_methods.md | 0
.../saasoptics/v1/sales_orders.md | 0
.../saasoptics/v1/transactions.md | 0
.../sailthru/blast_query.md | 0
.../sailthru/v1/ad_targeter_plans.md | 0
.../sailthru/v1/blast_query.md | 0
.../sailthru/v1/blast_repeats.md | 0
.../sailthru/v1/blast_save_list.md | 0
.../sailthru/v1/blasts.md | 0
.../sailthru/v1/foreign-keys.md | 2 +-
.../sailthru/v1/lists.md | 0
.../sailthru/v1/purchase_log.md | 0
.../sailthru/v1/users.md | 0
.../salesforce-marketing-cloud/v1/campaign.md | 0
.../v1/content_area.md | 0
.../v1/data_extension.md | 0
.../salesforce-marketing-cloud/v1/email.md | 0
.../salesforce-marketing-cloud/v1/event.md | 2 +-
.../salesforce-marketing-cloud/v1/folder.md | 0
.../v1/foreign-keys.md | 0
.../salesforce-marketing-cloud/v1/list.md | 0
.../v1/list_send.md | 0
.../v1/list_subscriber.md | 0
.../salesforce-marketing-cloud/v1/send.md | 0
.../v1/subscriber.md | 0
.../salesforce/v1/account.md | 2 +-
.../salesforce/v1/contact.md | 2 +-
.../salesforce/v1/foreign-keys.md | 0
.../salesforce/v1/lead.md | 2 +-
.../salesforce/v1/opportunity.md | 2 +-
.../salesforce/v1/user.md | 2 +-
.../salesforce/v2/account.md | 0
.../salesforce/v2/contact.md | 0
.../salesforce/v2/foreign-keys.md | 0
.../salesforce/v2/lead.md | 0
.../salesforce/v2/opportunity.md | 0
.../salesforce/v2/user.md | 0
.../selligent/campaign.md | 2 +-
.../selligent/foreign-keys.md | 0
.../selligent/internal_datasource.md | 2 +-
.../_integration-schemas}/selligent/owner.md | 2 +-
.../selligent/program.md | 2 +-
.../_integration-schemas}/selligent/source.md | 2 +-
.../selligent/transactional_mailing.md | 2 +-
.../sendgrid-core/blocks.md | 0
.../sendgrid-core/bounces.md | 0
.../sendgrid-core/campaigns.md | 2 +-
.../sendgrid-core/contacts.md | 0
.../sendgrid-core/foreign-keys.md | 0
.../sendgrid-core/global_suppressions.md | 0
.../sendgrid-core/groups_all.md | 0
.../sendgrid-core/groups_members.md | 0
.../sendgrid-core/invalids.md | 2 +-
.../sendgrid-core/lists_all.md | 2 +-
.../sendgrid-core/lists_members.md | 2 +-
.../sendgrid-core/segments_all.md | 2 +-
.../sendgrid-core/segments_members.md | 2 +-
.../sendgrid-core/spam_reports.md | 2 +-
.../sendgrid-core/templates_all.md | 2 +-
.../shiphero/v1/foreign-keys.md | 0
.../shiphero/v1/orders.md | 0
.../shiphero/v1/products.md | 0
.../shiphero/v1/shipments.md | 0
.../shiphero/v1/vendors.md | 0
.../_integration-schemas}/shippo/addresses.md | 0
.../shippo/foreign-keys.md | 0
.../_integration-schemas}/shippo/parcels.md | 2 +-
.../_integration-schemas}/shippo/refunds.md | 0
.../_integration-schemas}/shippo/shipments.md | 0
.../shippo/transactions.md | 1 -
.../shopify/abandoned_checkouts.md | 0
.../_integration-schemas}/shopify/collects.md | 0
.../shopify/custom_collections.md | 0
.../shopify/customers.md | 0
.../_integration-schemas}/shopify/events.md | 0
.../shopify/foreign-keys.md | 0
.../shopify/inventory_items.md | 0
.../shopify/inventory_levels.md | 0
.../shopify/locations.md | 0
.../shopify/metafields.md | 0
.../shopify/order_refunds.md | 0
.../_integration-schemas}/shopify/orders.md | 0
.../_integration-schemas}/shopify/products.md | 0
.../shopify/transactions.md | 0
.../slack/v1/channel_members.md | 0
.../slack/v1/channels.md | 0
.../_integration-schemas}/slack/v1/files.md | 0
.../slack/v1/foreign-keys.md | 0
.../slack/v1/messages.md | 0
.../slack/v1/remote_files.md | 0
.../_integration-schemas}/slack/v1/teams.md | 0
.../_integration-schemas}/slack/v1/threads.md | 0
.../slack/v1/user_groups.md | 0
.../_integration-schemas}/slack/v1/users.md | 0
.../snapchat-ads/v1/ad_account_stats_daily.md | 0
.../v1/ad_account_stats_hourly.md | 0
.../snapchat-ads/v1/ad_accounts.md | 0
.../snapchat-ads/v1/ad_squad_stats_daily.md | 0
.../snapchat-ads/v1/ad_squad_stats_hourly.md | 0
.../snapchat-ads/v1/ad_squads.md | 1 -
.../snapchat-ads/v1/ad_stats_daily.md | 0
.../snapchat-ads/v1/ad_stats_hourly.md | 0
.../snapchat-ads/v1/ads.md | 2 -
.../snapchat-ads/v1/audience_segments.md | 0
.../snapchat-ads/v1/billing_centers.md | 0
.../snapchat-ads/v1/campaign_stats_daily.md | 0
.../snapchat-ads/v1/campaign_stats_hourly.md | 0
.../snapchat-ads/v1/campaigns.md | 2 -
.../snapchat-ads/v1/creatives.md | 10 -
.../snapchat-ads/v1/funding_sources.md | 0
.../snapchat-ads/v1/media.md | 0
.../snapchat-ads/v1/members.md | 0
.../snapchat-ads/v1/organizations.md | 0
.../snapchat-ads/v1/phone_numbers.md | 0
.../snapchat-ads/v1/pixel_domain_stats.md | 0
.../snapchat-ads/v1/pixels.md | 0
.../snapchat-ads/v1/product_catalogs.md | 0
.../snapchat-ads/v1/product_sets.md | 0
.../snapchat-ads/v1/roles.md | 0
.../v1/targeting_advanced_demographics.md | 0
.../snapchat-ads/v1/targeting_age_groups.md | 0
.../v1/targeting_android_versions.md | 0
.../snapchat-ads/v1/targeting_carriers.md | 0
.../v1/targeting_connection_types.md | 0
.../snapchat-ads/v1/targeting_countries.md | 0
.../snapchat-ads/v1/targeting_device_makes.md | 0
.../snapchat-ads/v1/targeting_genders.md | 0
.../v1/targeting_interests_dlxc.md | 0
.../v1/targeting_interests_dlxp.md | 0
.../v1/targeting_interests_dlxs.md | 0
.../v1/targeting_interests_nln.md | 0
.../v1/targeting_interests_plc.md | 0
.../v1/targeting_interests_scls.md | 0
.../snapchat-ads/v1/targeting_ios_versions.md | 0
.../snapchat-ads/v1/targeting_languages.md | 0
.../v1/targeting_location_categories.md | 0
.../snapchat-ads/v1/targeting_metros.md | 0
.../snapchat-ads/v1/targeting_os_types.md | 0
.../snapchat-ads/v1/targeting_postal_codes.md | 0
.../snapchat-ads/v1/targeting_regions.md | 0
.../square/v1/bank_accounts.md | 0
.../square/v1/cash_drawer_shifts.md | 0
.../square/v1/categories.md | 0
.../square/v1/customers.md | 0
.../square/v1/discounts.md | 0
.../square/v1/employees.md | 0
.../square/v1/foreign-keys.md | 0
.../square/v1/inventories.md | 0
.../_integration-schemas}/square/v1/items.md | 0
.../square/v1/locations.md | 0
.../square/v1/modifier_lists.md | 0
.../_integration-schemas}/square/v1/orders.md | 0
.../square/v1/payments.md | 0
.../square/v1/refunds.md | 0
.../_integration-schemas}/square/v1/roles.md | 0
.../square/v1/settlements.md | 0
.../_integration-schemas}/square/v1/shifts.md | 0
.../_integration-schemas}/square/v1/taxes.md | 0
.../square/v2/bank_accounts.md | 0
.../square/v2/cash_drawer_shifts.md | 0
.../square/v2/categories.md | 0
.../square/v2/customers.md | 0
.../square/v2/discounts.md | 0
.../square/v2/foreign-keys.md | 0
.../square/v2/inventories.md | 0
.../_integration-schemas}/square/v2/items.md | 0
.../square/v2/locations.md | 0
.../square/v2/modifier_lists.md | 0
.../_integration-schemas}/square/v2/orders.md | 0
.../square/v2/payments.md | 0
.../square/v2/payouts.md | 0
.../square/v2/refunds.md | 0
.../_integration-schemas}/square/v2/roles.md | 0
.../_integration-schemas}/square/v2/shifts.md | 0
.../_integration-schemas}/square/v2/taxes.md | 0
.../square/v2/team_members.md | 0
.../stripe/v1/balance_transactions.md | 0
.../stripe/v1/charges.md | 5 -
.../stripe/v1/coupons.md | 0
.../stripe/v1/customers.md | 92 +-
.../stripe/v1/disputes.md | 1 -
.../_integration-schemas}/stripe/v1/events.md | 0
.../stripe/v1/foreign-keys.md | 0
.../stripe/v1/invoice_items.md | 0
.../stripe/v1/invoice_line_items.md | 0
.../stripe/v1/invoices.md | 0
.../stripe/v1/payout_transactions.md | 0
.../stripe/v1/payouts.md | 1 -
.../_integration-schemas}/stripe/v1/plans.md | 0
.../stripe/v1/products.md | 0
.../stripe/v1/subscription_items.md | 0
.../stripe/v1/subscriptions.md | 0
.../stripe/v1/transfers.md | 0
.../stripe/v2/balance_transactions.md | 0
.../stripe/v2/charges.md | 14 -
.../stripe/v2/coupons.md | 1 -
.../stripe/v2/customers.md | 15 -
.../stripe/v2/disputes.md | 1 -
.../_integration-schemas}/stripe/v2/events.md | 1 -
.../stripe/v2/foreign-keys.md | 0
.../stripe/v2/invoice_items.md | 4 +-
.../stripe/v2/invoice_line_items.md | 0
.../stripe/v2/invoices.md | 4 -
.../stripe/v2/payment_intents.md | 40 -
.../stripe/v2/payout_transactions.md | 0
.../stripe/v2/payouts.md | 2 -
.../_integration-schemas}/stripe/v2/plans.md | 1 -
.../stripe/v2/products.md | 1 -
.../stripe/v2/subscription_items.md | 0
.../stripe/v2/subscriptions.md | 3 -
.../stripe/v2/transfers.md | 3 +-
.../stripe/v3/balance_transactions.md | 0
.../stripe/v3/charges.md | 15 -
.../stripe/v3/coupons.md | 1 -
.../stripe/v3/customers.md | 15 -
.../stripe/v3/disputes.md | 1 -
.../_integration-schemas}/stripe/v3/events.md | 1 -
.../stripe/v3/foreign-keys.md | 0
.../stripe/v3/invoice_items.md | 2 -
.../stripe/v3/invoice_line_items.md | 0
.../stripe/v3/invoices.md | 4 -
.../stripe/v3/payment_intents.md | 6 -
.../stripe/v3/payout_transactions.md | 0
.../stripe/v3/payouts.md | 2 -
.../_integration-schemas}/stripe/v3/plans.md | 1 -
.../stripe/v3/products.md | 1 -
.../stripe/v3/subscription_items.md | 0
.../stripe/v3/subscriptions.md | 3 -
.../stripe/v3/transfers.md | 1 -
.../surveymonkey/v1/foreign-keys.md | 0
.../surveymonkey/v1/responses.md | 3 -
.../surveymonkey/v1/simplified_responses.md | 3 -
.../surveymonkey/v1/survey_details.md | 1 -
.../surveymonkey/v2/foreign-keys.md | 0
.../surveymonkey/v2/responses.md | 3 -
.../surveymonkey/v2/simplified_responses.md | 3 -
.../surveymonkey/v2/survey_details.md | 1 -
.../surveymonkey/v2/surveys.md | 0
.../_integration-schemas}/taboola/campaign.md | 0
.../taboola/campaign_performance.md | 4 +-
.../taboola/foreign-keys.md | 0
.../tiktok-ads/ad_insights.md | 0
.../ad_insights_by_age_and_gender.md | 0
.../tiktok-ads/ad_insights_by_country.md | 0
.../tiktok-ads/ad_insights_by_platform.md | 0
.../tiktok-ads/adgroups.md | 0
.../_integration-schemas}/tiktok-ads/ads.md | 0
.../tiktok-ads/advertisers.md | 0
.../tiktok-ads/campaigns.md | 0
.../tiktok-ads/v1/ad_insights.md | 0
.../v1/ad_insights_by_age_and_gender.md | 0
.../tiktok-ads/v1/ad_insights_by_country.md | 0
.../tiktok-ads/v1/ad_insights_by_platform.md | 0
.../tiktok-ads/v1/adgroups.md | 0
.../tiktok-ads/v1/ads.md | 0
.../tiktok-ads/v1/advertisers.md | 0
.../v1/campaign_insights_by_province.md | 0
.../tiktok-ads/v1/campaigns.md | 0
.../_integration-schemas}/toggl/v1/clients.md | 0
.../toggl/v1/foreign-keys.md | 0
.../_integration-schemas}/toggl/v1/groups.md | 0
.../toggl/v1/projects.md | 0
.../_integration-schemas}/toggl/v1/tags.md | 0
.../_integration-schemas}/toggl/v1/tasks.md | 0
.../toggl/v1/time_entries.md | 0
.../_integration-schemas}/toggl/v1/users.md | 0
.../toggl/v1/workspace_users.md | 0
.../toggl/v1/workspaces.md | 0
.../trello/v1/actions.md | 0
.../_integration-schemas}/trello/v1/boards.md | 0
.../_integration-schemas}/trello/v1/cards.md | 0
.../trello/v1/checklists.md | 0
.../trello/v1/foreign-keys.md | 0
.../_integration-schemas}/trello/v1/lists.md | 0
.../_integration-schemas}/trello/v1/users.md | 0
.../twilio/v1/account_balance.md | 0
.../twilio/v1/accounts.md | 0
.../twilio/v1/addresses.md | 0
.../_integration-schemas}/twilio/v1/alerts.md | 0
.../twilio/v1/applications.md | 0
.../v1/available_phone_number_countries.md | 0
.../v1/available_phone_numbers_local.md | 0
.../v1/available_phone_numbers_mobile.md | 0
.../v1/available_phone_numbers_toll_free.md | 0
.../_integration-schemas}/twilio/v1/calls.md | 0
.../twilio/v1/conference_participants.md | 0
.../twilio/v1/conferences.md | 0
.../twilio/v1/dependent_phone_numbers.md | 0
.../twilio/v1/incoming_phone_numbers.md | 0
.../_integration-schemas}/twilio/v1/keys.md | 0
.../twilio/v1/message_media.md | 0
.../twilio/v1/messages.md | 0
.../twilio/v1/outgoing_caller_ids.md | 0
.../_integration-schemas}/twilio/v1/queues.md | 0
.../twilio/v1/recordings.md | 0
.../twilio/v1/transcriptions.md | 0
.../twilio/v1/usage_records.md | 0
.../twilio/v1/usage_triggers.md | 0
.../twitter-ads/v1/account_media.md | 0
.../twitter-ads/v1/accounts.md | 0
.../v1/advertiser_business_categories.md | 0
.../twitter-ads/v1/bidding_rules.md | 0
.../twitter-ads/v1/campaigns.md | 0
.../v1/cards_image_app_download.md | 0
.../v1/cards_image_conversation.md | 0
.../v1/cards_image_direct_message.md | 0
.../twitter-ads/v1/cards_poll.md | 0
.../v1/cards_video_app_download.md | 0
.../v1/cards_video_conversation.md | 0
.../v1/cards_video_direct_message.md | 0
.../twitter-ads/v1/cards_video_website.md | 0
.../twitter-ads/v1/cards_website.md | 0
.../twitter-ads/v1/content_categories.md | 0
.../twitter-ads/v1/example-custom-report.md | 0
.../twitter-ads/v1/foreign-keys.md | 0
.../twitter-ads/v1/funding_instruments.md | 0
.../twitter-ads/v1/iab_categories.md | 0
.../twitter-ads/v1/line_item_apps.md | 0
.../twitter-ads/v1/line_items.md | 0
.../twitter-ads/v1/media_creatives.md | 0
.../twitter-ads/v1/preroll_call_to_actions.md | 0
.../twitter-ads/v1/promotable_users.md | 0
.../twitter-ads/v1/promoted_accounts.md | 0
.../twitter-ads/v1/promoted_tweets.md | 0
.../v1/scheduled_promoted_tweets.md | 0
.../twitter-ads/v1/tailored_audiences.md | 0
.../v1/targeting_app_store_categories.md | 0
.../twitter-ads/v1/targeting_conversations.md | 0
.../twitter-ads/v1/targeting_criteria.md | 0
.../twitter-ads/v1/targeting_devices.md | 0
.../twitter-ads/v1/targeting_interests.md | 0
.../twitter-ads/v1/targeting_languages.md | 0
.../twitter-ads/v1/targeting_locations.md | 0
.../v1/targeting_network_operators.md | 0
.../v1/targeting_platform_versions.md | 0
.../twitter-ads/v1/targeting_platforms.md | 0
.../twitter-ads/v1/targeting_tv_markets.md | 0
.../twitter-ads/v1/targeting_tv_shows.md | 0
.../twitter-ads/v1/tweets.md | 1 -
.../typeform/v1/answers.md | 0
.../typeform/v1/foreign-keys.md | 0
.../typeform/v1/forms.md | 0
.../typeform/v1/landings.md | 0
.../typeform/v1/questions.md | 0
.../typeform/v2/answers.md | 0
.../typeform/v2/foreign-keys.md | 0
.../typeform/v2/forms.md | 0
.../typeform/v2/questions.md | 0
.../typeform/v2/submitted_landings.md | 0
.../typeform/v2/unsubmitted_landings.md | 0
.../ujet/v1/agent_activity_logs.md | 0
.../_integration-schemas}/ujet/v1/agents.md | 0
.../_integration-schemas}/ujet/v1/calls.md | 0
.../_integration-schemas}/ujet/v1/chats.md | 2 +-
.../ujet/v1/foreign-keys.md | 0
.../ujet/v1/menu_tree.md | 0
.../_integration-schemas}/ujet/v1/menus.md | 0
.../ujet/v1/team_tree.md | 0
.../_integration-schemas}/ujet/v1/teams.md | 0
.../ujet/v1/user_statuses.md | 0
.../urban-airship/channels.md | 0
.../urban-airship/foreign-keys.md | 0
.../urban-airship/lists.md | 0
.../urban-airship/named_users.md | 0
.../urban-airship/segments.md | 2 +-
.../uservoice/v1/categories.md | 0
.../uservoice/v1/comments.md | 0
.../uservoice/v1/external_accounts.md | 0
.../uservoice/v1/external_users.md | 0
.../uservoice/v1/feature_statuses.md | 0
.../uservoice/v1/features.md | 0
.../uservoice/v1/foreign-keys.md | 0
.../uservoice/v1/forums.md | 0
.../uservoice/v1/labels.md | 0
.../uservoice/v1/nps_ratings.md | 0
.../uservoice/v1/product_areas.md | 0
.../uservoice/v1/requests.md | 0
.../uservoice/v1/segmented_values.md | 0
.../uservoice/v1/segments.md | 0
.../uservoice/v1/status_updates.md | 0
.../uservoice/v1/statuses.md | 0
.../uservoice/v1/suggestions.md | 0
.../uservoice/v1/supporters.md | 0
.../uservoice/v1/teams.md | 0
.../uservoice/v1/users.md | 0
.../_integration-schemas}/wootric/declines.md | 0
.../wootric/end_users.md | 2 +-
.../wootric/foreign-keys.md | 0
.../wootric/responses.md | 0
.../_integration-schemas}/xero/accounts.md | 0
.../xero/bank_transactions.md | 6 -
.../xero/bank_transfers.md | 5 -
.../xero/branding_themes.md | 0
.../xero/contact_groups.md | 0
.../_integration-schemas}/xero/contacts.md | 6 -
.../xero/credit_notes.md | 9 -
.../_integration-schemas}/xero/currencies.md | 0
.../_integration-schemas}/xero/employees.md | 0
.../xero/expense_claims.md | 9 -
.../xero/foreign-keys.md | 0
.../_integration-schemas}/xero/invoices.md | 18 -
.../_integration-schemas}/xero/items.md | 0
.../_integration-schemas}/xero/journals.md | 3 -
.../xero/linked_transactions.md | 0
.../xero/manual_journals.md | 3 -
.../xero/organisations.md | 0
.../xero/overpayments.md | 9 -
.../_integration-schemas}/xero/payments.md | 0
.../_integration-schemas}/xero/prepayments.md | 6 -
.../xero/purchase_orders.md | 3 -
.../_integration-schemas}/xero/quotes.md | 9 -
.../_integration-schemas}/xero/receipts.md | 9 -
.../xero/repeating_invoices.md | 3 -
.../xero/shared/addresses.md | 0
.../xero/shared/allocations.md | 0
.../xero/shared/attachments.md | 3 +-
.../xero/shared/line_items.md | 0
.../xero/shared/nested_invoice.md | 0
.../xero/shared/payment_terms.md | 0
.../xero/shared/phones.md | 0
.../xero/shared/tracking_categories.md | 0
.../xero/shared/validation_errors.md | 0
.../_integration-schemas}/xero/tax_rates.md | 0
.../xero/tracking_categories.md | 0
.../_integration-schemas}/xero/users.md | 0
.../_integration-schemas}/yotpo/v1/emails.md | 0
.../yotpo/v1/foreign-keys.md | 0
.../yotpo/v1/product_reviews.md | 0
.../yotpo/v1/products.md | 0
.../_integration-schemas}/yotpo/v1/reviews.md | 0
.../yotpo/v1/unsubscribers.md | 0
.../yotpo/v2/collections.md | 0
.../_integration-schemas}/yotpo/v2/emails.md | 0
.../yotpo/v2/foreign-keys.md | 0
.../yotpo/v2/order_fulfillments.md | 0
.../_integration-schemas}/yotpo/v2/orders.md | 0
.../yotpo/v2/product_reviews.md | 0
.../yotpo/v2/product_variants.md | 0
.../yotpo/v2/products.md | 0
.../_integration-schemas}/yotpo/v2/reviews.md | 0
.../yotpo/v2/unsubscribers.md | 0
.../zendesk-chat/v1/account.md | 0
.../zendesk-chat/v1/agents.md | 0
.../zendesk-chat/v1/bans.md | 0
.../zendesk-chat/v1/chats.md | 0
.../zendesk-chat/v1/departments.md | 0
.../zendesk-chat/v1/foreign-keys.md | 0
.../zendesk-chat/v1/goals.md | 0
.../zendesk-chat/v1/shortcuts.md | 0
.../zendesk-chat/v1/triggers.md | 0
.../zendesk/v1/foreign-keys.md | 0
.../zendesk/v1/group_memberships.md | 0
.../zendesk/v1/groups.md | 0
.../zendesk/v1/macros.md | 0
.../zendesk/v1/organizations.md | 0
.../zendesk/v1/satisfaction_ratings.md | 0
.../zendesk/v1/sla_policies.md | 0
.../_integration-schemas}/zendesk/v1/tags.md | 0
.../zendesk/v1/ticket_audits.md | 17 -
.../zendesk/v1/ticket_comments.md | 0
.../zendesk/v1/ticket_fields.md | 0
.../zendesk/v1/ticket_forms.md | 0
.../zendesk/v1/ticket_metrics.md | 1 -
.../zendesk/v1/tickets.md | 0
.../_integration-schemas}/zendesk/v1/users.md | 0
.../zendesk/v2/foreign-keys.md | 0
.../zendesk/v2/group_memberships.md | 0
.../zendesk/v2/groups.md | 0
.../zendesk/v2/macros.md | 0
.../zendesk/v2/organizations.md | 0
.../zendesk/v2/satisfaction_ratings.md | 0
.../zendesk/v2/sla_policies.md | 0
.../_integration-schemas}/zendesk/v2/tags.md | 0
.../zendesk/v2/talk_phone_numbers.md | 2 -
.../zendesk/v2/ticket_audits.md | 1 -
.../zendesk/v2/ticket_comments.md | 0
.../zendesk/v2/ticket_fields.md | 0
.../zendesk/v2/ticket_forms.md | 0
.../zendesk/v2/ticket_metric_events.md | 0
.../zendesk/v2/ticket_metrics.md | 1 -
.../zendesk/v2/tickets.md | 0
.../_integration-schemas}/zendesk/v2/users.md | 0
.../zoom/v1/foreign-keys.md | 2 +-
.../zoom/v1/meeting_files.md | 0
.../zoom/v1/meeting_poll_results.md | 0
.../zoom/v1/meeting_polls.md | 0
.../zoom/v1/meeting_questions.md | 0
.../zoom/v1/meeting_registrants.md | 0
.../_integration-schemas}/zoom/v1/meetings.md | 0
.../zoom/v1/report_meeting_participants.md | 0
.../zoom/v1/report_meetings.md | 0
.../zoom/v1/report_webinar_participants.md | 0
.../zoom/v1/report_webinars.md | 0
.../_integration-schemas}/zoom/v1/users.md | 0
.../zoom/v1/webinar_absentees.md | 0
.../zoom/v1/webinar_files.md | 0
.../zoom/v1/webinar_panelists.md | 0
.../zoom/v1/webinar_poll_results.md | 0
.../zoom/v1/webinar_polls.md | 0
.../zoom/v1/webinar_qna_results.md | 0
.../zoom/v1/webinar_questions.md | 0
.../zoom/v1/webinar_registrants.md | 0
.../zoom/v1/webinar_tracking_sources.md | 0
.../_integration-schemas}/zoom/v1/webinars.md | 0
.../zoom/v2/foreign-keys.md | 0
.../zoom/v2/meeting_poll_results.md | 0
.../zoom/v2/meeting_polls.md | 0
.../zoom/v2/meeting_questions.md | 0
.../zoom/v2/meeting_registrants.md | 0
.../_integration-schemas}/zoom/v2/meetings.md | 0
.../zoom/v2/report_meeting_participants.md | 0
.../zoom/v2/report_meetings.md | 0
.../zoom/v2/report_webinar_participants.md | 0
.../zoom/v2/report_webinars.md | 0
.../_integration-schemas}/zoom/v2/users.md | 0
.../zoom/v2/webinar_absentees.md | 0
.../zoom/v2/webinar_panelists.md | 0
.../zoom/v2/webinar_poll_results.md | 0
.../zoom/v2/webinar_polls.md | 0
.../zoom/v2/webinar_qna_results.md | 0
.../zoom/v2/webinar_questions.md | 0
.../zoom/v2/webinar_registrants.md | 0
.../zoom/v2/webinar_tracking_sources.md | 0
.../_integration-schemas}/zoom/v2/webinars.md | 0
.../_integration-schemas}/zuora/account.md | 6 +-
.../zuora/accounting_code.md | 6 +-
.../zuora/accounting_period.md | 6 +-
.../_integration-schemas}/zuora/amendment.md | 6 +-
.../zuora/billing_run.md | 6 +-
.../zuora/communication_profile.md | 6 +-
.../_integration-schemas}/zuora/contact.md | 0
.../zuora/contact_snapshot.md | 0
.../zuora/credit_balance_adjustment.md | 6 +-
.../zuora/discount_applied_metrics.md | 6 +-
.../_integration-schemas}/zuora/export.md | 6 +-
.../zuora/foreign-keys.md | 9 -
.../_integration-schemas}/zuora/import.md | 6 +-
.../_integration-schemas}/zuora/invoice.md | 0
.../zuora/invoice_item.md | 0
.../zuora/invoice_item_adjustment.md | 0
.../zuora/journal_entry.md | 6 +-
.../zuora/journal_entry_item.md | 6 +-
.../zuora/journal_run.md | 6 +-
.../_integration-schemas}/zuora/payment.md | 0
.../zuora/payment_run.md | 6 +-
.../zuora/processed_usage.md | 6 +-
.../_integration-schemas}/zuora/product.md | 0
.../zuora/product_rate_plan.md | 0
.../zuora/product_rate_plan_charge.md | 0
.../zuora/product_rate_plan_charge_tier.md | 0
.../_integration-schemas}/zuora/rate_plan.md | 0
.../zuora/rate_plan_charge_tier.md | 0
.../_integration-schemas}/zuora/refund.md | 0
.../zuora/revenue_charge_summary_item.md | 6 +-
.../zuora/revenue_event_item.md | 6 +-
.../zuora/revenue_event_item_invoice_item.md | 6 +-
...enue_event_item_invoice_item_adjustment.md | 6 +-
.../zuora/revenue_schedule_item.md | 6 +-
.../revenue_schedule_item_invoice_item.md | 6 +-
...e_schedule_item_invoice_item_adjustment.md | 6 +-
.../zuora/subscription.md | 4 +-
scripts/json/README.md | 56 +
scripts/json/archive/convert-foreign-keys.py | 102 +
scripts/json/archive/convert_md_schemas.py | 94 +
scripts/json/archive/get_empty_folders.py | 23 +
.../archive/get_integration_data_from_md.py | 68 +
scripts/json/archive/get_other_table_data.py | 28 +
.../json/archive/get_table_data_from_md.py | 160 +
scripts/json/archive/replace_anyof.py | 48 +
scripts/json/check_json_issues.py | 73 +
scripts/json/check_table_data.py | 157 +
scripts/json/file_exceptions.json | 89 +
scripts/json/format_json.py | 355 +
scripts/json/generate_foreign_keys.py | 116 +
scripts/json/get_integration_data.py | 23 +
scripts/json/get_json_files.py | 260 +
scripts/json/get_table_data.py | 188 +
scripts/json/manual_json_import.py | 109 +
4973 files changed, 722098 insertions(+), 1155 deletions(-)
create mode 100644 _data/taps/integrations.yml
create mode 100644 _data/taps/schemas/3plcentral/v1/3plcentral-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/3plcentral/v1/3plcentral-v1-tables.yml
create mode 100644 _data/taps/schemas/3plcentral/v1/json/customers.json
create mode 100644 _data/taps/schemas/3plcentral/v1/json/inventory.json
create mode 100644 _data/taps/schemas/3plcentral/v1/json/locations.json
create mode 100644 _data/taps/schemas/3plcentral/v1/json/orders.json
create mode 100644 _data/taps/schemas/3plcentral/v1/json/sku_items.json
create mode 100644 _data/taps/schemas/3plcentral/v1/json/stock_details.json
create mode 100644 _data/taps/schemas/3plcentral/v1/json/stock_summaries.json
create mode 100644 _data/taps/schemas/activecampaign/v1/activecampaign-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/activecampaign/v1/activecampaign-v1-tables.yml
create mode 100644 _data/taps/schemas/activecampaign/v1/json/account_contacts.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/account_custom_field_values.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/account_custom_fields.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/accounts.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/activities.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/addresses.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/automation_blocks.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/automations.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/bounce_logs.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/brandings.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/calendars.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/campaign_links.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/campaign_lists.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/campaign_messages.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/configs.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_automations.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_conversions.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_custom_field_options.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_custom_field_rels.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_custom_field_values.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_custom_fields.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_data.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_deals.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_emails.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_lists.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contact_tags.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/contacts.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/conversion_triggers.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/conversions.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deal_activities.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deal_custom_field_values.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deal_custom_fields.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deal_group_users.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deal_groups.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deal_stages.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/deals.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/ecommerce_connections.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/ecommerce_customers.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/ecommerce_order_activities.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/ecommerce_order_products.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/ecommerce_orders.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/email_activities.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/forms.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/goals.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/groups.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/lists.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/messages.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/saved_responses.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/scores.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/segments.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/site_messages.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/sms.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/tags.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/task_types.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/tasks.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/templates.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/users.json
create mode 100644 _data/taps/schemas/activecampaign/v1/json/webhooks.json
create mode 100644 _data/taps/schemas/adroll/v1/adroll-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/adroll/v1/adroll-v1-tables.yml
create mode 100644 _data/taps/schemas/adroll/v1/json/ad_groups.json
create mode 100644 _data/taps/schemas/adroll/v1/json/ad_reports.json
create mode 100644 _data/taps/schemas/adroll/v1/json/ads.json
create mode 100644 _data/taps/schemas/adroll/v1/json/advertisables.json
create mode 100644 _data/taps/schemas/adroll/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/adroll/v1/json/segments.json
create mode 100644 _data/taps/schemas/amplitude/v1/amplitude-v1-tables.yml
create mode 100644 _data/taps/schemas/amplitude/v1/json/events.json
create mode 100644 _data/taps/schemas/amplitude/v1/json/merge_ids.json
create mode 100644 _data/taps/schemas/appsflyer/v1/appsflyer-v1-tables.yml
create mode 100644 _data/taps/schemas/appsflyer/v1/json/in_app_events.json
create mode 100644 _data/taps/schemas/appsflyer/v1/json/installations.json
create mode 100644 _data/taps/schemas/appsflyer/v1/json/organic_installs.json
create mode 100644 _data/taps/schemas/asana/v1/asana-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/asana/v1/asana-v1-tables.yml
create mode 100644 _data/taps/schemas/asana/v1/json/projects.json
create mode 100644 _data/taps/schemas/asana/v1/json/tags.json
create mode 100644 _data/taps/schemas/asana/v1/json/tasks.json
create mode 100644 _data/taps/schemas/asana/v1/json/users.json
create mode 100644 _data/taps/schemas/asana/v1/json/workspaces.json
create mode 100644 _data/taps/schemas/asana/v2/asana-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/asana/v2/asana-v2-tables.yml
create mode 100644 _data/taps/schemas/asana/v2/json/portfolios.json
create mode 100644 _data/taps/schemas/asana/v2/json/projects.json
create mode 100644 _data/taps/schemas/asana/v2/json/sections.json
create mode 100644 _data/taps/schemas/asana/v2/json/stories.json
create mode 100644 _data/taps/schemas/asana/v2/json/tags.json
create mode 100644 _data/taps/schemas/asana/v2/json/tasks.json
create mode 100644 _data/taps/schemas/asana/v2/json/teams.json
create mode 100644 _data/taps/schemas/asana/v2/json/users.json
create mode 100644 _data/taps/schemas/asana/v2/json/workspaces.json
create mode 100644 _data/taps/schemas/autopilot/v1/autopilot-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/autopilot/v1/autopilot-v1-tables.yml
create mode 100644 _data/taps/schemas/autopilot/v1/json/contacts.json
create mode 100644 _data/taps/schemas/autopilot/v1/json/lists.json
create mode 100644 _data/taps/schemas/autopilot/v1/json/lists_contacts.json
create mode 100644 _data/taps/schemas/autopilot/v1/json/smart_segments.json
create mode 100644 _data/taps/schemas/autopilot/v1/json/smart_segments_contacts.json
create mode 100644 _data/taps/schemas/bigcommerce/v1/bigcommerce-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/bigcommerce/v1/bigcommerce-v1-tables.yml
create mode 100644 _data/taps/schemas/bigcommerce/v1/json/coupons.json
create mode 100644 _data/taps/schemas/bigcommerce/v1/json/customers.json
create mode 100644 _data/taps/schemas/bigcommerce/v1/json/orders.json
create mode 100644 _data/taps/schemas/bigcommerce/v1/json/products.json
create mode 100644 _data/taps/schemas/bing-ads/v1/bing-ads-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/bing-ads/v1/bing-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/bing-ads/v1/json/accounts.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/ad_groups.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/ad_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/adgroup_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/ads.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/age_gender_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/campaign_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/geographic_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/goals_and_funnels_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/keyword_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v1/json/search_query_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/bing-ads-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/bing-ads/v2/bing-ads-v2-tables.yml
create mode 100644 _data/taps/schemas/bing-ads/v2/json/accounts.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/ad_group_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/ad_groups.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/ad_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/ads.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/age_gender_audience_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/audience_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/campaign_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/campaigns.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/geographic_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/goals_and_funnels_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/keyword_performance_report.json
create mode 100644 _data/taps/schemas/bing-ads/v2/json/search_query_performance_report.json
create mode 100644 _data/taps/schemas/braintree/v1/braintree-v1-tables.yml
create mode 100644 _data/taps/schemas/braintree/v1/json/transactions.json
create mode 100644 _data/taps/schemas/bronto/v1/bronto-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/bronto/v1/bronto-v1-tables.yml
create mode 100644 _data/taps/schemas/bronto/v1/json/contact.json
create mode 100644 _data/taps/schemas/bronto/v1/json/inbound_activity.json
create mode 100644 _data/taps/schemas/bronto/v1/json/list.json
create mode 100644 _data/taps/schemas/bronto/v1/json/outbound_activity.json
create mode 100644 _data/taps/schemas/bronto/v1/json/unsubscribe.json
create mode 100644 _data/taps/schemas/campaign-manager/v1/campaign-manager-v1-tables.yml
create mode 100644 _data/taps/schemas/campaign-manager/v1/json/sample_report_table.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/campaign-monitor-v1-tables.yml
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_bounces.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_clicks.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_email_client_usage.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_opens.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_recipients.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_spam_complaints.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_summary.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaign_unsubscribes.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/list_active_subscribers.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/list_bounced_subscribers.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/list_deleted_subscribers.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/list_details.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/list_unconfirmed_subscribers.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/list_unsubscribed_subscribers.json
create mode 100644 _data/taps/schemas/campaign-monitor/v1/json/lists.json
create mode 100644 _data/taps/schemas/chargebee/v1/chargebee-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/chargebee/v1/chargebee-v1-tables.yml
create mode 100644 _data/taps/schemas/chargebee/v1/json/addons.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/comments.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/coupons.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/credit_notes.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/customers.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/events.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/gifts.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/invoices.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/item_families.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/item_prices.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/items.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/orders.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/payment_sources.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/plans.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/promotional_credit.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/promotional_credits.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/quotes.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/subscriptions.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/transactions.json
create mode 100644 _data/taps/schemas/chargebee/v1/json/virtual_bank_accounts.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-foreign-keys.yml
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-tables.yml
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/addons.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/coupons.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/credit_notes.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/customers.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/events.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/invoices.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/payment_sources.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/plans.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/subscriptions.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/transactions.json
create mode 100644 _data/taps/schemas/chargebee/v20-05-2019/json/virtual_bank_accounts.json
create mode 100644 _data/taps/schemas/chargify/v1/chargify-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/chargify/v1/chargify-v1-tables.yml
create mode 100644 _data/taps/schemas/chargify/v1/json/components.json
create mode 100644 _data/taps/schemas/chargify/v1/json/coupons.json
create mode 100644 _data/taps/schemas/chargify/v1/json/customers.json
create mode 100644 _data/taps/schemas/chargify/v1/json/events.json
create mode 100644 _data/taps/schemas/chargify/v1/json/invoices.json
create mode 100644 _data/taps/schemas/chargify/v1/json/price_points.json
create mode 100644 _data/taps/schemas/chargify/v1/json/product_families.json
create mode 100644 _data/taps/schemas/chargify/v1/json/products.json
create mode 100644 _data/taps/schemas/chargify/v1/json/statements.json
create mode 100644 _data/taps/schemas/chargify/v1/json/subscriptions.json
create mode 100644 _data/taps/schemas/chargify/v1/json/transactions.json
create mode 100644 _data/taps/schemas/circle-ci/v1/circle-ci-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/circle-ci/v1/circle-ci-v1-tables.yml
create mode 100644 _data/taps/schemas/circle-ci/v1/json/jobs.json
create mode 100644 _data/taps/schemas/circle-ci/v1/json/pipelines.json
create mode 100644 _data/taps/schemas/circle-ci/v1/json/workflows.json
create mode 100644 _data/taps/schemas/closeio/v1/closeio-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/closeio/v1/closeio-v1-tables.yml
create mode 100644 _data/taps/schemas/closeio/v1/json/activities.json
create mode 100644 _data/taps/schemas/closeio/v1/json/custom_fields.json
create mode 100644 _data/taps/schemas/closeio/v1/json/event_log.json
create mode 100644 _data/taps/schemas/closeio/v1/json/leads.json
create mode 100644 _data/taps/schemas/closeio/v1/json/tasks.json
create mode 100644 _data/taps/schemas/closeio/v1/json/users.json
create mode 100644 _data/taps/schemas/clubspeed/v1/clubspeed-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/clubspeed/v1/clubspeed-v1-tables.yml
create mode 100644 _data/taps/schemas/clubspeed/v1/json/booking.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/booking_availability.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/check_details.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/checks.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/customers.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/discount_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_heat_details.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_heat_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_reservation_links.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_reservation_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_reservations.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_rounds.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_statuses.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_task_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_tasks.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/event_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/events.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/gift_card_history.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/heat_main.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/heat_main_details.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/heat_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/membership_types.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/memberships.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/payments.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/payments_voided.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/product_classes.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/products.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/reservations.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/sources.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/taxes.json
create mode 100644 _data/taps/schemas/clubspeed/v1/json/users.json
create mode 100644 _data/taps/schemas/codat/v1/codat-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/codat/v1/codat-v1-tables.yml
create mode 100644 _data/taps/schemas/codat/v1/json/accounts.json
create mode 100644 _data/taps/schemas/codat/v1/json/balance_sheets.json
create mode 100644 _data/taps/schemas/codat/v1/json/bank_account_transactions.json
create mode 100644 _data/taps/schemas/codat/v1/json/bank_accounts.json
create mode 100644 _data/taps/schemas/codat/v1/json/bank_statement_lines.json
create mode 100644 _data/taps/schemas/codat/v1/json/bank_statements.json
create mode 100644 _data/taps/schemas/codat/v1/json/bill_payments.json
create mode 100644 _data/taps/schemas/codat/v1/json/bills.json
create mode 100644 _data/taps/schemas/codat/v1/json/companies.json
create mode 100644 _data/taps/schemas/codat/v1/json/company_info.json
create mode 100644 _data/taps/schemas/codat/v1/json/connections.json
create mode 100644 _data/taps/schemas/codat/v1/json/credit_notes.json
create mode 100644 _data/taps/schemas/codat/v1/json/customers.json
create mode 100644 _data/taps/schemas/codat/v1/json/events.json
create mode 100644 _data/taps/schemas/codat/v1/json/invoices.json
create mode 100644 _data/taps/schemas/codat/v1/json/items.json
create mode 100644 _data/taps/schemas/codat/v1/json/journal_entries.json
create mode 100644 _data/taps/schemas/codat/v1/json/payments.json
create mode 100644 _data/taps/schemas/codat/v1/json/profit_and_loss.json
create mode 100644 _data/taps/schemas/codat/v1/json/suppliers.json
create mode 100644 _data/taps/schemas/codat/v1/json/tax_rates.json
create mode 100644 _data/taps/schemas/covid-19/v1/covid-19-v1-tables.yml
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_population_counties.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states_age_groups.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_states_acs_health_insurance.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_states_current.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_states_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_states_info.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/c19_trk_us_states_kff_hospital_beds.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/eu_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/eu_ecdc_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/italy_national_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/italy_provincial_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/italy_regional_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/jh_csse_daily.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/neherlab_case_counts.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/neherlab_country_codes.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/neherlab_icu_capacity.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/neherlab_population.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/nytimes_us_counties.json
create mode 100644 _data/taps/schemas/covid-19/v1/json/nytimes_us_states.json
create mode 100644 _data/taps/schemas/crossbeam/v1/crossbeam-v1-tables.yml
create mode 100644 _data/taps/schemas/crossbeam/v1/json/partner_populations.json
create mode 100644 _data/taps/schemas/crossbeam/v1/json/partners.json
create mode 100644 _data/taps/schemas/crossbeam/v1/json/populations.json
create mode 100644 _data/taps/schemas/crossbeam/v1/json/thread_timelines.json
create mode 100644 _data/taps/schemas/crossbeam/v1/json/threads.json
create mode 100644 _data/taps/schemas/darksky/v1/darksky-v1-tables.yml
create mode 100644 _data/taps/schemas/darksky/v1/json/forecast.json
create mode 100644 _data/taps/schemas/deputy/v1/deputy-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/deputy/v1/deputy-v1-tables.yml
create mode 100644 _data/taps/schemas/deputy/v1/json/addresses.json
create mode 100644 _data/taps/schemas/deputy/v1/json/categories.json
create mode 100644 _data/taps/schemas/deputy/v1/json/comments.json
create mode 100644 _data/taps/schemas/deputy/v1/json/companies.json
create mode 100644 _data/taps/schemas/deputy/v1/json/company_periods.json
create mode 100644 _data/taps/schemas/deputy/v1/json/contacts.json
create mode 100644 _data/taps/schemas/deputy/v1/json/countries.json
create mode 100644 _data/taps/schemas/deputy/v1/json/custom_app_data.json
create mode 100644 _data/taps/schemas/deputy/v1/json/custom_field_data.json
create mode 100644 _data/taps/schemas/deputy/v1/json/custom_fields.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_agreement_history.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_agreements.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_appraisal.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_availability.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_contract_leave_rules.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_contracts.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_history.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_paycycle_returns.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_paycycles.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_roles.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_salary_opunit_costing.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employee_workplaces.json
create mode 100644 _data/taps/schemas/deputy/v1/json/employment_conditions.json
create mode 100644 _data/taps/schemas/deputy/v1/json/events.json
create mode 100644 _data/taps/schemas/deputy/v1/json/geo.json
create mode 100644 _data/taps/schemas/deputy/v1/json/journal.json
create mode 100644 _data/taps/schemas/deputy/v1/json/kiosks.json
create mode 100644 _data/taps/schemas/deputy/v1/json/leave_accruals.json
create mode 100644 _data/taps/schemas/deputy/v1/json/leave_pay_lines.json
create mode 100644 _data/taps/schemas/deputy/v1/json/leave_rules.json
create mode 100644 _data/taps/schemas/deputy/v1/json/leaves.json
create mode 100644 _data/taps/schemas/deputy/v1/json/memos.json
create mode 100644 _data/taps/schemas/deputy/v1/json/operational_units.json
create mode 100644 _data/taps/schemas/deputy/v1/json/pay_periods.json
create mode 100644 _data/taps/schemas/deputy/v1/json/pay_rules.json
create mode 100644 _data/taps/schemas/deputy/v1/json/public_holidays.json
create mode 100644 _data/taps/schemas/deputy/v1/json/roster_opens.json
create mode 100644 _data/taps/schemas/deputy/v1/json/roster_swaps.json
create mode 100644 _data/taps/schemas/deputy/v1/json/rosters.json
create mode 100644 _data/taps/schemas/deputy/v1/json/sales_data.json
create mode 100644 _data/taps/schemas/deputy/v1/json/schedules.json
create mode 100644 _data/taps/schemas/deputy/v1/json/sms_logs.json
create mode 100644 _data/taps/schemas/deputy/v1/json/states.json
create mode 100644 _data/taps/schemas/deputy/v1/json/stress_profiles.json
create mode 100644 _data/taps/schemas/deputy/v1/json/system_usage_balances.json
create mode 100644 _data/taps/schemas/deputy/v1/json/system_usage_tracking.json
create mode 100644 _data/taps/schemas/deputy/v1/json/task_group_setups.json
create mode 100644 _data/taps/schemas/deputy/v1/json/task_groups.json
create mode 100644 _data/taps/schemas/deputy/v1/json/task_opunit_configs.json
create mode 100644 _data/taps/schemas/deputy/v1/json/task_setups.json
create mode 100644 _data/taps/schemas/deputy/v1/json/tasks.json
create mode 100644 _data/taps/schemas/deputy/v1/json/teams.json
create mode 100644 _data/taps/schemas/deputy/v1/json/timesheet_pay_returns.json
create mode 100644 _data/taps/schemas/deputy/v1/json/timesheets.json
create mode 100644 _data/taps/schemas/deputy/v1/json/training_modules.json
create mode 100644 _data/taps/schemas/deputy/v1/json/training_records.json
create mode 100644 _data/taps/schemas/deputy/v1/json/webhooks.json
create mode 100644 _data/taps/schemas/dixa/v1/dixa-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/dixa/v1/dixa-v1-tables.yml
create mode 100644 _data/taps/schemas/dixa/v1/json/activity_logs.json
create mode 100644 _data/taps/schemas/dixa/v1/json/conversations.json
create mode 100644 _data/taps/schemas/dixa/v1/json/messages.json
create mode 100644 _data/taps/schemas/ebay/v1/ebay-v1-tables.yml
create mode 100644 _data/taps/schemas/ebay/v1/json/orders.json
create mode 100644 _data/taps/schemas/eloqua/v1/eloqua-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/eloqua/v1/eloqua-v1-tables.yml
create mode 100644 _data/taps/schemas/eloqua/v1/json/accounts.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_bounceback.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_email_clickthrough.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_email_open.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_email_send.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_form_submit.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_page_view.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_subscribe.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_unsubscribe.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/activity_web_visit.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/assets.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/contacts.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/custom_objects.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/emailGroups.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/emails.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/forms.json
create mode 100644 _data/taps/schemas/eloqua/v1/json/visitors.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/adcreative.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_age_and_gender.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_country.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_dma.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_hourly_advertiser.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_platform_and_device.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_region.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/adsets.json
create mode 100644 _data/taps/schemas/facebook-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/freshdesk/v1/freshdesk-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/freshdesk/v1/freshdesk-v1-tables.yml
create mode 100644 _data/taps/schemas/freshdesk/v1/json/agents.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/companies.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/conversations.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/groups.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/roles.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/satisfaction_ratings.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/tickets.json
create mode 100644 _data/taps/schemas/freshdesk/v1/json/time_entries.json
create mode 100644 _data/taps/schemas/frontapp/v1/frontapp-v1-tables.yml
create mode 100644 _data/taps/schemas/frontapp/v1/json/customers_table.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/first_response_histo.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/resolution_histo.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/response_histo.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/tags_table.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/team_table.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/top_conversations_table.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/top_reaction_time_table.json
create mode 100644 _data/taps/schemas/frontapp/v1/json/top_replies_table.json
create mode 100644 _data/taps/schemas/frontapp/v2/frontapp-v2-tables.yml
create mode 100644 _data/taps/schemas/frontapp/v2/json/accounts_table.json
create mode 100644 _data/taps/schemas/frontapp/v2/json/channels_table.json
create mode 100644 _data/taps/schemas/frontapp/v2/json/inboxes_table.json
create mode 100644 _data/taps/schemas/frontapp/v2/json/tags_table.json
create mode 100644 _data/taps/schemas/frontapp/v2/json/teammates_table.json
create mode 100644 _data/taps/schemas/frontapp/v2/json/teams_table.json
create mode 100644 _data/taps/schemas/fullstory/v1/fullstory-v1-tables.yml
create mode 100644 _data/taps/schemas/fullstory/v1/json/events.json
create mode 100644 _data/taps/schemas/github/v1/github-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/github/v1/github-v1-tables.yml
create mode 100644 _data/taps/schemas/github/v1/json/assignees.json
create mode 100644 _data/taps/schemas/github/v1/json/collaborators.json
create mode 100644 _data/taps/schemas/github/v1/json/comments.json
create mode 100644 _data/taps/schemas/github/v1/json/commit_comments.json
create mode 100644 _data/taps/schemas/github/v1/json/commits.json
create mode 100644 _data/taps/schemas/github/v1/json/events.json
create mode 100644 _data/taps/schemas/github/v1/json/issue_events.json
create mode 100644 _data/taps/schemas/github/v1/json/issue_labels.json
create mode 100644 _data/taps/schemas/github/v1/json/issue_milestones.json
create mode 100644 _data/taps/schemas/github/v1/json/issues.json
create mode 100644 _data/taps/schemas/github/v1/json/pr_commits.json
create mode 100644 _data/taps/schemas/github/v1/json/project_cards.json
create mode 100644 _data/taps/schemas/github/v1/json/project_columns.json
create mode 100644 _data/taps/schemas/github/v1/json/projects.json
create mode 100644 _data/taps/schemas/github/v1/json/pull_requests.json
create mode 100644 _data/taps/schemas/github/v1/json/releases.json
create mode 100644 _data/taps/schemas/github/v1/json/review_comments.json
create mode 100644 _data/taps/schemas/github/v1/json/reviews.json
create mode 100644 _data/taps/schemas/github/v1/json/stargazers.json
create mode 100644 _data/taps/schemas/github/v1/json/team_members.json
create mode 100644 _data/taps/schemas/github/v1/json/team_memberships.json
create mode 100644 _data/taps/schemas/github/v1/json/teams.json
create mode 100644 _data/taps/schemas/github/v2/github-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/github/v2/github-v2-tables.yml
create mode 100644 _data/taps/schemas/github/v2/json/assignees.json
create mode 100644 _data/taps/schemas/github/v2/json/collaborators.json
create mode 100644 _data/taps/schemas/github/v2/json/comments.json
create mode 100644 _data/taps/schemas/github/v2/json/commit_comments.json
create mode 100644 _data/taps/schemas/github/v2/json/commits.json
create mode 100644 _data/taps/schemas/github/v2/json/events.json
create mode 100644 _data/taps/schemas/github/v2/json/issue_events.json
create mode 100644 _data/taps/schemas/github/v2/json/issue_labels.json
create mode 100644 _data/taps/schemas/github/v2/json/issue_milestones.json
create mode 100644 _data/taps/schemas/github/v2/json/issues.json
create mode 100644 _data/taps/schemas/github/v2/json/pr_commits.json
create mode 100644 _data/taps/schemas/github/v2/json/project_cards.json
create mode 100644 _data/taps/schemas/github/v2/json/project_columns.json
create mode 100644 _data/taps/schemas/github/v2/json/projects.json
create mode 100644 _data/taps/schemas/github/v2/json/pull_requests.json
create mode 100644 _data/taps/schemas/github/v2/json/releases.json
create mode 100644 _data/taps/schemas/github/v2/json/review_comments.json
create mode 100644 _data/taps/schemas/github/v2/json/reviews.json
create mode 100644 _data/taps/schemas/github/v2/json/stargazers.json
create mode 100644 _data/taps/schemas/github/v2/json/team_members.json
create mode 100644 _data/taps/schemas/github/v2/json/team_memberships.json
create mode 100644 _data/taps/schemas/github/v2/json/teams.json
create mode 100644 _data/taps/schemas/gitlab/v1/gitlab-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/gitlab/v1/gitlab-v1-tables.yml
create mode 100644 _data/taps/schemas/gitlab/v1/json/branches.json
create mode 100644 _data/taps/schemas/gitlab/v1/json/commits.json
create mode 100644 _data/taps/schemas/gitlab/v1/json/groups.json
create mode 100644 _data/taps/schemas/gitlab/v1/json/issues.json
create mode 100644 _data/taps/schemas/gitlab/v1/json/milestones.json
create mode 100644 _data/taps/schemas/gitlab/v1/json/projects.json
create mode 100644 _data/taps/schemas/gitlab/v1/json/users.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-tables.yml
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/account_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/accounts.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/ad_groups.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/ad_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/adgroup_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/ads.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/age_range_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/audience_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/call_metrics_call_details_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/campaign_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/click_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/criteria_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/display_keyword_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/display_topics_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/final_url_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/gender_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/geo_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/keywordless_query_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/keywords_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/search_query_performance_report.json
create mode 100644 _data/taps/schemas/google-ads-adwords/v1/json/video_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/google-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/google-ads/v1/json/accessible_bidding_strategies.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/account_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/accounts.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/ad_group_audience_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/ad_group_criterion.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/ad_group_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/ad_groups.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/ad_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/ads.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/age_range_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/bidding_strategies.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/call_details.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/campaign_audience_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/campaign_budgets.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/campaign_criterion.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/campaign_labels.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/campaign_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/carrier_constant.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/click_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/display_keyword_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/display_topics_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/expanded_landing_page_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/feed.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/feed_item.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/gender_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/geo_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/keywordless_query_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/keywords_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/labels.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/landing_page_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/language_constant.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/mobile_app_category_constant.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/mobile_device_constant.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/operating_system_verison_constant.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/placeholder_feed_item_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/placeholder_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/placement_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/search_query_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/shopping_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/topic_constant.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/user_interest.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/user_list.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/user_location_performance_report.json
create mode 100644 _data/taps/schemas/google-ads/v1/json/video_performance_report.json
create mode 100644 _data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-tables.yml
create mode 100644 _data/taps/schemas/google-analytics-360/v1/json/ga_session_hits.json
create mode 100644 _data/taps/schemas/google-analytics-360/v1/json/ga_sessions.json
create mode 100644 _data/taps/schemas/google-analytics-4/v1/google-analytics-4-v1-tables.yml
create mode 100644 _data/taps/schemas/google-analytics-4/v1/json/sample_report.json
create mode 100644 _data/taps/schemas/google-analytics-adwords/v05-12-2017/google-analytics-adwords-v05-12-2017-tables.yml
create mode 100644 _data/taps/schemas/google-analytics-adwords/v05-12-2017/json/report.json
create mode 100644 _data/taps/schemas/google-analytics-adwords/v15-10-2015/google-analytics-adwords-v15-10-2015-tables.yml
create mode 100644 _data/taps/schemas/google-analytics-adwords/v15-10-2015/json/adwords.json
create mode 100644 _data/taps/schemas/google-analytics-adwords/v15-10-2015/json/campaigns.json
create mode 100644 _data/taps/schemas/google-analytics/v1/google-analytics-v1-tables.yml
create mode 100644 _data/taps/schemas/google-analytics/v1/json/sample_report.json
create mode 100644 _data/taps/schemas/google-analytics/v14-09-2016/google-analytics-v14-09-2016-tables.yml
create mode 100644 _data/taps/schemas/google-analytics/v14-09-2016/json/sample_report.json
create mode 100644 _data/taps/schemas/google-ecommerce/v15-10-2015/google-ecommerce-v15-10-2015-tables.yml
create mode 100644 _data/taps/schemas/google-ecommerce/v15-10-2015/json/ecommerce_v2.json
create mode 100644 _data/taps/schemas/google-search-console/v1/google-search-console-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/google-search-console/v1/google-search-console-v1-tables.yml
create mode 100644 _data/taps/schemas/google-search-console/v1/json/performance_report_country.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/performance_report_custom.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/performance_report_date.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/performance_report_device.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/performance_report_page.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/performance_report_query.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/sitemaps.json
create mode 100644 _data/taps/schemas/google-search-console/v1/json/sites.json
create mode 100644 _data/taps/schemas/google-sheets/v1/google-sheets-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/google-sheets/v1/google-sheets-v1-tables.yml
create mode 100644 _data/taps/schemas/google-sheets/v1/json/file_metadata.json
create mode 100644 _data/taps/schemas/google-sheets/v1/json/sample_table.json
create mode 100644 _data/taps/schemas/google-sheets/v1/json/sheet_metadata.json
create mode 100644 _data/taps/schemas/google-sheets/v1/json/sheets_loaded.json
create mode 100644 _data/taps/schemas/google-sheets/v1/json/spreadsheet_metadata.json
create mode 100644 _data/taps/schemas/google-sheets/v2/google-sheets-v2-tables.yml
create mode 100644 _data/taps/schemas/google-sheets/v2/json/file_metadata.json
create mode 100644 _data/taps/schemas/google-sheets/v2/json/sheet_metadata.json
create mode 100644 _data/taps/schemas/google-sheets/v2/json/sheets_loaded.json
create mode 100644 _data/taps/schemas/google-sheets/v2/json/spreadsheet_metadata.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-tables.yml
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/assignments.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/clients.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/milestones.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/people.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/placeholders.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/projects.json
create mode 100644 _data/taps/schemas/harvest-forecast/v1/json/roles.json
create mode 100644 _data/taps/schemas/harvest/v1/harvest-v1-tables.yml
create mode 100644 _data/taps/schemas/harvest/v1/json/clients.json
create mode 100644 _data/taps/schemas/harvest/v1/json/contacts.json
create mode 100644 _data/taps/schemas/harvest/v1/json/expense_categories.json
create mode 100644 _data/taps/schemas/harvest/v1/json/expenses.json
create mode 100644 _data/taps/schemas/harvest/v1/json/invoice_item_categories.json
create mode 100644 _data/taps/schemas/harvest/v1/json/invoice_messages.json
create mode 100644 _data/taps/schemas/harvest/v1/json/invoice_payments.json
create mode 100644 _data/taps/schemas/harvest/v1/json/invoices.json
create mode 100644 _data/taps/schemas/harvest/v1/json/people.json
create mode 100644 _data/taps/schemas/harvest/v1/json/project_tasks.json
create mode 100644 _data/taps/schemas/harvest/v1/json/project_users.json
create mode 100644 _data/taps/schemas/harvest/v1/json/projects.json
create mode 100644 _data/taps/schemas/harvest/v1/json/tasks.json
create mode 100644 _data/taps/schemas/harvest/v1/json/time_entries.json
create mode 100644 _data/taps/schemas/harvest/v2/harvest-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/harvest/v2/harvest-v2-tables.yml
create mode 100644 _data/taps/schemas/harvest/v2/json/clients.json
create mode 100644 _data/taps/schemas/harvest/v2/json/contacts.json
create mode 100644 _data/taps/schemas/harvest/v2/json/estimate_item_categories.json
create mode 100644 _data/taps/schemas/harvest/v2/json/estimate_line_items.json
create mode 100644 _data/taps/schemas/harvest/v2/json/estimate_messages.json
create mode 100644 _data/taps/schemas/harvest/v2/json/estimates.json
create mode 100644 _data/taps/schemas/harvest/v2/json/expense_categories.json
create mode 100644 _data/taps/schemas/harvest/v2/json/expenses.json
create mode 100644 _data/taps/schemas/harvest/v2/json/invoice_item_categories.json
create mode 100644 _data/taps/schemas/harvest/v2/json/invoice_line_items.json
create mode 100644 _data/taps/schemas/harvest/v2/json/invoice_messages.json
create mode 100644 _data/taps/schemas/harvest/v2/json/invoice_payments.json
create mode 100644 _data/taps/schemas/harvest/v2/json/invoices.json
create mode 100644 _data/taps/schemas/harvest/v2/json/project_tasks.json
create mode 100644 _data/taps/schemas/harvest/v2/json/project_users.json
create mode 100644 _data/taps/schemas/harvest/v2/json/projects.json
create mode 100644 _data/taps/schemas/harvest/v2/json/roles.json
create mode 100644 _data/taps/schemas/harvest/v2/json/tasks.json
create mode 100644 _data/taps/schemas/harvest/v2/json/time_entries.json
create mode 100644 _data/taps/schemas/harvest/v2/json/time_entry_external_reference.json
create mode 100644 _data/taps/schemas/harvest/v2/json/user_project_tasks.json
create mode 100644 _data/taps/schemas/harvest/v2/json/user_projects.json
create mode 100644 _data/taps/schemas/harvest/v2/json/user_roles.json
create mode 100644 _data/taps/schemas/harvest/v2/json/users.json
create mode 100644 _data/taps/schemas/heap/v1/heap-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/heap/v1/heap-v1-tables.yml
create mode 100644 _data/taps/schemas/heap/v1/json/event_tables.json
create mode 100644 _data/taps/schemas/heap/v1/json/pageviews.json
create mode 100644 _data/taps/schemas/heap/v1/json/sessions.json
create mode 100644 _data/taps/schemas/heap/v1/json/user_migrations.json
create mode 100644 _data/taps/schemas/heap/v1/json/users.json
create mode 100644 _data/taps/schemas/helpscout/v1/helpscout-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/helpscout/v1/helpscout-v1-tables.yml
create mode 100644 _data/taps/schemas/helpscout/v1/json/conversation_threads.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/conversations.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/customers.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/happiness_ratings_report.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/mailbox_fields.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/mailbox_folders.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/mailboxes.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/team_members.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/teams.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/users.json
create mode 100644 _data/taps/schemas/helpscout/v1/json/workflows.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/hubspot-v01-03-2017-tables.yml
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/campaigns.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/companies.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/contact_lists.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/contacts.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/deals.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/email_events.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/engagements.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/forms.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/keywords.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/owners.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/subscription_changes.json
create mode 100644 _data/taps/schemas/hubspot/v01-03-2017/json/workflows.json
create mode 100644 _data/taps/schemas/hubspot/v1/hubspot-v1-issues.txt
create mode 100644 _data/taps/schemas/hubspot/v1/hubspot-v1-tables.yml
create mode 100644 _data/taps/schemas/hubspot/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/companies.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/contact_lists.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/contacts.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/contacts_by_company.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/deal_pipelines.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/deals.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/email_events.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/engagements.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/forms.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/keywords.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/owners.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/subscription_changes.json
create mode 100644 _data/taps/schemas/hubspot/v1/json/workflows.json
create mode 100644 _data/taps/schemas/hubspot/v2/hubspot-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/hubspot/v2/hubspot-v2-tables.yml
create mode 100644 _data/taps/schemas/hubspot/v2/json/campaigns.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/companies.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/contact_lists.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/contacts.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/contacts_by_company.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/deal_pipelines.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/deals.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/email_events.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/engagements.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/forms.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/owners.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/subscription_changes.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/tickets.json
create mode 100644 _data/taps/schemas/hubspot/v2/json/workflows.json
create mode 100644 _data/taps/schemas/ilevel/v1/ilevel-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/ilevel/v1/ilevel-v1-tables.yml
create mode 100644 _data/taps/schemas/ilevel/v1/json/asset_to_asset_relations.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/assets.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/data_items.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/fund_to_asset_relations.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/fund_to_fund_relations.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/funds.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/investment_transactions.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/investments.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/periodic_data_calculated.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/periodic_data_standardized.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/scenarios.json
create mode 100644 _data/taps/schemas/ilevel/v1/json/securities.json
create mode 100644 _data/taps/schemas/impact/v1/impact-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/impact/v1/impact-v1-tables.yml
create mode 100644 _data/taps/schemas/impact/v1/json/action_inquiries.json
create mode 100644 _data/taps/schemas/impact/v1/json/action_updates.json
create mode 100644 _data/taps/schemas/impact/v1/json/actions.json
create mode 100644 _data/taps/schemas/impact/v1/json/ads.json
create mode 100644 _data/taps/schemas/impact/v1/json/api_submissions.json
create mode 100644 _data/taps/schemas/impact/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/impact/v1/json/catalog_items.json
create mode 100644 _data/taps/schemas/impact/v1/json/catalogs.json
create mode 100644 _data/taps/schemas/impact/v1/json/clicks.json
create mode 100644 _data/taps/schemas/impact/v1/json/company_information.json
create mode 100644 _data/taps/schemas/impact/v1/json/contacts.json
create mode 100644 _data/taps/schemas/impact/v1/json/conversion_paths.json
create mode 100644 _data/taps/schemas/impact/v1/json/deals.json
create mode 100644 _data/taps/schemas/impact/v1/json/exception_list_items.json
create mode 100644 _data/taps/schemas/impact/v1/json/exception_lists.json
create mode 100644 _data/taps/schemas/impact/v1/json/ftp_file_submissions.json
create mode 100644 _data/taps/schemas/impact/v1/json/invoices.json
create mode 100644 _data/taps/schemas/impact/v1/json/media_partner_groups.json
create mode 100644 _data/taps/schemas/impact/v1/json/media_partners.json
create mode 100644 _data/taps/schemas/impact/v1/json/notes.json
create mode 100644 _data/taps/schemas/impact/v1/json/phone_numbers.json
create mode 100644 _data/taps/schemas/impact/v1/json/promo_codes.json
create mode 100644 _data/taps/schemas/impact/v1/json/report_metadata.json
create mode 100644 _data/taps/schemas/impact/v1/json/reports.json
create mode 100644 _data/taps/schemas/impact/v1/json/tracking_value_requests.json
create mode 100644 _data/taps/schemas/impact/v1/json/unique_urls.json
create mode 100644 _data/taps/schemas/impact/v2/impact-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/impact/v2/impact-v2-tables.yml
create mode 100644 _data/taps/schemas/impact/v2/json/action_inquiries.json
create mode 100644 _data/taps/schemas/impact/v2/json/action_updates.json
create mode 100644 _data/taps/schemas/impact/v2/json/actions.json
create mode 100644 _data/taps/schemas/impact/v2/json/ads.json
create mode 100644 _data/taps/schemas/impact/v2/json/api_submissions.json
create mode 100644 _data/taps/schemas/impact/v2/json/campaigns.json
create mode 100644 _data/taps/schemas/impact/v2/json/catalog_items.json
create mode 100644 _data/taps/schemas/impact/v2/json/catalogs.json
create mode 100644 _data/taps/schemas/impact/v2/json/clicks.json
create mode 100644 _data/taps/schemas/impact/v2/json/company_information.json
create mode 100644 _data/taps/schemas/impact/v2/json/contacts.json
create mode 100644 _data/taps/schemas/impact/v2/json/conversion_paths.json
create mode 100644 _data/taps/schemas/impact/v2/json/deals.json
create mode 100644 _data/taps/schemas/impact/v2/json/exception_list_items.json
create mode 100644 _data/taps/schemas/impact/v2/json/exception_lists.json
create mode 100644 _data/taps/schemas/impact/v2/json/ftp_file_submissions.json
create mode 100644 _data/taps/schemas/impact/v2/json/invoices.json
create mode 100644 _data/taps/schemas/impact/v2/json/media_partner_groups.json
create mode 100644 _data/taps/schemas/impact/v2/json/media_partners.json
create mode 100644 _data/taps/schemas/impact/v2/json/notes.json
create mode 100644 _data/taps/schemas/impact/v2/json/phone_numbers.json
create mode 100644 _data/taps/schemas/impact/v2/json/promo_codes.json
create mode 100644 _data/taps/schemas/impact/v2/json/report_metadata.json
create mode 100644 _data/taps/schemas/impact/v2/json/reports.json
create mode 100644 _data/taps/schemas/impact/v2/json/tracking_value_requests.json
create mode 100644 _data/taps/schemas/impact/v2/json/unique_urls.json
create mode 100644 _data/taps/schemas/intacct/v1/intacct-v1-tables.yml
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-foreign-keys.yml
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-tables.yml
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/admins.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/companies.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/company_segments.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/contacts.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/conversations.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/segments.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/tags.json
create mode 100644 _data/taps/schemas/intercom/v02-02-2016/json/users.json
create mode 100644 _data/taps/schemas/intercom/v1/intercom-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/intercom/v1/intercom-v1-tables.yml
create mode 100644 _data/taps/schemas/intercom/v1/json/admins.json
create mode 100644 _data/taps/schemas/intercom/v1/json/companies.json
create mode 100644 _data/taps/schemas/intercom/v1/json/company_attributes.json
create mode 100644 _data/taps/schemas/intercom/v1/json/company_segments.json
create mode 100644 _data/taps/schemas/intercom/v1/json/contact_attributes.json
create mode 100644 _data/taps/schemas/intercom/v1/json/contacts.json
create mode 100644 _data/taps/schemas/intercom/v1/json/conversation_parts.json
create mode 100644 _data/taps/schemas/intercom/v1/json/conversations.json
create mode 100644 _data/taps/schemas/intercom/v1/json/segments.json
create mode 100644 _data/taps/schemas/intercom/v1/json/tags.json
create mode 100644 _data/taps/schemas/intercom/v1/json/teams.json
create mode 100644 _data/taps/schemas/intercom/v2/intercom-v2-tables.yml
create mode 100644 _data/taps/schemas/intercom/v2/json/admins.json
create mode 100644 _data/taps/schemas/intercom/v2/json/companies.json
create mode 100644 _data/taps/schemas/intercom/v2/json/company_attributes.json
create mode 100644 _data/taps/schemas/intercom/v2/json/company_segments.json
create mode 100644 _data/taps/schemas/intercom/v2/json/contact_attributes.json
create mode 100644 _data/taps/schemas/intercom/v2/json/contacts.json
create mode 100644 _data/taps/schemas/intercom/v2/json/conversation_parts.json
create mode 100644 _data/taps/schemas/intercom/v2/json/conversations.json
create mode 100644 _data/taps/schemas/intercom/v2/json/segments.json
create mode 100644 _data/taps/schemas/intercom/v2/json/tags.json
create mode 100644 _data/taps/schemas/intercom/v2/json/teams.json
create mode 100644 _data/taps/schemas/invoiced/v1/invoiced-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/invoiced/v1/invoiced-v1-tables.yml
create mode 100644 _data/taps/schemas/invoiced/v1/json/credit_notes.json
create mode 100644 _data/taps/schemas/invoiced/v1/json/customers.json
create mode 100644 _data/taps/schemas/invoiced/v1/json/estimates.json
create mode 100644 _data/taps/schemas/invoiced/v1/json/invoices.json
create mode 100644 _data/taps/schemas/invoiced/v1/json/plans.json
create mode 100644 _data/taps/schemas/invoiced/v1/json/subscriptions.json
create mode 100644 _data/taps/schemas/invoiced/v1/json/transactions.json
create mode 100644 _data/taps/schemas/iterable-core/v1/iterable-core-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/iterable-core/v1/iterable-core-v1-tables.yml
create mode 100644 _data/taps/schemas/iterable-core/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/channels.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_bounce.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_click.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_complaint.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_open.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_send.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_send_skip.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_subscribe.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/email_unsubscribe.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/list_users.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/lists.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/message_types.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/metadata.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/templates.json
create mode 100644 _data/taps/schemas/iterable-core/v1/json/users.json
create mode 100644 _data/taps/schemas/jira/v1/jira-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/jira/v1/jira-v1-tables.yml
create mode 100644 _data/taps/schemas/jira/v1/json/changelogs.json
create mode 100644 _data/taps/schemas/jira/v1/json/issue_comments.json
create mode 100644 _data/taps/schemas/jira/v1/json/issue_transitions.json
create mode 100644 _data/taps/schemas/jira/v1/json/issues.json
create mode 100644 _data/taps/schemas/jira/v1/json/project_categories.json
create mode 100644 _data/taps/schemas/jira/v1/json/project_types.json
create mode 100644 _data/taps/schemas/jira/v1/json/projects.json
create mode 100644 _data/taps/schemas/jira/v1/json/resolutions.json
create mode 100644 _data/taps/schemas/jira/v1/json/roles.json
create mode 100644 _data/taps/schemas/jira/v1/json/users.json
create mode 100644 _data/taps/schemas/jira/v1/json/versions.json
create mode 100644 _data/taps/schemas/jira/v1/json/worklogs.json
create mode 100644 _data/taps/schemas/jira/v2/jira-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/jira/v2/jira-v2-tables.yml
create mode 100644 _data/taps/schemas/jira/v2/json/changelogs.json
create mode 100644 _data/taps/schemas/jira/v2/json/components.json
create mode 100644 _data/taps/schemas/jira/v2/json/issue_comments.json
create mode 100644 _data/taps/schemas/jira/v2/json/issue_transitions.json
create mode 100644 _data/taps/schemas/jira/v2/json/issues.json
create mode 100644 _data/taps/schemas/jira/v2/json/project_categories.json
create mode 100644 _data/taps/schemas/jira/v2/json/project_types.json
create mode 100644 _data/taps/schemas/jira/v2/json/projects.json
create mode 100644 _data/taps/schemas/jira/v2/json/resolutions.json
create mode 100644 _data/taps/schemas/jira/v2/json/roles.json
create mode 100644 _data/taps/schemas/jira/v2/json/users.json
create mode 100644 _data/taps/schemas/jira/v2/json/versions.json
create mode 100644 _data/taps/schemas/jira/v2/json/worklogs.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/bounce.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/click.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/clicked_sms.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/consented_to_receive.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/dropped_email.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/failed_to_deliver.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/failed_to_deliver_automated_response.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/global_exclusions.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/lists.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/mark_as_spam.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/open.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/receive.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/received_automated_response.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/received_sms.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/sent_sms.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/subscribe_list.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/unsub_list.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/unsubscribe.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/unsubscribed_from_sms.json
create mode 100644 _data/taps/schemas/klaviyo/v1/json/update_email_preferences.json
create mode 100644 _data/taps/schemas/klaviyo/v1/klaviyo-v1-tables.yml
create mode 100644 _data/taps/schemas/kustomer/v1/json/conversations.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/customers.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/kobjects.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/messages.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/notes.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/shortcuts.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/tags.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/teams.json
create mode 100644 _data/taps/schemas/kustomer/v1/json/users.json
create mode 100644 _data/taps/schemas/kustomer/v1/kustomer-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/kustomer/v1/kustomer-v1-tables.yml
create mode 100644 _data/taps/schemas/lever/v1/json/archive_reasons.json
create mode 100644 _data/taps/schemas/lever/v1/json/candidate_applications.json
create mode 100644 _data/taps/schemas/lever/v1/json/candidate_offers.json
create mode 100644 _data/taps/schemas/lever/v1/json/candidate_referrals.json
create mode 100644 _data/taps/schemas/lever/v1/json/candidate_resumes.json
create mode 100644 _data/taps/schemas/lever/v1/json/candidates.json
create mode 100644 _data/taps/schemas/lever/v1/json/opportunities.json
create mode 100644 _data/taps/schemas/lever/v1/json/opportunity_applications.json
create mode 100644 _data/taps/schemas/lever/v1/json/opportunity_offers.json
create mode 100644 _data/taps/schemas/lever/v1/json/opportunity_referrals.json
create mode 100644 _data/taps/schemas/lever/v1/json/opportunity_resumes.json
create mode 100644 _data/taps/schemas/lever/v1/json/postings.json
create mode 100644 _data/taps/schemas/lever/v1/json/requisitions.json
create mode 100644 _data/taps/schemas/lever/v1/json/sources.json
create mode 100644 _data/taps/schemas/lever/v1/json/stages.json
create mode 100644 _data/taps/schemas/lever/v1/json/users.json
create mode 100644 _data/taps/schemas/lever/v1/lever-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/lever/v1/lever-v1-issues.txt
create mode 100644 _data/taps/schemas/lever/v1/lever-v1-tables.yml
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/account_users.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/accounts.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_campaign.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_creative.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/campaign_groups.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/creatives.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/json/video_ads.json
create mode 100644 _data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/account_users.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/accounts.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_campaign.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_creative.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/campaign_groups.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/campaigns.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/creatives.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/json/video_ads.json
create mode 100644 _data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-tables.yml
create mode 100644 _data/taps/schemas/listrak/v1/json/lists.json
create mode 100644 _data/taps/schemas/listrak/v1/json/message_bounces.json
create mode 100644 _data/taps/schemas/listrak/v1/json/message_clicks.json
create mode 100644 _data/taps/schemas/listrak/v1/json/message_opens.json
create mode 100644 _data/taps/schemas/listrak/v1/json/message_reads.json
create mode 100644 _data/taps/schemas/listrak/v1/json/message_sends.json
create mode 100644 _data/taps/schemas/listrak/v1/json/message_unsubs.json
create mode 100644 _data/taps/schemas/listrak/v1/json/messages.json
create mode 100644 _data/taps/schemas/listrak/v1/json/subscribed_contacts.json
create mode 100644 _data/taps/schemas/listrak/v1/listrak-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/listrak/v1/listrak-v1-tables.yml
create mode 100644 _data/taps/schemas/liveperson/v1/json/agent_activity.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/agent_groups.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/agent_state_distribution.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/agent_status.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/engagement_history.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/messaging_interactions.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/messaging_queue_health.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/queue_health.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/skills.json
create mode 100644 _data/taps/schemas/liveperson/v1/json/users.json
create mode 100644 _data/taps/schemas/liveperson/v1/liveperson-v1-tables.yml
create mode 100644 _data/taps/schemas/looker/v1/json/color_collections.json
create mode 100644 _data/taps/schemas/looker/v1/json/connections.json
create mode 100644 _data/taps/schemas/looker/v1/json/content_favorites.json
create mode 100644 _data/taps/schemas/looker/v1/json/content_metadata.json
create mode 100644 _data/taps/schemas/looker/v1/json/content_metadata_access.json
create mode 100644 _data/taps/schemas/looker/v1/json/content_views.json
create mode 100644 _data/taps/schemas/looker/v1/json/dashboard_elements.json
create mode 100644 _data/taps/schemas/looker/v1/json/dashboard_filters.json
create mode 100644 _data/taps/schemas/looker/v1/json/dashboard_layouts.json
create mode 100644 _data/taps/schemas/looker/v1/json/dashboards.json
create mode 100644 _data/taps/schemas/looker/v1/json/datagroups.json
create mode 100644 _data/taps/schemas/looker/v1/json/explores.json
create mode 100644 _data/taps/schemas/looker/v1/json/folders.json
create mode 100644 _data/taps/schemas/looker/v1/json/git_branches.json
create mode 100644 _data/taps/schemas/looker/v1/json/groups.json
create mode 100644 _data/taps/schemas/looker/v1/json/groups_in_group.json
create mode 100644 _data/taps/schemas/looker/v1/json/integration_hubs.json
create mode 100644 _data/taps/schemas/looker/v1/json/integrations.json
create mode 100644 _data/taps/schemas/looker/v1/json/lookml_dashboards.json
create mode 100644 _data/taps/schemas/looker/v1/json/lookml_models.json
create mode 100644 _data/taps/schemas/looker/v1/json/looks.json
create mode 100644 _data/taps/schemas/looker/v1/json/merge_queries.json
create mode 100644 _data/taps/schemas/looker/v1/json/model_sets.json
create mode 100644 _data/taps/schemas/looker/v1/json/models.json
create mode 100644 _data/taps/schemas/looker/v1/json/permission_sets.json
create mode 100644 _data/taps/schemas/looker/v1/json/permissions.json
create mode 100644 _data/taps/schemas/looker/v1/json/project_files.json
create mode 100644 _data/taps/schemas/looker/v1/json/projects.json
create mode 100644 _data/taps/schemas/looker/v1/json/queries.json
create mode 100644 _data/taps/schemas/looker/v1/json/query_history.json
create mode 100644 _data/taps/schemas/looker/v1/json/role_groups.json
create mode 100644 _data/taps/schemas/looker/v1/json/roles.json
create mode 100644 _data/taps/schemas/looker/v1/json/scheduled_plans.json
create mode 100644 _data/taps/schemas/looker/v1/json/themes.json
create mode 100644 _data/taps/schemas/looker/v1/json/user_attribute_group_values.json
create mode 100644 _data/taps/schemas/looker/v1/json/user_attribute_values.json
create mode 100644 _data/taps/schemas/looker/v1/json/user_attributes.json
create mode 100644 _data/taps/schemas/looker/v1/json/user_login_lockouts.json
create mode 100644 _data/taps/schemas/looker/v1/json/user_sessions.json
create mode 100644 _data/taps/schemas/looker/v1/json/users.json
create mode 100644 _data/taps/schemas/looker/v1/json/versions.json
create mode 100644 _data/taps/schemas/looker/v1/json/workspaces.json
create mode 100644 _data/taps/schemas/looker/v1/looker-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/looker/v1/looker-v1-tables.yml
create mode 100644 _data/taps/schemas/lookml/v1/json/model_files.json
create mode 100644 _data/taps/schemas/lookml/v1/json/models.json
create mode 100644 _data/taps/schemas/lookml/v1/json/view_files.json
create mode 100644 _data/taps/schemas/lookml/v1/json/views.json
create mode 100644 _data/taps/schemas/lookml/v1/lookml-v1-tables.yml
create mode 100644 _data/taps/schemas/mailchimp/v1/json/automations.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/list_members.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/list_segment_members.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/list_segments.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/lists.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/reports_email_activity.json
create mode 100644 _data/taps/schemas/mailchimp/v1/json/unsubscribes.json
create mode 100644 _data/taps/schemas/mailchimp/v1/mailchimp-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/mailchimp/v1/mailchimp-v1-tables.yml
create mode 100644 _data/taps/schemas/mailshake/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/clicks.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/leads.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/opens.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/recipients.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/replies.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/senders.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/sent_messages.json
create mode 100644 _data/taps/schemas/mailshake/v1/json/team_members.json
create mode 100644 _data/taps/schemas/mailshake/v1/mailshake-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/mailshake/v1/mailshake-v1-tables.yml
create mode 100644 _data/taps/schemas/mambu/v1/json/activities.json
create mode 100644 _data/taps/schemas/mambu/v1/json/branches.json
create mode 100644 _data/taps/schemas/mambu/v1/json/cards.json
create mode 100644 _data/taps/schemas/mambu/v1/json/centres.json
create mode 100644 _data/taps/schemas/mambu/v1/json/clients.json
create mode 100644 _data/taps/schemas/mambu/v1/json/communications.json
create mode 100644 _data/taps/schemas/mambu/v1/json/credit_arrangements.json
create mode 100644 _data/taps/schemas/mambu/v1/json/custom_field_sets.json
create mode 100644 _data/taps/schemas/mambu/v1/json/deposit_accounts.json
create mode 100644 _data/taps/schemas/mambu/v1/json/deposit_products.json
create mode 100644 _data/taps/schemas/mambu/v1/json/deposit_transactions.json
create mode 100644 _data/taps/schemas/mambu/v1/json/gl_accounts.json
create mode 100644 _data/taps/schemas/mambu/v1/json/gl_journal_entries.json
create mode 100644 _data/taps/schemas/mambu/v1/json/groups.json
create mode 100644 _data/taps/schemas/mambu/v1/json/index_rate_sources.json
create mode 100644 _data/taps/schemas/mambu/v1/json/installments.json
create mode 100644 _data/taps/schemas/mambu/v1/json/loan_accounts.json
create mode 100644 _data/taps/schemas/mambu/v1/json/loan_products.json
create mode 100644 _data/taps/schemas/mambu/v1/json/loan_repayments.json
create mode 100644 _data/taps/schemas/mambu/v1/json/loan_transactions.json
create mode 100644 _data/taps/schemas/mambu/v1/json/tasks.json
create mode 100644 _data/taps/schemas/mambu/v1/json/users.json
create mode 100644 _data/taps/schemas/mambu/v1/mambu-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/mambu/v1/mambu-v1-tables.yml
create mode 100644 _data/taps/schemas/mambu/v2/json/activities.json
create mode 100644 _data/taps/schemas/mambu/v2/json/audit_trail.json
create mode 100644 _data/taps/schemas/mambu/v2/json/branches.json
create mode 100644 _data/taps/schemas/mambu/v2/json/cards.json
create mode 100644 _data/taps/schemas/mambu/v2/json/centres.json
create mode 100644 _data/taps/schemas/mambu/v2/json/clients.json
create mode 100644 _data/taps/schemas/mambu/v2/json/communications.json
create mode 100644 _data/taps/schemas/mambu/v2/json/credit_arrangements.json
create mode 100644 _data/taps/schemas/mambu/v2/json/custom_field_sets.json
create mode 100644 _data/taps/schemas/mambu/v2/json/deposit_accounts.json
create mode 100644 _data/taps/schemas/mambu/v2/json/deposit_products.json
create mode 100644 _data/taps/schemas/mambu/v2/json/deposit_transactions.json
create mode 100644 _data/taps/schemas/mambu/v2/json/gl_accounts.json
create mode 100644 _data/taps/schemas/mambu/v2/json/gl_journal_entries.json
create mode 100644 _data/taps/schemas/mambu/v2/json/groups.json
create mode 100644 _data/taps/schemas/mambu/v2/json/index_rate_sources.json
create mode 100644 _data/taps/schemas/mambu/v2/json/installments.json
create mode 100644 _data/taps/schemas/mambu/v2/json/interest_accrual_breakdown.json
create mode 100644 _data/taps/schemas/mambu/v2/json/loan_accounts.json
create mode 100644 _data/taps/schemas/mambu/v2/json/loan_products.json
create mode 100644 _data/taps/schemas/mambu/v2/json/loan_repayments.json
create mode 100644 _data/taps/schemas/mambu/v2/json/loan_transactions.json
create mode 100644 _data/taps/schemas/mambu/v2/json/tasks.json
create mode 100644 _data/taps/schemas/mambu/v2/json/users.json
create mode 100644 _data/taps/schemas/mambu/v2/mambu-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/mambu/v2/mambu-v2-tables.yml
create mode 100644 _data/taps/schemas/mambu/v4/json/activities.json
create mode 100644 _data/taps/schemas/mambu/v4/json/audit_trail.json
create mode 100644 _data/taps/schemas/mambu/v4/json/branches.json
create mode 100644 _data/taps/schemas/mambu/v4/json/cards.json
create mode 100644 _data/taps/schemas/mambu/v4/json/centres.json
create mode 100644 _data/taps/schemas/mambu/v4/json/clients.json
create mode 100644 _data/taps/schemas/mambu/v4/json/communications.json
create mode 100644 _data/taps/schemas/mambu/v4/json/credit_arrangements.json
create mode 100644 _data/taps/schemas/mambu/v4/json/custom_field_sets.json
create mode 100644 _data/taps/schemas/mambu/v4/json/deposit_accounts.json
create mode 100644 _data/taps/schemas/mambu/v4/json/deposit_products.json
create mode 100644 _data/taps/schemas/mambu/v4/json/deposit_transactions.json
create mode 100644 _data/taps/schemas/mambu/v4/json/gl_accounts.json
create mode 100644 _data/taps/schemas/mambu/v4/json/gl_journal_entries.json
create mode 100644 _data/taps/schemas/mambu/v4/json/groups.json
create mode 100644 _data/taps/schemas/mambu/v4/json/index_rate_sources.json
create mode 100644 _data/taps/schemas/mambu/v4/json/installments.json
create mode 100644 _data/taps/schemas/mambu/v4/json/interest_accrual_breakdown.json
create mode 100644 _data/taps/schemas/mambu/v4/json/loan_accounts.json
create mode 100644 _data/taps/schemas/mambu/v4/json/loan_products.json
create mode 100644 _data/taps/schemas/mambu/v4/json/loan_repayments.json
create mode 100644 _data/taps/schemas/mambu/v4/json/loan_transactions.json
create mode 100644 _data/taps/schemas/mambu/v4/json/tasks.json
create mode 100644 _data/taps/schemas/mambu/v4/json/users.json
create mode 100644 _data/taps/schemas/mambu/v4/mambu-v4-foreign-keys.yml
create mode 100644 _data/taps/schemas/mambu/v4/mambu-v4-tables.yml
create mode 100644 _data/taps/schemas/marketo/v1/json/activities.json
create mode 100644 _data/taps/schemas/marketo/v1/json/activity_types.json
create mode 100644 _data/taps/schemas/marketo/v1/json/leads.json
create mode 100644 _data/taps/schemas/marketo/v1/json/lists.json
create mode 100644 _data/taps/schemas/marketo/v1/marketo-v1-tables.yml
create mode 100644 _data/taps/schemas/marketo/v2/json/activities.json
create mode 100644 _data/taps/schemas/marketo/v2/json/activity_types.json
create mode 100644 _data/taps/schemas/marketo/v2/json/campaigns.json
create mode 100644 _data/taps/schemas/marketo/v2/json/leads.json
create mode 100644 _data/taps/schemas/marketo/v2/json/lists.json
create mode 100644 _data/taps/schemas/marketo/v2/json/programs.json
create mode 100644 _data/taps/schemas/marketo/v2/marketo-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/marketo/v2/marketo-v2-tables.yml
create mode 100644 _data/taps/schemas/mixpanel/v1/json/annotations.json
create mode 100644 _data/taps/schemas/mixpanel/v1/json/cohort_members.json
create mode 100644 _data/taps/schemas/mixpanel/v1/json/cohorts.json
create mode 100644 _data/taps/schemas/mixpanel/v1/json/engage.json
create mode 100644 _data/taps/schemas/mixpanel/v1/json/export.json
create mode 100644 _data/taps/schemas/mixpanel/v1/json/funnels.json
create mode 100644 _data/taps/schemas/mixpanel/v1/json/revenue.json
create mode 100644 _data/taps/schemas/mixpanel/v1/mixpanel-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/mixpanel/v1/mixpanel-v1-tables.yml
create mode 100644 _data/taps/schemas/ms-teams/v1/json/channel_members.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/channel_message_replies.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/channel_messages.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/channel_tabs.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/channels.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/conversation_posts.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/conversation_threads.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/conversations.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/group_members.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/group_owners.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/groups.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/team_device_usage_report.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/team_drives.json
create mode 100644 _data/taps/schemas/ms-teams/v1/json/users.json
create mode 100644 _data/taps/schemas/ms-teams/v1/ms-teams-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/ms-teams/v1/ms-teams-v1-tables.yml
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/account_activity.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity_pe.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/account_subsidiary_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_books.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_periods.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/accounts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/activities.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/address_book.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/addresses.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_sched_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_schedules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_distributions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_materials.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_accounts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_class_rates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_classes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_prices.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_versions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule_descriptions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscription_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscriptions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number_counts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bins.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revision_components.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revisions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/budget.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/budget_category.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/calls.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_audiences.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_categories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_families.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_search_engine.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscription_statuses.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscriptions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_verticals.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaignchannel.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaignevent.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaignitem.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaignoffer.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponse.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponsehistory.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/case_origins.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/case_stage_changes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/case_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/caseescalationhistory.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/caseissue.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/caseorigin.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/casetype.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/charges.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/classes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/commission_authorization_link.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/commissionplan.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/commissionrate.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/commissionschedule.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/companies.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/company_status.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/companycontactmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/competitor.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/competitoroppmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/components_per_routing_steps.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/consolidated_exchange_rates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/contact_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/contactrole.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/contacts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/countries.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/coupon_codes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroup.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroupmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/crmtemplate.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/currencies.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rate_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/currencyrates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_currencies.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_group_pricing.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_item_pricing.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_partner_sales_teams.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_sales_teams.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_subsidiary_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customer_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/customers.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/deleted_records.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/departments.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_categories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_networks.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/employee_currency_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/employee_time.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/employee_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/employees.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entity.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entity_role_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status_history.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entitycategory.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entityeventmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/entityterritorymap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/eventattendees.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/events1.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_accounts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_amortization_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_based_charge_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_rates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_subs_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_detail.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plan_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/fair_value_prices.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/fixed_fee_charge_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/generic_resources.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/gift_certificates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/global_account_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/global_inventory_relationships.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/group_test_cell.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipment_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipments.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/income_accounts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_number.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_account_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_billing_rates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_collection_item_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_collections.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plan_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_fulfillments.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_group.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_location_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_price_history.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_prices.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_quantity.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_revisions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_shipmethods.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_site_categories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_subsidiary_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_attributes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_pricing.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/job_resource_role.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/job_resources.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/job_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_groups.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_grp_locations.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/locations.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/memorized_trans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/message.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/messagerecipient.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing_steps.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/nexus.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system_custom.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/notes_user.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/notetype.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/opportunities.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/opportunity_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/opportunitycontactmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/originating_leads.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/other_names.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/partner_sales_roles.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/partner_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/partners.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/payment_methods.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/payment_terms.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_item_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/percent_complete_overrides.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/planassignmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/planned_standard_costs.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/planschedulemap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity_pe.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/price_book_line_intervals.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/price_books.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/price_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/price_tiers.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/price_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/pricing_groups.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_billing_budgets.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_budgets.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_categories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_expense_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rl_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rls_charge_rls.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_assignments.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_billing_budgets.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_cost_budgets.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_dependencies.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_tasks.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_templates.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/project_time_approval_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/promotion_codes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/purchase_charge_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/quota1.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/resource_allocations.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/resource_group_entity_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/resource_groups.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revaluation.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_elements.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_version_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_versions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_recognition_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedulelines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/role_subsidiary_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/roles1.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/sales_reps.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/sales_roles.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/sales_territories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/salesforecast.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/service_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/shipment_packages.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/shipping_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/solution.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/solutioncasemap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/solutiontopicmap.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/standard_cost_components.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/states.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscript_line_price_intervals.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_change_orders.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_co_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_line_revisions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plan_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plans.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_terms.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiaries.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_book_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_class_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_department_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_location_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_nexus_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/supplier_categories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/support_incidents.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/support_reps.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/support_territories.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/supportcasehistory.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes_custom.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/task_contacts.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/tasks.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/tax_items.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/territory.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/time_based_charge_rules.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/timesheet.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/topic.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/trans_partner_sales_teams.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_address.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_bin_numbers.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_book_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_cost_components.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_history.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_inventory_numbers.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_line_book_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_lines.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_links.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_sales_teams.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_shipping_groups.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tax_detail.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tracking_numbers.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/transactions.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/units_type.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/unlocked_time_periods.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/uom.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/usages.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_currencies.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_subsidiary_map.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_types.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/vendors.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/winlossreason.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendar_holidays.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendars.json
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-tables.yml
create mode 100644 _data/taps/schemas/netsuite/v1/json/Account.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/AccountingPeriod.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Address.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/BillingAccount.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/BillingSchedule.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Bin.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Budget.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CalendarEvent.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Classification.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ConsolidatedExchangeRate.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ContactCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ContactRole.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CostCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CouponCode.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CurrencyRate.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CustomList.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Customer.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CustomerCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CustomerMessage.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/CustomerStatus.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Deleted.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Department.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/EntityGroup.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ExpenseCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/FairValuePrice.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Folder.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/GiftCertificate.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/GlobalAccountMapping.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/HcmJob.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/InboundShipment.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/InventoryNumber.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Issue.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ItemAccountMapping.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ItemDemandPlan.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ItemRevision.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ItemSupplyPlan.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Job.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/JobStatus.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/JobType.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ManufacturingCostTemplate.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ManufacturingOperationTask.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ManufacturingRouting.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Message.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Note.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/NoteType.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Opportunity.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/OtherNameCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PartnerCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Paycheck.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PaymentMethod.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PayrollItem.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PhoneCall.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PriceLevel.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PricingGroup.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ProjectTask.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/PromotionCode.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/ResourceAllocation.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/RevRecSchedule.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/RevRecTemplate.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/SalesRole.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/SalesTaxItem.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/SiteCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Solution.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Subsidiary.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/SupportCase.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Task.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/TaxGroup.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/TaxType.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Term.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/TimeBill.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/TimeEntry.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/TimeSheet.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Transaction.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/UnitsType.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Usage.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/Vendor.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/VendorCategory.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/WinLossReason.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/campaign.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/charge.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/contact.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/custom_record.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/employee.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/file.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/item.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/location.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/nexus.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/partner.json
create mode 100644 _data/taps/schemas/netsuite/v1/json/topic.json
create mode 100644 _data/taps/schemas/netsuite/v1/netsuite-v1-tables.yml
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/accounting_period.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/app_definition.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/app_package.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/billing_schedule.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/calendar_event.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/campaign.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/classification.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/contact_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/contact_role.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/coupon_code.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/currency_rate.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/custom_list.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/custom_records.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/customer.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/customer_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/customer_message.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/customer_status.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/deleted.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/department.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/entity_group.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/expense_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/folder.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/gift_certificate.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/global_account_mapping.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/inventory_number.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/item_account_mapping.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/item_demand_plan.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/item_revision.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/item_supply_plan.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/job.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/job_status.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/job_type.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_cost_template.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_operation_task.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_routing.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/message.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/nexus.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/note.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/note_type.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/opportunity.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/originating_lead.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/other_name_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/partner_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/payment_method.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/payroll_item.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/phone_call.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/price_level.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/pricing_group.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/project_task.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/promotion_code.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/resource_allocation.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_schedule.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_template.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/sales_role.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/site_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/solution.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/subsidiary.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/support_case.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/task.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/term.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/time_bill.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/time_entry.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/time_sheet.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/transaction.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/units_type.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/vendor_category.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/json/win_loss_reason.json
create mode 100644 _data/taps/schemas/netsuite/v10-15-2015/netsuite-v10-15-2015-tables.yml
create mode 100644 _data/taps/schemas/netsuite/v2/json/Account.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/AccountingPeriod.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Address.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/BillingAccount.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/BillingSchedule.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Bin.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Bom.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/BomRevision.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Budget.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CalendarEvent.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Campaign.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Charge.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Classification.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ConsolidatedExchangeRate.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Contact.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ContactCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ContactRole.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CostCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CouponCode.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CurrencyRate.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CustomList.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Customer.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CustomerCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CustomerMessage.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CustomerStatus.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/CustomerSubsidiaryRelationship.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Deleted.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Department.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Employee.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/EntityGroup.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ExpenseCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/FairValuePrice.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/File.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Folder.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/GiftCertificate.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/GlobalAccountMapping.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/HcmJob.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/InboundShipment.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/InventoryNumber.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Issue.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Item.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ItemAccountMapping.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ItemDemandPlan.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ItemRevision.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ItemSupplyPlan.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Job.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/JobStatus.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/JobType.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Location.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ManufacturingCostTemplate.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ManufacturingOperationTask.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ManufacturingRouting.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/MerchandiseHierarchyNode.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Message.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Nexus.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Note.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/NoteType.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Opportunity.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/OtherNameCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Partner.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PartnerCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Paycheck.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PaymentMethod.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PayrollItem.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PhoneCall.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PriceLevel.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PricingGroup.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ProjectTask.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/PromotionCode.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/ResourceAllocation.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/RevRecSchedule.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/RevRecTemplate.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/SalesRole.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/SalesTaxItem.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/SiteCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Solution.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Subsidiary.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/SupportCase.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Task.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/TaxGroup.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/TaxType.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Term.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/TimeBill.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/TimeEntry.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/TimeSheet.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Topic.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Transaction.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/UnitsType.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Usage.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/Vendor.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/VendorCategory.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/VendorSubsidiaryRelationship.json
create mode 100644 _data/taps/schemas/netsuite/v2/json/WinLossReason.json
create mode 100644 _data/taps/schemas/netsuite/v2/netsuite-v2-tables.yml
create mode 100644 _data/taps/schemas/onfleet/v1/json/administrators.json
create mode 100644 _data/taps/schemas/onfleet/v1/json/hubs.json
create mode 100644 _data/taps/schemas/onfleet/v1/json/organizations.json
create mode 100644 _data/taps/schemas/onfleet/v1/json/tasks.json
create mode 100644 _data/taps/schemas/onfleet/v1/json/teams.json
create mode 100644 _data/taps/schemas/onfleet/v1/json/workers.json
create mode 100644 _data/taps/schemas/onfleet/v1/onfleet-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/onfleet/v1/onfleet-v1-tables.yml
create mode 100644 _data/taps/schemas/outbrain/v1/json/campaign_performance.json
create mode 100644 _data/taps/schemas/outbrain/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/outbrain/v1/outbrain-v1-tables.yml
create mode 100644 _data/taps/schemas/outreach/v1/json/accounts.json
create mode 100644 _data/taps/schemas/outreach/v1/json/call_dispositions.json
create mode 100644 _data/taps/schemas/outreach/v1/json/call_purposes.json
create mode 100644 _data/taps/schemas/outreach/v1/json/calls.json
create mode 100644 _data/taps/schemas/outreach/v1/json/content_categories.json
create mode 100644 _data/taps/schemas/outreach/v1/json/duties.json
create mode 100644 _data/taps/schemas/outreach/v1/json/events.json
create mode 100644 _data/taps/schemas/outreach/v1/json/mailboxes.json
create mode 100644 _data/taps/schemas/outreach/v1/json/mailings.json
create mode 100644 _data/taps/schemas/outreach/v1/json/opportunities.json
create mode 100644 _data/taps/schemas/outreach/v1/json/personas.json
create mode 100644 _data/taps/schemas/outreach/v1/json/prospects.json
create mode 100644 _data/taps/schemas/outreach/v1/json/sequence_states.json
create mode 100644 _data/taps/schemas/outreach/v1/json/sequence_steps.json
create mode 100644 _data/taps/schemas/outreach/v1/json/sequence_templates.json
create mode 100644 _data/taps/schemas/outreach/v1/json/sequences.json
create mode 100644 _data/taps/schemas/outreach/v1/json/stages.json
create mode 100644 _data/taps/schemas/outreach/v1/json/tasks.json
create mode 100644 _data/taps/schemas/outreach/v1/json/teams.json
create mode 100644 _data/taps/schemas/outreach/v1/json/users.json
create mode 100644 _data/taps/schemas/outreach/v1/outreach-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/outreach/v1/outreach-v1-tables.yml
create mode 100644 _data/taps/schemas/pardot/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/pardot/v1/json/email_clicks.json
create mode 100644 _data/taps/schemas/pardot/v1/json/list_memberships.json
create mode 100644 _data/taps/schemas/pardot/v1/json/lists.json
create mode 100644 _data/taps/schemas/pardot/v1/json/opportunities.json
create mode 100644 _data/taps/schemas/pardot/v1/json/prospect_accounts.json
create mode 100644 _data/taps/schemas/pardot/v1/json/prospects.json
create mode 100644 _data/taps/schemas/pardot/v1/json/users.json
create mode 100644 _data/taps/schemas/pardot/v1/json/visitor_activities.json
create mode 100644 _data/taps/schemas/pardot/v1/json/visitors.json
create mode 100644 _data/taps/schemas/pardot/v1/json/visits.json
create mode 100644 _data/taps/schemas/pardot/v1/pardot-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/pardot/v1/pardot-v1-tables.yml
create mode 100644 _data/taps/schemas/pendo/v1/json/accounts.json
create mode 100644 _data/taps/schemas/pendo/v1/json/events.json
create mode 100644 _data/taps/schemas/pendo/v1/json/feature_events.json
create mode 100644 _data/taps/schemas/pendo/v1/json/features.json
create mode 100644 _data/taps/schemas/pendo/v1/json/guide_events.json
create mode 100644 _data/taps/schemas/pendo/v1/json/guides.json
create mode 100644 _data/taps/schemas/pendo/v1/json/metadata_accounts.json
create mode 100644 _data/taps/schemas/pendo/v1/json/metadata_visitors.json
create mode 100644 _data/taps/schemas/pendo/v1/json/page_events.json
create mode 100644 _data/taps/schemas/pendo/v1/json/pages.json
create mode 100644 _data/taps/schemas/pendo/v1/json/poll_events.json
create mode 100644 _data/taps/schemas/pendo/v1/json/track_events.json
create mode 100644 _data/taps/schemas/pendo/v1/json/track_types.json
create mode 100644 _data/taps/schemas/pendo/v1/json/visitor_history.json
create mode 100644 _data/taps/schemas/pendo/v1/json/visitors.json
create mode 100644 _data/taps/schemas/pendo/v1/pendo-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/pendo/v1/pendo-v1-tables.yml
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_advanced.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_banner.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_coupon.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_generic.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_performance.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_performance_by_publisher.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_product.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_promotion.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/creative_text.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/group.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/group_member.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/itemized_list.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/itemized_list_product.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/publisher.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/publisher_performance.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/term.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/transaction_details.json
create mode 100644 _data/taps/schemas/pepperjam/v1/json/transaction_history.json
create mode 100644 _data/taps/schemas/pepperjam/v1/pepperjam-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/pepperjam/v1/pepperjam-v1-tables.yml
create mode 100644 _data/taps/schemas/pipedrive/v1/json/activities.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/activity_types.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/currency.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/deal_fields.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/deal_products.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/dealflow.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/deals.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/files.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/filters.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/notes.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/organizations.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/persons.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/pipelines.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/products.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/stages.json
create mode 100644 _data/taps/schemas/pipedrive/v1/json/users.json
create mode 100644 _data/taps/schemas/pipedrive/v1/pipedrive-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/pipedrive/v1/pipedrive-v1-tables.yml
create mode 100644 _data/taps/schemas/quickbooks/v1/json/accounts.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/bill_payments.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/bills.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/budgets.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/classes.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/credit_memos.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/customers.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/deleted_objects.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/departments.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/deposits.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/employees.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/estimates.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/invoices.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/items.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/journal_entries.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/payment_methods.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/payments.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/profit_loss_report.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/purchase_orders.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/purchases.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/refund_receipts.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/sales_receipts.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/tax_agencies.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/tax_codes.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/tax_rates.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/terms.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/time_activities.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/transfers.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/vendor_credits.json
create mode 100644 _data/taps/schemas/quickbooks/v1/json/vendors.json
create mode 100644 _data/taps/schemas/quickbooks/v1/quickbooks-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/quickbooks/v1/quickbooks-v1-tables.yml
create mode 100644 _data/taps/schemas/quickbooks/v2/json/accounts.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/bill_payments.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/bills.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/budgets.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/classes.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/credit_memos.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/customer_types.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/customers.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/deleted_objects.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/departments.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/deposits.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/employees.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/estimates.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/invoices.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/items.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/journal_entries.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/payment_methods.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/payments.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/profit_loss_report.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/purchase_orders.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/purchases.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/refund_receipts.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/sales_receipts.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/tax_agencies.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/tax_codes.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/tax_rates.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/terms.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/time_activities.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/transfers.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/vendor_credits.json
create mode 100644 _data/taps/schemas/quickbooks/v2/json/vendors.json
create mode 100644 _data/taps/schemas/quickbooks/v2/quickbooks-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/quickbooks/v2/quickbooks-v2-tables.yml
create mode 100644 _data/taps/schemas/recharge/v1/json/addresses.json
create mode 100644 _data/taps/schemas/recharge/v1/json/charges.json
create mode 100644 _data/taps/schemas/recharge/v1/json/collections.json
create mode 100644 _data/taps/schemas/recharge/v1/json/customers.json
create mode 100644 _data/taps/schemas/recharge/v1/json/discounts.json
create mode 100644 _data/taps/schemas/recharge/v1/json/metafields_customer.json
create mode 100644 _data/taps/schemas/recharge/v1/json/metafields_store.json
create mode 100644 _data/taps/schemas/recharge/v1/json/metafields_subscription.json
create mode 100644 _data/taps/schemas/recharge/v1/json/onetimes.json
create mode 100644 _data/taps/schemas/recharge/v1/json/orders.json
create mode 100644 _data/taps/schemas/recharge/v1/json/products.json
create mode 100644 _data/taps/schemas/recharge/v1/json/shop.json
create mode 100644 _data/taps/schemas/recharge/v1/json/subscriptions.json
create mode 100644 _data/taps/schemas/recharge/v1/recharge-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/recharge/v1/recharge-v1-tables.yml
create mode 100644 _data/taps/schemas/recharge/v2/json/addresses.json
create mode 100644 _data/taps/schemas/recharge/v2/json/charges.json
create mode 100644 _data/taps/schemas/recharge/v2/json/collections.json
create mode 100644 _data/taps/schemas/recharge/v2/json/customers.json
create mode 100644 _data/taps/schemas/recharge/v2/json/discounts.json
create mode 100644 _data/taps/schemas/recharge/v2/json/metafields_customer.json
create mode 100644 _data/taps/schemas/recharge/v2/json/metafields_store.json
create mode 100644 _data/taps/schemas/recharge/v2/json/metafields_subscription.json
create mode 100644 _data/taps/schemas/recharge/v2/json/onetimes.json
create mode 100644 _data/taps/schemas/recharge/v2/json/orders.json
create mode 100644 _data/taps/schemas/recharge/v2/json/products.json
create mode 100644 _data/taps/schemas/recharge/v2/json/store.json
create mode 100644 _data/taps/schemas/recharge/v2/json/subscriptions.json
create mode 100644 _data/taps/schemas/recharge/v2/recharge-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/recharge/v2/recharge-v2-tables.yml
create mode 100644 _data/taps/schemas/recurly/v1/json/accounts.json
create mode 100644 _data/taps/schemas/recurly/v1/json/adjustments.json
create mode 100644 _data/taps/schemas/recurly/v1/json/billing_info.json
create mode 100644 _data/taps/schemas/recurly/v1/json/coupon_redemptions.json
create mode 100644 _data/taps/schemas/recurly/v1/json/coupons.json
create mode 100644 _data/taps/schemas/recurly/v1/json/invoices.json
create mode 100644 _data/taps/schemas/recurly/v1/json/plans.json
create mode 100644 _data/taps/schemas/recurly/v1/json/plans_add_ons.json
create mode 100644 _data/taps/schemas/recurly/v1/json/subscriptions.json
create mode 100644 _data/taps/schemas/recurly/v1/json/transactions.json
create mode 100644 _data/taps/schemas/recurly/v1/recurly-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/recurly/v1/recurly-v1-tables.yml
create mode 100644 _data/taps/schemas/referral-saasquatch/v1/json/referrals.json
create mode 100644 _data/taps/schemas/referral-saasquatch/v1/json/reward_balances.json
create mode 100644 _data/taps/schemas/referral-saasquatch/v1/json/users.json
create mode 100644 _data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-tables.yml
create mode 100644 _data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot.json
create mode 100644 _data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_site.json
create mode 100644 _data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_time.json
create mode 100644 _data/taps/schemas/revinate/v1/json/hotels.json
create mode 100644 _data/taps/schemas/revinate/v1/json/reviews.json
create mode 100644 _data/taps/schemas/revinate/v1/revinate-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/revinate/v1/revinate-v1-tables.yml
create mode 100644 _data/taps/schemas/ringcentral/v1/json/call_log.json
create mode 100644 _data/taps/schemas/ringcentral/v1/json/company_call_log.json
create mode 100644 _data/taps/schemas/ringcentral/v1/json/contacts.json
create mode 100644 _data/taps/schemas/ringcentral/v1/json/messages.json
create mode 100644 _data/taps/schemas/ringcentral/v1/ringcentral-v1-tables.yml
create mode 100644 _data/taps/schemas/saasoptics/v1/json/accounts.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/auto_renewal_profiles.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/billing_descriptions.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/billing_methods.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/contracts.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/country_codes.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/currency_codes.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/customers.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/deleted_contracts.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/deleted_invoices.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/deleted_revenue_entries.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/deleted_transactions.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/invoices.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/items.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/payment_terms.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/registers.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/revenue_entries.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/revenue_recognition_methods.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/sales_orders.json
create mode 100644 _data/taps/schemas/saasoptics/v1/json/transactions.json
create mode 100644 _data/taps/schemas/saasoptics/v1/saasoptics-v1-tables.yml
create mode 100644 _data/taps/schemas/sailthru/v1/json/ad_targeter_plans.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/blast_query.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/blast_repeats.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/blast_save_list.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/blasts.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/lists.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/purchase_log.json
create mode 100644 _data/taps/schemas/sailthru/v1/json/users.json
create mode 100644 _data/taps/schemas/sailthru/v1/sailthru-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/sailthru/v1/sailthru-v1-tables.yml
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/content_areas.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/data_extension.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/emails.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/events.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/folders.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/list_sends.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/list_subscribers.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/lists.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/sends.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/json/subscribers.json
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-tables.yml
create mode 100644 _data/taps/schemas/salesforce/v1/json/account.json
create mode 100644 _data/taps/schemas/salesforce/v1/json/contact.json
create mode 100644 _data/taps/schemas/salesforce/v1/json/lead.json
create mode 100644 _data/taps/schemas/salesforce/v1/json/opportunity.json
create mode 100644 _data/taps/schemas/salesforce/v1/json/user.json
create mode 100644 _data/taps/schemas/salesforce/v1/salesforce-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/salesforce/v1/salesforce-v1-tables.yml
create mode 100644 _data/taps/schemas/salesforce/v2/json/account.json
create mode 100644 _data/taps/schemas/salesforce/v2/json/contact.json
create mode 100644 _data/taps/schemas/salesforce/v2/json/lead.json
create mode 100644 _data/taps/schemas/salesforce/v2/json/opportunity.json
create mode 100644 _data/taps/schemas/salesforce/v2/json/user.json
create mode 100644 _data/taps/schemas/salesforce/v2/salesforce-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/salesforce/v2/salesforce-v2-tables.yml
create mode 100644 _data/taps/schemas/selligent/v1/json/campaign.json
create mode 100644 _data/taps/schemas/selligent/v1/json/internal_datasource.json
create mode 100644 _data/taps/schemas/selligent/v1/json/owner.json
create mode 100644 _data/taps/schemas/selligent/v1/json/program.json
create mode 100644 _data/taps/schemas/selligent/v1/json/source.json
create mode 100644 _data/taps/schemas/selligent/v1/json/transactional_mailing.json
create mode 100644 _data/taps/schemas/selligent/v1/selligent-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/selligent/v1/selligent-v1-tables.yml
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/blocks.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/bounces.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/contacts.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/global_suppressions.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/groups_all.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/groups_members.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/invalids.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/lists_all.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/lists_members.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/segments_all.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/segments_members.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/spam_reports.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/json/templates_all.json
create mode 100644 _data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-tables.yml
create mode 100644 _data/taps/schemas/shiphero/v1/json/orders.json
create mode 100644 _data/taps/schemas/shiphero/v1/json/products.json
create mode 100644 _data/taps/schemas/shiphero/v1/json/shipments.json
create mode 100644 _data/taps/schemas/shiphero/v1/json/vendors.json
create mode 100644 _data/taps/schemas/shiphero/v1/shiphero-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/shiphero/v1/shiphero-v1-tables.yml
create mode 100644 _data/taps/schemas/shippo/v1/json/addresses.json
create mode 100644 _data/taps/schemas/shippo/v1/json/parcels.json
create mode 100644 _data/taps/schemas/shippo/v1/json/refunds.json
create mode 100644 _data/taps/schemas/shippo/v1/json/shipments.json
create mode 100644 _data/taps/schemas/shippo/v1/json/transactions.json
create mode 100644 _data/taps/schemas/shippo/v1/shippo-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/shippo/v1/shippo-v1-tables.yml
create mode 100644 _data/taps/schemas/shopify/v1/json/abandoned_checkouts.json
create mode 100644 _data/taps/schemas/shopify/v1/json/collects.json
create mode 100644 _data/taps/schemas/shopify/v1/json/custom_collections.json
create mode 100644 _data/taps/schemas/shopify/v1/json/customers.json
create mode 100644 _data/taps/schemas/shopify/v1/json/events.json
create mode 100644 _data/taps/schemas/shopify/v1/json/inventory_items.json
create mode 100644 _data/taps/schemas/shopify/v1/json/inventory_levels.json
create mode 100644 _data/taps/schemas/shopify/v1/json/locations.json
create mode 100644 _data/taps/schemas/shopify/v1/json/metafields.json
create mode 100644 _data/taps/schemas/shopify/v1/json/order_refunds.json
create mode 100644 _data/taps/schemas/shopify/v1/json/orders.json
create mode 100644 _data/taps/schemas/shopify/v1/json/products.json
create mode 100644 _data/taps/schemas/shopify/v1/json/transactions.json
create mode 100644 _data/taps/schemas/shopify/v1/shopify-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/shopify/v1/shopify-v1-tables.yml
create mode 100644 _data/taps/schemas/slack/v1/json/channel_members.json
create mode 100644 _data/taps/schemas/slack/v1/json/channels.json
create mode 100644 _data/taps/schemas/slack/v1/json/files.json
create mode 100644 _data/taps/schemas/slack/v1/json/messages.json
create mode 100644 _data/taps/schemas/slack/v1/json/remote_files.json
create mode 100644 _data/taps/schemas/slack/v1/json/teams.json
create mode 100644 _data/taps/schemas/slack/v1/json/threads.json
create mode 100644 _data/taps/schemas/slack/v1/json/user_groups.json
create mode 100644 _data/taps/schemas/slack/v1/json/users.json
create mode 100644 _data/taps/schemas/slack/v1/slack-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/slack/v1/slack-v1-tables.yml
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_daily.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_hourly.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_accounts.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_daily.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_hourly.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_squads.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_stats_daily.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ad_stats_hourly.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/ads.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/audience_segments.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/billing_centers.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/campaign_stats_daily.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/campaign_stats_hourly.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/creatives.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/funding_sources.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/media.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/members.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/organizations.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/phone_numbers.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/pixel_domain_stats.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/pixels.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/product_catalogs.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/product_sets.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/roles.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_advanced_demographics.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_age_groups.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_android_versions.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_carriers.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_connection_types.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_countries.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_device_makes.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_genders.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxc.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxp.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxs.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_interests_nln.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_interests_plc.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_interests_scls.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_ios_versions.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_languages.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_location_categories.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_metros.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_os_types.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_postal_codes.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/json/targeting_regions.json
create mode 100644 _data/taps/schemas/snapchat-ads/v1/snapchat-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/square/v1/json/bank_accounts.json
create mode 100644 _data/taps/schemas/square/v1/json/cash_drawer_shifts.json
create mode 100644 _data/taps/schemas/square/v1/json/categories.json
create mode 100644 _data/taps/schemas/square/v1/json/customers.json
create mode 100644 _data/taps/schemas/square/v1/json/discounts.json
create mode 100644 _data/taps/schemas/square/v1/json/employees.json
create mode 100644 _data/taps/schemas/square/v1/json/inventories.json
create mode 100644 _data/taps/schemas/square/v1/json/items.json
create mode 100644 _data/taps/schemas/square/v1/json/locations.json
create mode 100644 _data/taps/schemas/square/v1/json/modifier_lists.json
create mode 100644 _data/taps/schemas/square/v1/json/orders.json
create mode 100644 _data/taps/schemas/square/v1/json/payments.json
create mode 100644 _data/taps/schemas/square/v1/json/refunds.json
create mode 100644 _data/taps/schemas/square/v1/json/roles.json
create mode 100644 _data/taps/schemas/square/v1/json/settlements.json
create mode 100644 _data/taps/schemas/square/v1/json/shifts.json
create mode 100644 _data/taps/schemas/square/v1/json/taxes.json
create mode 100644 _data/taps/schemas/square/v1/square-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/square/v1/square-v1-tables.yml
create mode 100644 _data/taps/schemas/square/v2/json/bank_accounts.json
create mode 100644 _data/taps/schemas/square/v2/json/cash_drawer_shifts.json
create mode 100644 _data/taps/schemas/square/v2/json/categories.json
create mode 100644 _data/taps/schemas/square/v2/json/customers.json
create mode 100644 _data/taps/schemas/square/v2/json/discounts.json
create mode 100644 _data/taps/schemas/square/v2/json/inventories.json
create mode 100644 _data/taps/schemas/square/v2/json/items.json
create mode 100644 _data/taps/schemas/square/v2/json/locations.json
create mode 100644 _data/taps/schemas/square/v2/json/modifier_lists.json
create mode 100644 _data/taps/schemas/square/v2/json/orders.json
create mode 100644 _data/taps/schemas/square/v2/json/payments.json
create mode 100644 _data/taps/schemas/square/v2/json/payouts.json
create mode 100644 _data/taps/schemas/square/v2/json/refunds.json
create mode 100644 _data/taps/schemas/square/v2/json/roles.json
create mode 100644 _data/taps/schemas/square/v2/json/shifts.json
create mode 100644 _data/taps/schemas/square/v2/json/taxes.json
create mode 100644 _data/taps/schemas/square/v2/json/team_members.json
create mode 100644 _data/taps/schemas/square/v2/square-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/square/v2/square-v2-tables.yml
create mode 100644 _data/taps/schemas/stripe/v1/json/balance_transactions.json
create mode 100644 _data/taps/schemas/stripe/v1/json/charges.json
create mode 100644 _data/taps/schemas/stripe/v1/json/coupons.json
create mode 100644 _data/taps/schemas/stripe/v1/json/customers.json
create mode 100644 _data/taps/schemas/stripe/v1/json/disputes.json
create mode 100644 _data/taps/schemas/stripe/v1/json/events.json
create mode 100644 _data/taps/schemas/stripe/v1/json/invoice_items.json
create mode 100644 _data/taps/schemas/stripe/v1/json/invoice_line_items.json
create mode 100644 _data/taps/schemas/stripe/v1/json/invoices.json
create mode 100644 _data/taps/schemas/stripe/v1/json/payout_transactions.json
create mode 100644 _data/taps/schemas/stripe/v1/json/payouts.json
create mode 100644 _data/taps/schemas/stripe/v1/json/plans.json
create mode 100644 _data/taps/schemas/stripe/v1/json/products.json
create mode 100644 _data/taps/schemas/stripe/v1/json/subscription_items.json
create mode 100644 _data/taps/schemas/stripe/v1/json/subscriptions.json
create mode 100644 _data/taps/schemas/stripe/v1/json/transfers.json
create mode 100644 _data/taps/schemas/stripe/v1/stripe-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/stripe/v1/stripe-v1-tables.yml
create mode 100644 _data/taps/schemas/stripe/v2/json/balance_transactions.json
create mode 100644 _data/taps/schemas/stripe/v2/json/charges.json
create mode 100644 _data/taps/schemas/stripe/v2/json/coupons.json
create mode 100644 _data/taps/schemas/stripe/v2/json/customers.json
create mode 100644 _data/taps/schemas/stripe/v2/json/disputes.json
create mode 100644 _data/taps/schemas/stripe/v2/json/events.json
create mode 100644 _data/taps/schemas/stripe/v2/json/invoice_items.json
create mode 100644 _data/taps/schemas/stripe/v2/json/invoice_line_items.json
create mode 100644 _data/taps/schemas/stripe/v2/json/invoices.json
create mode 100644 _data/taps/schemas/stripe/v2/json/payment_intents.json
create mode 100644 _data/taps/schemas/stripe/v2/json/payout_transactions.json
create mode 100644 _data/taps/schemas/stripe/v2/json/payouts.json
create mode 100644 _data/taps/schemas/stripe/v2/json/plans.json
create mode 100644 _data/taps/schemas/stripe/v2/json/products.json
create mode 100644 _data/taps/schemas/stripe/v2/json/subscription_items.json
create mode 100644 _data/taps/schemas/stripe/v2/json/subscriptions.json
create mode 100644 _data/taps/schemas/stripe/v2/json/transfers.json
create mode 100644 _data/taps/schemas/stripe/v2/stripe-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/stripe/v2/stripe-v2-tables.yml
create mode 100644 _data/taps/schemas/stripe/v3/json/balance_transactions.json
create mode 100644 _data/taps/schemas/stripe/v3/json/charges.json
create mode 100644 _data/taps/schemas/stripe/v3/json/coupons.json
create mode 100644 _data/taps/schemas/stripe/v3/json/customers.json
create mode 100644 _data/taps/schemas/stripe/v3/json/disputes.json
create mode 100644 _data/taps/schemas/stripe/v3/json/events.json
create mode 100644 _data/taps/schemas/stripe/v3/json/invoice_items.json
create mode 100644 _data/taps/schemas/stripe/v3/json/invoice_line_items.json
create mode 100644 _data/taps/schemas/stripe/v3/json/invoices.json
create mode 100644 _data/taps/schemas/stripe/v3/json/payment_intents.json
create mode 100644 _data/taps/schemas/stripe/v3/json/payout_transactions.json
create mode 100644 _data/taps/schemas/stripe/v3/json/payouts.json
create mode 100644 _data/taps/schemas/stripe/v3/json/plans.json
create mode 100644 _data/taps/schemas/stripe/v3/json/products.json
create mode 100644 _data/taps/schemas/stripe/v3/json/subscription_items.json
create mode 100644 _data/taps/schemas/stripe/v3/json/subscriptions.json
create mode 100644 _data/taps/schemas/stripe/v3/json/transfers.json
create mode 100644 _data/taps/schemas/stripe/v3/stripe-v3-foreign-keys.yml
create mode 100644 _data/taps/schemas/stripe/v3/stripe-v3-tables.yml
create mode 100644 _data/taps/schemas/surveymonkey/v1/json/responses.json
create mode 100644 _data/taps/schemas/surveymonkey/v1/json/simplified_responses.json
create mode 100644 _data/taps/schemas/surveymonkey/v1/json/survey_details.json
create mode 100644 _data/taps/schemas/surveymonkey/v1/surveymonkey-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/surveymonkey/v1/surveymonkey-v1-tables.yml
create mode 100644 _data/taps/schemas/surveymonkey/v2/json/responses.json
create mode 100644 _data/taps/schemas/surveymonkey/v2/json/simplified_responses.json
create mode 100644 _data/taps/schemas/surveymonkey/v2/json/survey_details.json
create mode 100644 _data/taps/schemas/surveymonkey/v2/json/surveys.json
create mode 100644 _data/taps/schemas/surveymonkey/v2/surveymonkey-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/surveymonkey/v2/surveymonkey-v2-tables.yml
create mode 100644 _data/taps/schemas/taboola/v1/json/campaign.json
create mode 100644 _data/taps/schemas/taboola/v1/json/campaign_performance.json
create mode 100644 _data/taps/schemas/taboola/v1/taboola-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/taboola/v1/taboola-v1-tables.yml
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/ad_insights.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_age_and_gender.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_country.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_platform.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/adgroups.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/ads.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/advertisers.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/campaign_insights_by_province.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/tiktok-ads/v1/tiktok-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/toggl/v1/json/clients.json
create mode 100644 _data/taps/schemas/toggl/v1/json/groups.json
create mode 100644 _data/taps/schemas/toggl/v1/json/projects.json
create mode 100644 _data/taps/schemas/toggl/v1/json/tags.json
create mode 100644 _data/taps/schemas/toggl/v1/json/tasks.json
create mode 100644 _data/taps/schemas/toggl/v1/json/time_entries.json
create mode 100644 _data/taps/schemas/toggl/v1/json/users.json
create mode 100644 _data/taps/schemas/toggl/v1/json/workspace_users.json
create mode 100644 _data/taps/schemas/toggl/v1/json/workspaces.json
create mode 100644 _data/taps/schemas/toggl/v1/toggl-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/toggl/v1/toggl-v1-tables.yml
create mode 100644 _data/taps/schemas/trello/v1/json/actions.json
create mode 100644 _data/taps/schemas/trello/v1/json/boards.json
create mode 100644 _data/taps/schemas/trello/v1/json/cards.json
create mode 100644 _data/taps/schemas/trello/v1/json/checklists.json
create mode 100644 _data/taps/schemas/trello/v1/json/lists.json
create mode 100644 _data/taps/schemas/trello/v1/json/users.json
create mode 100644 _data/taps/schemas/trello/v1/trello-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/trello/v1/trello-v1-tables.yml
create mode 100644 _data/taps/schemas/twilio/v1/json/account_balance.json
create mode 100644 _data/taps/schemas/twilio/v1/json/accounts.json
create mode 100644 _data/taps/schemas/twilio/v1/json/addresses.json
create mode 100644 _data/taps/schemas/twilio/v1/json/alerts.json
create mode 100644 _data/taps/schemas/twilio/v1/json/applications.json
create mode 100644 _data/taps/schemas/twilio/v1/json/available_phone_number_countries.json
create mode 100644 _data/taps/schemas/twilio/v1/json/available_phone_numbers_local.json
create mode 100644 _data/taps/schemas/twilio/v1/json/available_phone_numbers_mobile.json
create mode 100644 _data/taps/schemas/twilio/v1/json/available_phone_numbers_toll_free.json
create mode 100644 _data/taps/schemas/twilio/v1/json/calls.json
create mode 100644 _data/taps/schemas/twilio/v1/json/conference_participants.json
create mode 100644 _data/taps/schemas/twilio/v1/json/conferences.json
create mode 100644 _data/taps/schemas/twilio/v1/json/dependent_phone_numbers.json
create mode 100644 _data/taps/schemas/twilio/v1/json/incoming_phone_numbers.json
create mode 100644 _data/taps/schemas/twilio/v1/json/keys.json
create mode 100644 _data/taps/schemas/twilio/v1/json/message_media.json
create mode 100644 _data/taps/schemas/twilio/v1/json/messages.json
create mode 100644 _data/taps/schemas/twilio/v1/json/outgoing_caller_ids.json
create mode 100644 _data/taps/schemas/twilio/v1/json/queues.json
create mode 100644 _data/taps/schemas/twilio/v1/json/recordings.json
create mode 100644 _data/taps/schemas/twilio/v1/json/transcriptions.json
create mode 100644 _data/taps/schemas/twilio/v1/json/usage_records.json
create mode 100644 _data/taps/schemas/twilio/v1/json/usage_triggers.json
create mode 100644 _data/taps/schemas/twilio/v1/twilio-v1-tables.yml
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/account_media.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/accounts.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/advertiser_business_categories.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/campaigns.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/cards.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/cards_image_conversation.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/cards_poll.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/cards_video_conversation.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/content_categories.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/example-custom-report.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/funding_instruments.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/iab_categories.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/line_item_apps.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/line_items.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/media_creatives.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/preroll_call_to_actions.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/promotable_users.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/promoted_accounts.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/promoted_tweets.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/scheduled_promoted_tweets.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/tailored_audiences.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_app_store_categories.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_conversations.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_criteria.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_devices.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_events.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_interests.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_languages.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_locations.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_network_operators.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_platform_versions.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_platforms.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_tv_markets.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/targeting_tv_shows.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/tracking_tags.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/json/tweets.json
create mode 100644 _data/taps/schemas/twitter-ads/v1/twitter-ads-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/twitter-ads/v1/twitter-ads-v1-tables.yml
create mode 100644 _data/taps/schemas/typeform/v1/json/answers.json
create mode 100644 _data/taps/schemas/typeform/v1/json/forms.json
create mode 100644 _data/taps/schemas/typeform/v1/json/landings.json
create mode 100644 _data/taps/schemas/typeform/v1/json/questions.json
create mode 100644 _data/taps/schemas/typeform/v1/typeform-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/typeform/v1/typeform-v1-tables.yml
create mode 100644 _data/taps/schemas/typeform/v2/json/answers.json
create mode 100644 _data/taps/schemas/typeform/v2/json/forms.json
create mode 100644 _data/taps/schemas/typeform/v2/json/questions.json
create mode 100644 _data/taps/schemas/typeform/v2/json/submitted_landings.json
create mode 100644 _data/taps/schemas/typeform/v2/json/unsubmitted_landings.json
create mode 100644 _data/taps/schemas/typeform/v2/typeform-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/typeform/v2/typeform-v2-tables.yml
create mode 100644 _data/taps/schemas/ujet/v1/json/agent_activity_logs.json
create mode 100644 _data/taps/schemas/ujet/v1/json/agents.json
create mode 100644 _data/taps/schemas/ujet/v1/json/calls.json
create mode 100644 _data/taps/schemas/ujet/v1/json/chats.json
create mode 100644 _data/taps/schemas/ujet/v1/json/menu_tree.json
create mode 100644 _data/taps/schemas/ujet/v1/json/menus.json
create mode 100644 _data/taps/schemas/ujet/v1/json/team_tree.json
create mode 100644 _data/taps/schemas/ujet/v1/json/teams.json
create mode 100644 _data/taps/schemas/ujet/v1/json/user_statuses.json
create mode 100644 _data/taps/schemas/ujet/v1/ujet-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/ujet/v1/ujet-v1-tables.yml
create mode 100644 _data/taps/schemas/urban-airship/v1/json/channels.json
create mode 100644 _data/taps/schemas/urban-airship/v1/json/lists.json
create mode 100644 _data/taps/schemas/urban-airship/v1/json/named_users.json
create mode 100644 _data/taps/schemas/urban-airship/v1/json/segments.json
create mode 100644 _data/taps/schemas/urban-airship/v1/urban-airship-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/urban-airship/v1/urban-airship-v1-tables.yml
create mode 100644 _data/taps/schemas/uservoice/v1/json/categories.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/comments.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/external_accounts.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/external_users.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/feature_statuses.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/features.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/forums.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/labels.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/nps_ratings.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/product_areas.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/requests.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/segmented_values.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/segments.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/status_updates.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/statuses.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/suggestions.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/supporters.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/teams.json
create mode 100644 _data/taps/schemas/uservoice/v1/json/users.json
create mode 100644 _data/taps/schemas/uservoice/v1/uservoice-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/uservoice/v1/uservoice-v1-tables.yml
create mode 100644 _data/taps/schemas/wootric/v1/json/declines.json
create mode 100644 _data/taps/schemas/wootric/v1/json/end_users.json
create mode 100644 _data/taps/schemas/wootric/v1/json/responses.json
create mode 100644 _data/taps/schemas/wootric/v1/wootric-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/wootric/v1/wootric-v1-tables.yml
create mode 100644 _data/taps/schemas/xero/v1/json/accounts.json
create mode 100644 _data/taps/schemas/xero/v1/json/attachments.json
create mode 100644 _data/taps/schemas/xero/v1/json/bank_transactions.json
create mode 100644 _data/taps/schemas/xero/v1/json/bank_transfers.json
create mode 100644 _data/taps/schemas/xero/v1/json/branding_themes.json
create mode 100644 _data/taps/schemas/xero/v1/json/contact_groups.json
create mode 100644 _data/taps/schemas/xero/v1/json/contacts.json
create mode 100644 _data/taps/schemas/xero/v1/json/credit_notes.json
create mode 100644 _data/taps/schemas/xero/v1/json/currencies.json
create mode 100644 _data/taps/schemas/xero/v1/json/employees.json
create mode 100644 _data/taps/schemas/xero/v1/json/expense_claims.json
create mode 100644 _data/taps/schemas/xero/v1/json/invoices.json
create mode 100644 _data/taps/schemas/xero/v1/json/items.json
create mode 100644 _data/taps/schemas/xero/v1/json/journals.json
create mode 100644 _data/taps/schemas/xero/v1/json/linked_transactions.json
create mode 100644 _data/taps/schemas/xero/v1/json/manual_journals.json
create mode 100644 _data/taps/schemas/xero/v1/json/organisations.json
create mode 100644 _data/taps/schemas/xero/v1/json/overpayments.json
create mode 100644 _data/taps/schemas/xero/v1/json/payments.json
create mode 100644 _data/taps/schemas/xero/v1/json/prepayments.json
create mode 100644 _data/taps/schemas/xero/v1/json/purchase_orders.json
create mode 100644 _data/taps/schemas/xero/v1/json/receipts.json
create mode 100644 _data/taps/schemas/xero/v1/json/repeating_invoices.json
create mode 100644 _data/taps/schemas/xero/v1/json/tax_rates.json
create mode 100644 _data/taps/schemas/xero/v1/json/tracking_categories.json
create mode 100644 _data/taps/schemas/xero/v1/json/users.json
create mode 100644 _data/taps/schemas/xero/v1/json/validation_errors.json
create mode 100644 _data/taps/schemas/xero/v1/xero-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/xero/v1/xero-v1-tables.yml
create mode 100644 _data/taps/schemas/xero/v2/json/accounts.json
create mode 100644 _data/taps/schemas/xero/v2/json/bank_transactions.json
create mode 100644 _data/taps/schemas/xero/v2/json/bank_transfers.json
create mode 100644 _data/taps/schemas/xero/v2/json/branding_themes.json
create mode 100644 _data/taps/schemas/xero/v2/json/contact_groups.json
create mode 100644 _data/taps/schemas/xero/v2/json/contacts.json
create mode 100644 _data/taps/schemas/xero/v2/json/credit_notes.json
create mode 100644 _data/taps/schemas/xero/v2/json/currencies.json
create mode 100644 _data/taps/schemas/xero/v2/json/employees.json
create mode 100644 _data/taps/schemas/xero/v2/json/expense_claims.json
create mode 100644 _data/taps/schemas/xero/v2/json/invoices.json
create mode 100644 _data/taps/schemas/xero/v2/json/items.json
create mode 100644 _data/taps/schemas/xero/v2/json/journals.json
create mode 100644 _data/taps/schemas/xero/v2/json/linked_transactions.json
create mode 100644 _data/taps/schemas/xero/v2/json/manual_journals.json
create mode 100644 _data/taps/schemas/xero/v2/json/organisations.json
create mode 100644 _data/taps/schemas/xero/v2/json/overpayments.json
create mode 100644 _data/taps/schemas/xero/v2/json/payments.json
create mode 100644 _data/taps/schemas/xero/v2/json/prepayments.json
create mode 100644 _data/taps/schemas/xero/v2/json/purchase_orders.json
create mode 100644 _data/taps/schemas/xero/v2/json/quotes.json
create mode 100644 _data/taps/schemas/xero/v2/json/receipts.json
create mode 100644 _data/taps/schemas/xero/v2/json/repeating_invoices.json
create mode 100644 _data/taps/schemas/xero/v2/json/tax_rates.json
create mode 100644 _data/taps/schemas/xero/v2/json/tracking_categories.json
create mode 100644 _data/taps/schemas/xero/v2/json/users.json
create mode 100644 _data/taps/schemas/xero/v2/xero-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/xero/v2/xero-v2-tables.yml
create mode 100644 _data/taps/schemas/yotpo/v1/json/emails.json
create mode 100644 _data/taps/schemas/yotpo/v1/json/product_reviews.json
create mode 100644 _data/taps/schemas/yotpo/v1/json/products.json
create mode 100644 _data/taps/schemas/yotpo/v1/json/reviews.json
create mode 100644 _data/taps/schemas/yotpo/v1/json/unsubscribers.json
create mode 100644 _data/taps/schemas/yotpo/v1/yotpo-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/yotpo/v1/yotpo-v1-tables.yml
create mode 100644 _data/taps/schemas/yotpo/v2/json/collections.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/emails.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/order_fulfillments.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/orders.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/product_reviews.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/product_variants.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/products.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/reviews.json
create mode 100644 _data/taps/schemas/yotpo/v2/json/unsubscribers.json
create mode 100644 _data/taps/schemas/yotpo/v2/yotpo-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/yotpo/v2/yotpo-v2-tables.yml
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/account.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/agents.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/bans.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/chats.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/departments.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/goals.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/shortcuts.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/json/triggers.json
create mode 100644 _data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-tables.yml
create mode 100644 _data/taps/schemas/zendesk/v1/json/group_memberships.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/groups.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/macros.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/organizations.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/satisfaction_ratings.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/sla_policies.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/tags.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/ticket_audits.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/ticket_comments.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/ticket_fields.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/ticket_forms.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/ticket_metrics.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/tickets.json
create mode 100644 _data/taps/schemas/zendesk/v1/json/users.json
create mode 100644 _data/taps/schemas/zendesk/v1/zendesk-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/zendesk/v1/zendesk-v1-tables.yml
create mode 100644 _data/taps/schemas/zendesk/v2/json/group_memberships.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/groups.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/macros.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/organizations.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/satisfaction_ratings.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/sla_policies.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/tags.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/talk_phone_numbers.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/ticket_audits.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/ticket_comments.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/ticket_fields.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/ticket_forms.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/ticket_metric_events.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/ticket_metrics.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/tickets.json
create mode 100644 _data/taps/schemas/zendesk/v2/json/users.json
create mode 100644 _data/taps/schemas/zendesk/v2/zendesk-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/zendesk/v2/zendesk-v2-tables.yml
create mode 100644 _data/taps/schemas/zoom/v1/json/meeting_files.json
create mode 100644 _data/taps/schemas/zoom/v1/json/meeting_poll_results.json
create mode 100644 _data/taps/schemas/zoom/v1/json/meeting_polls.json
create mode 100644 _data/taps/schemas/zoom/v1/json/meeting_questions.json
create mode 100644 _data/taps/schemas/zoom/v1/json/meeting_registrants.json
create mode 100644 _data/taps/schemas/zoom/v1/json/meetings.json
create mode 100644 _data/taps/schemas/zoom/v1/json/report_meeting_participants.json
create mode 100644 _data/taps/schemas/zoom/v1/json/report_meetings.json
create mode 100644 _data/taps/schemas/zoom/v1/json/report_webinar_participants.json
create mode 100644 _data/taps/schemas/zoom/v1/json/report_webinars.json
create mode 100644 _data/taps/schemas/zoom/v1/json/users.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_absentees.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_files.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_panelists.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_poll_results.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_polls.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_qna_results.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_questions.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_registrants.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinar_tracking_sources.json
create mode 100644 _data/taps/schemas/zoom/v1/json/webinars.json
create mode 100644 _data/taps/schemas/zoom/v1/zoom-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/zoom/v1/zoom-v1-tables.yml
create mode 100644 _data/taps/schemas/zoom/v2/json/meeting_poll_results.json
create mode 100644 _data/taps/schemas/zoom/v2/json/meeting_polls.json
create mode 100644 _data/taps/schemas/zoom/v2/json/meeting_questions.json
create mode 100644 _data/taps/schemas/zoom/v2/json/meeting_registrants.json
create mode 100644 _data/taps/schemas/zoom/v2/json/meetings.json
create mode 100644 _data/taps/schemas/zoom/v2/json/report_meeting_participants.json
create mode 100644 _data/taps/schemas/zoom/v2/json/report_meetings.json
create mode 100644 _data/taps/schemas/zoom/v2/json/report_webinar_participants.json
create mode 100644 _data/taps/schemas/zoom/v2/json/report_webinars.json
create mode 100644 _data/taps/schemas/zoom/v2/json/users.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_absentees.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_panelists.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_poll_results.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_polls.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_qna_results.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_questions.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_registrants.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinar_tracking_sources.json
create mode 100644 _data/taps/schemas/zoom/v2/json/webinars.json
create mode 100644 _data/taps/schemas/zoom/v2/zoom-v2-foreign-keys.yml
create mode 100644 _data/taps/schemas/zoom/v2/zoom-v2-tables.yml
create mode 100644 _data/taps/schemas/zuora/v1/json/Account.json
create mode 100644 _data/taps/schemas/zuora/v1/json/AccountingCode.json
create mode 100644 _data/taps/schemas/zuora/v1/json/AccountingPeriod.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Amendment.json
create mode 100644 _data/taps/schemas/zuora/v1/json/BillingRun.json
create mode 100644 _data/taps/schemas/zuora/v1/json/CommunicationProfile.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Contact.json
create mode 100644 _data/taps/schemas/zuora/v1/json/ContactSnapshot.json
create mode 100644 _data/taps/schemas/zuora/v1/json/CreditBalanceAdjustment.json
create mode 100644 _data/taps/schemas/zuora/v1/json/DiscountAppliedMetrics.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Export.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Import.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Invoice.json
create mode 100644 _data/taps/schemas/zuora/v1/json/InvoiceItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/InvoiceItemAdjustment.json
create mode 100644 _data/taps/schemas/zuora/v1/json/JournalEntry.json
create mode 100644 _data/taps/schemas/zuora/v1/json/JournalEntryItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/JournalRun.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Payment.json
create mode 100644 _data/taps/schemas/zuora/v1/json/PaymentRun.json
create mode 100644 _data/taps/schemas/zuora/v1/json/ProcessedUsage.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Product.json
create mode 100644 _data/taps/schemas/zuora/v1/json/ProductRatePlan.json
create mode 100644 _data/taps/schemas/zuora/v1/json/ProductRatePlanCharge.json
create mode 100644 _data/taps/schemas/zuora/v1/json/ProductRatePlanChargeTier.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RatePlan.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RatePlanChargeTier.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Refund.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueChargeSummaryItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueEventItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItemAdjustment.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueScheduleItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItem.json
create mode 100644 _data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItemAdjustment.json
create mode 100644 _data/taps/schemas/zuora/v1/json/Subscription.json
create mode 100644 _data/taps/schemas/zuora/v1/zuora-v1-foreign-keys.yml
create mode 100644 _data/taps/schemas/zuora/v1/zuora-v1-issues.txt
create mode 100644 _data/taps/schemas/zuora/v1/zuora-v1-tables.yml
create mode 100644 _includes/integrations/templates/schemas/schemas-table.html
create mode 100644 _includes/integrations/templates/schemas/schemas.html
delete mode 100644 _includes/integrations/templates/schemas/table-attributes.html
delete mode 100755 _includes/integrations/templates/schemas/table-schemas.html
delete mode 100644 _includes/integrations/templates/schemas/table-snapshot.html
create mode 100644 _layouts/new.html
rename _saas-integrations/sailthru/v1/{sailthru-v0.2.md => sailthru-v1.md} (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/inventory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/sku_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/stock_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/3plcentral/stock_summaries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/account_contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/account_custom_field_values.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/account_custom_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/addresses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/automation_blocks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/automations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/bounce_logs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/brandings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/calendars.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/campaign_links.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/campaign_lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/campaign_messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/configs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_automations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_conversions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_custom_field_options.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_custom_field_rels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_custom_field_values.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_custom_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_data.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_deals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_emails.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contact_tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/conversion_triggers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/conversions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deal_activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deal_custom_field_values.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deal_custom_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deal_group_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deal_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deal_stages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/deals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/ecommerce_connections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/ecommerce_customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/ecommerce_order_activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/ecommerce_order_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/ecommerce_orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/email_activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/foreign-keys.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/forms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/goals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/saved_responses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/scores.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/site_messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/sms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/task_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/templates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/activecampaign/v1/webhooks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/ad_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/ad_reports.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/advertisables.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/adroll/v1/segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/amplitude/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/amplitude/v1/merge_ids.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/appsflyer/in_app_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/appsflyer/installations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v1/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v1/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v1/workspaces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/portfolios.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/sections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/stories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/asana/v2/workspaces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/autopilot/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/autopilot/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/autopilot/lists.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/autopilot/lists_contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/autopilot/smart_segments.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/autopilot/smart_segments_contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/bigcommerce/coupons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bigcommerce/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bigcommerce/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bigcommerce/orders.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bigcommerce/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/accounts.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/ad_groups.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/ad_performance_report.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/adgroup_performance_report.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/ads.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/age_gender_performance_report.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/campaign_performance_report.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/campaigns.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/foreign-keys.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/geographic_performance_report.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/goals_and_funnels_report.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/keyword_performance_report.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v1/search_query_performance_report.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/accounts.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/ad_extension_detail_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/ad_group_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/ad_groups.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/ad_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/ads.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/age_gender_audience_report.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/audience_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/campaign_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/campaigns.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/geographic_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/goals_and_funnels_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/keyword_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/bing-ads/v2/search_query_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/braintree/transactions.yml (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/bronto/contact.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bronto/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bronto/inbound_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bronto/list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bronto/outbound_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/bronto/unsubscribe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-manager/sample_report_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_bounces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_clicks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_email_client_usage.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_opens.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_recipients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_spam_complaints.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_summary.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaign_unsubscribes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/foreign-keys.yml (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/list_active_subscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/list_bounced_subscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/list_deleted_subscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/list_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/list_unconfirmed_subscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/list_unsubscribed_subscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/campaign-monitor/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/addons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/coupons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/credit_notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/payment_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/20-05-2019/virtual_bank_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/addons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/coupons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/credit_notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/gifts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/item_families.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/item_prices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/payment_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/promotional_credit.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargebee/v1/virtual_bank_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/components.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/coupons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/price_points.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/product_families.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/statements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/chargify/v1/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/circle-ci/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/circle-ci/v1/jobs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/circle-ci/v1/pipelines.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/circle-ci/v1/workflows.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/custom_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/event_log.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/leads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/closeio/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/booking.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/booking_availability.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/check_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/checks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/discount_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_heat_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_heat_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_reservation_links.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_reservation_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_reservations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_rounds.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_statuses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_task_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/event_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/gift_card_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/heat_main.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/heat_main_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/heat_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/membership_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/memberships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/payments_voided.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/product_classes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/reservations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/taxes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/clubspeed/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/balance_sheets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/bank_account_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/bank_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/bank_statement_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/bank_statements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/bill_payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/bills.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/companies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/company_info.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/connections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/credit_notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/journal_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/profit_and_loss.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/suppliers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/codat/v1/tax_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_population_counties.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_population_states.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_population_states_age_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_states_acs_health_insurance.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_states_current.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_states_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_states_info.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/c19_trk_us_states_kff_hospital_beds.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/eu_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/eu_ecdc_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/italy_national_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/italy_provincial_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/italy_regional_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/jh_csse_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/neherlab_case_counts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/neherlab_country_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/neherlab_icu_capacity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/neherlab_population.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/nytimes_us_counties.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/covid-19/nytimes_us_states.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/crossbeam/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/crossbeam/v1/partner_populations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/crossbeam/v1/partners.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/crossbeam/v1/populations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/crossbeam/v1/thread_timelines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/crossbeam/v1/threads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/darksky/forecast.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/addresses.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/categories.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/comments.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/companies.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/company_periods.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/contacts.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/countries.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/custom_app_data.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/custom_field_data.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/custom_fields.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_agreement_history.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_agreements.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_appraisal.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_availability.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_contract_leave_rules.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_contracts.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_history.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_paycycle_returns.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_paycycles.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_roles.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_salary_opunit_costing.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employee_workplaces.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/employment_conditions.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/events.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/geo.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/journal.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/kiosks.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/leave_accruals.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/leave_pay_lines.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/leave_rules.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/leaves.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/memos.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/operational_units.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/pay_periods.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/pay_rules.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/public_holidays.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/roster_opens.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/roster_swaps.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/rosters.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/sales_data.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/schedules.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/sms_logs.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/states.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/stress_profiles.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/system_usage_balances.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/system_usage_tracking.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/task_group_setups.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/task_groups.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/task_opunit_configs.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/task_setups.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/tasks.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/teams.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/timesheet_pay_returns.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/timesheets.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/training_modules.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/training_records.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/deputy/v1/webhooks.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/dixa/v1/activity_logs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/dixa/v1/conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/dixa/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/dixa/v1/messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ebay/v1/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_bounceback.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_email_clickthrough.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_email_open.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_email_send.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_form_submit.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_page_view.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_subscribe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_unsubscribe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/activity_web_visit.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/assets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/custom-objects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/email_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/emails.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/forms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/eloqua/v1/visitors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/adcreative.md (99%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights_age_and_gender.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights_country.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights_dma.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights_hourly_advertiser.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights_platform_and_device.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/ads_insights_region.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/adsets.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/campaigns.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/facebook-ads/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/agents.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/companies.md (98%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/conversations.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/groups.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/roles.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/satisfaction_ratings.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/tickets.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/freshdesk/time_entries.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v1/tags_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v1/team_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v2/accounts_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v2/channels_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v2/inboxes_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v2/tags_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v2/teammates_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/frontapp/v2/teams_table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/fullstory/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ga360/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ga360/ga_session_hits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ga360/ga_sessions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ga4/v1/sample-report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/assignees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/collaborators.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/commit_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/commits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/issue_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/issue_labels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/issue_milestones.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/issues.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/pr_commits.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/project_cards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/project_columns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/pull_requests.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/releases.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/review_comments.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/reviews.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/stargazers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/team_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/team_memberships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/assignees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/collaborators.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/commit_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/commits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/issue_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/issue_labels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/issue_milestones.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/issues.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/pr_commits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/project_cards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/project_columns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/pull_requests.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/releases.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/review_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/reviews.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/stargazers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/team_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/team_memberships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/github/v2/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/gitlab/branches.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/gitlab/commits.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/gitlab/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/gitlab/issues.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/gitlab/milestones.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/gitlab/projects.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/gitlab/users.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/account_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/ad_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/ad_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/adgroup_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/age_range_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/audience_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/call_metrics_call_details_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/campaign_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/click_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/criteria_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/display_keyword_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/display_topics_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/final_url_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/gender_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/geo_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/keywordless_query_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/keywords_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/search_query_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads-adwords/video_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/accessible_bidding_strategies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/account_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/ad_group_audience_performance_report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/ad_group_criterion.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/ad_group_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/ad_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/ad_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/age_range_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/bidding_strategies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/call_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/campaign_audience_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/campaign_budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/campaign_criterion.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/campaign_labels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/campaign_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/carrier_constant.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/click_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/display_keyword_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/display_topics_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/expanded_landing_page_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/feed.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/feed_item.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/gender_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/geo_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/keywordless_query_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/keywords_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/labels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/landing_page_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/language_constant.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/mobile_app_category_constant.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/mobile_device_constant.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/operating_system_verison_constant.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/placeholder_feed_item_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/placeholder_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/placement_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/search_query_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/shopping_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/topic_constant.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/user_interest.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/user_list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/user_location_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ads/video_performance_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-adwords/foreign-keys.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/google-analytics-adwords/report.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/google-analytics-adwords/v15-10-2015/adwords.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/google-analytics-adwords/v15-10-2015/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-analytics/v1/sample-table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-analytics/v14-09-2016/report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-ecommerce/ecommerce-v2.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/performance_report_country.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/performance_report_custom.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/performance_report_date.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/performance_report_device.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/performance_report_page.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/performance_report_query.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/sitemaps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-search-console/v1/sites.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v1/file_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v1/sample-table.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v1/sheet_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v1/sheets_loaded.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v1/spreadsheet_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v2/file_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v2/sheet_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v2/sheets_loaded.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/google-sheets/v2/spreadsheet_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/assignments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/clients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/milestones.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/people.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/placeholders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest-forecast/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/clients.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/expense_categories.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/expenses.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/invoice_item_categories.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/invoice_messages.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/invoice_payments.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/invoices.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/people.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/project_tasks.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/project_users.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/projects.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/tasks.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v1/time_entries.md (98%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/clients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/estimate_item_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/estimate_line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/estimate_messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/estimates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/expense_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/expenses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/external_reference.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/invoice_item_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/invoice_line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/invoice_messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/invoice_payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/project_tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/project_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/time_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/time_entry_external_reference.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/user_project_tasks.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/user_projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/user_roles.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/harvest/v2/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/heap/v1/event_tables.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/heap/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/heap/v1/pageviews.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/heap/v1/sessions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/heap/v1/user_migrations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/heap/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/conversation_threads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/happiness_ratings_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/mailbox_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/mailbox_folders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/mailboxes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/team_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/helpscout/v1/workflows.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/hubspot/campaigns.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/companies.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/contact_lists.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/contacts_by_company.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/deal_pipelines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/hubspot/deals.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/email_events.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/engagements.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/hubspot/forms.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/owners.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/subscription_changes.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/tickets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/campaigns.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/companies.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/contact_lists.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/deals.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/email_events.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/engagements.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/forms.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/keywords.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/owners.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/subscription_changes.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v01-03-2017/workflows.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/companies.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/contact_lists.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/contacts_by_company.md (95%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/deals.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/email_events.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/engagements.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/forms.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/keywords.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/owners.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/v1/subscription_changes.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/hubspot/workflows.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/asset_to_asset_relations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/assets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/data_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/fund_to_asset_relations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/fund_to_fund_relations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/funds.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/investment_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/investments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/periodic_data_calculated.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/periodic_data_standardized.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/scenarios.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ilevel/v1/securities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/action_inquiries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/action_updates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/actions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/api_submissions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/catalog_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/catalogs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/clicks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/company_information.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/conversion_paths.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/deals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/exception_list_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/exception_lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/ftp_file_submissions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/media_partner_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/media_partners.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/phone_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/promo_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/report_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/reports.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/tracking_value_requests.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/impact/v1/unique_urls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/admins.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/companies.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/company_segments.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/contacts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/conversations.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/segments.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/tags.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v02-02-2016/users.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/admins.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/companies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/company_attributes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/company_segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/contact_attributes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/conversation_parts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/admins.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/companies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/company_attributes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/company_segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/contact_attributes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/conversation_parts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/intercom/v2/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/credit_notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/customers.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/estimates.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/invoices.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/subscriptions.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/invoiced/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/channels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_bounce.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_click.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_complaint.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_open.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_send.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_send_skip.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_subscribe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/email_unsubscribe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/list_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/message_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/templates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/iterable/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/changelogs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/foreign-keys.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/issue_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/issue_transitions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/issues.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/project_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/project_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/projects.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/resolutions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v1/worklogs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/changelogs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/components.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/foreign-keys.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/issue_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/issue_transitions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/issues.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/project_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/project_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/projects.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/resolutions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/jira/v2/worklogs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/bounce.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/click.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/clicked_sms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/consented_to_receive.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/dropped_email.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/failed_to_deliver.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/failed_to_deliver_automated_response.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/foreign-keys.yml (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/global_exclusions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/mark_as_spam.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/open.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/receive.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/received_automated_response.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/received_sms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/sent_sms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/subscribe_list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/unsub_list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/unsubscribe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/klaviyo/update_email_preferences.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/kobjects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/messages.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/shortcuts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/kustomer/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/archive_reasons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/candidate_applications.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/candidate_offers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/candidate_referrals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/candidate_resumes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/candidates.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/opportunities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/opportunity_applications.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/opportunity_offers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/opportunity_referrals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/opportunity_resumes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/postings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/requisitions.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/stages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lever/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/account_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/ad_analytics_by_campaign.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/ad_analytics_by_creative.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/campaign_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/creatives.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v1/video_ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/account_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/ad_analytics_by_campaign.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/ad_analytics_by_creative.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/campaign_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/creatives.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/linkedin-ads/v2/video_ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/message_bounces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/message_clicks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/message_opens.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/message_reads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/message_sends.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/message_unsubs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/listrak/subscribed_contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/agent_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/agent_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/agent_state_distribution.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/agent_status.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/engagement_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/messaging_interactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/messaging_queue_health.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/queue_health.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/skills.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/liveperson/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/color_collections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/connections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/content_favorites.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/content_metadata.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/content_metadata_access.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/content_views.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/dashboard_elements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/dashboard_filters.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/dashboard_layouts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/dashboards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/datagroups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/explores.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/folders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/git_branches.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/groups_in_group.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/integration_hubs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/integrations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/lookml_dashboards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/lookml_models.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/looks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/merge_queries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/model_sets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/models.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/permission_sets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/permissions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/project_files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/queries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/query_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/role_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/scheduled_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/themes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/user_attribute_group_values.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/user_attribute_values.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/user_attributes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/user_login_lockouts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/user_sessions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/looker/v1/workspaces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lookml/v1/model_files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lookml/v1/models.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lookml/v1/view_files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/lookml/v1/views.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/automations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/list_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/list_segment_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/list_segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/reports_email_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailchimp/v1/unsubscribes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/clicks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/leads.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/opens.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/recipients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/replies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/senders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/sent_messages.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/mailshake/v1/team_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/branches.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/cards.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/centres.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/clients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/communications.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/credit_arrangements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/custom_field_sets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/deposit_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/deposit_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/deposit_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/gl_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/gl_journal_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/index_rate_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/installments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/loan_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/loan_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/loan_repayments.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/loan_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/audit_trail.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/branches.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/cards.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/centres.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/clients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/communications.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/credit_arrangements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/custom_field_sets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/deposit_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/deposit_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/deposit_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/gl_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/gl_journal_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/index_rate_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/installments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/loan_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/loan_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/loan_repayments.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/loan_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v2/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/audit_trail.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/branches.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/cards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/centres.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/clients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/communications.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/credit_arrangements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/custom_field_sets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/deposit_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/deposit_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/deposit_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/gl_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/gl_journal_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/index_rate_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/installments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/loan_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/loan_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/loan_repayments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/loan_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mambu/v4/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/activity_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/campaigns.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/leads.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/programs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/v1/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/v1/activity_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/v1/leads.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/marketo/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/annotations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/cohort_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/cohorts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/engage.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/export.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/funnels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/mixpanel/v1/revenue.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/channel_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/channel_message_replies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/channel_messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/channel_tabs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/channels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/conversation_posts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/conversation_threads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/group_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/group_owners.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/team_device_usage_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/team_drives.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ms-teams/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/account_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/account_period_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/account_period_activity_pe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/account_subsidiary_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/accounting_books.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/accounting_periods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/address_book.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/addresses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/amortization_sched_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/amortization_schedules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bill_of_distributions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bill_of_materials.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_class_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_classes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_rate_cards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_rate_cards_prices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_rate_cards_versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_schedule.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_schedule_descriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_schedules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_subscription_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/billing_subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bin_number.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bin_number_counts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bins.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bom_revision_components.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/bom_revisions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/budget.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/budget_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/calls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_audiences.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_families.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_search_engine.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_subscription_statuses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaign_verticals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaignchannel.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaignevent.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaignitem.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaignoffer.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaignresponse.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaignresponsehistory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/case_origins.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/case_stage_changes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/case_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/caseescalationhistory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/caseissue.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/caseorigin.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/casetype.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/charges.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/classes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/commission_authorization_link.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/commissionplan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/commissionrate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/commissionschedule.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/companies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/company_status.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/companycontactmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/competitor.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/competitoroppmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/components_per_routing_steps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/consolidated_exchange_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/contact_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/contactrole.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/countries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/coupon_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/crmgroup.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/crmgroupmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/crmtemplate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/currencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/currency_exchange_rate_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/currency_exchange_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/currencyrates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_currencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_group_pricing.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_item_pricing.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_partner_sales_teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_sales_teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_subsidiary_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customer_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/deleted_records.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/departments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/distribution_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/distribution_networks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/employee_currency_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/employee_time.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/employee_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/employees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entity_role_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entity_status.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entity_status_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entitycategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entityeventmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/entityterritorymap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/eventattendees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/events1.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_amortization_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_based_charge_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_categories_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_categories_subs_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_detail.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_plan_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/expense_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/fair_value_prices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/fixed_fee_charge_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/generic_resources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/gift_certificates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/global_account_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/global_inventory_relationships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/group_test_cell.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/inbound_shipment_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/inbound_shipments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/income_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/inventory_cost_template.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/inventory_cost_template_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/inventory_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/inventory_number.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_account_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_billing_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_collection_item_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_collections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_demand_plan_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_demand_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_fulfillments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_group.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_location_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_price_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_prices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_quantity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_revisions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_shipmethods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_site_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_subsidiary_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_supply_plan_attributes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_supply_plan_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_supply_plan_source.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_supply_plan_source_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_supply_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_vendor_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/item_vendor_pricing.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/job_resource_role.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/job_resources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/job_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/last_sales_activity_record.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/location_costing_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/location_costing_grp_locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/memorized_trans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/message.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/messagerecipient.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/mfg_cost_template.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/mfg_cost_template_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/mfg_routing.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/mfg_routing_steps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/nexus.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/nlcompany.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/notes_system.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/notes_system_custom.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/notes_user.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/notetype.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/opportunities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/opportunity_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/opportunitycontactmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/originating_leads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/other_names.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/partner_sales_roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/partner_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/partners.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/payment_methods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/payment_terms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/payroll_item_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/payroll_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/percent_complete_overrides.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/planassignmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/planned_standard_costs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/planschedulemap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/posting_account_activity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/posting_account_activity_pe.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/price_book_line_intervals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/price_books.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/price_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/price_tiers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/price_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/pricing_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_billing_budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_cost_budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_cost_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_expense_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_revenue_rl_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_revenue_rls_charge_rls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_revenue_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_task_assignments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_task_billing_budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_task_cost_budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_task_dependencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_templates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/project_time_approval_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/promotion_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/purchase_charge_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/quota1.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/resource_allocations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/resource_group_entity_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/resource_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revaluation.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revenue_elements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revenue_plan_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revenue_plan_version_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revenue_plan_versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revenue_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revenue_recognition_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revrecschedulelines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/revrecschedules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/role_subsidiary_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/roles1.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/sales_reps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/sales_roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/sales_territories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/salesforecast.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/service_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/shipment_packages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/shipping_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/solution.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/solutioncasemap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/solutiontopicmap.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/standard_cost_components.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/states.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscript_line_price_intervals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscription_change_orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscription_co_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscription_line_revisions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscription_plan_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscription_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subscription_terms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subsidiaries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subsidiary_book_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subsidiary_class_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subsidiary_department_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subsidiary_location_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/subsidiary_nexus_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/supplier_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/support_incidents.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/support_reps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/support_territories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/supportcasehistory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/system_notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/system_notes_custom.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/task_contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/tax_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/territory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/time_based_charge_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/timesheet.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/topic.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/trans_partner_sales_teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_address.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_bin_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_book_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_cost_components.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_inventory_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_line_book_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_lines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_links.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_sales_teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_shipping_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_tax_detail.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transaction_tracking_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/units_type.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/unlocked_time_periods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/uom.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/usages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/vendor_currencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/vendor_subsidiary_map.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/vendor_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/vendors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/winlossreason.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/work_calendar_holidays.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite-suite-analytics/v1/work_calendars.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Account.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/AccountingPeriod.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Address.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/BillingAccount.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/BillingSchedule.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Bin.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Budget.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CalendarEvent.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Classification.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ConsolidatedExchangeRate.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ContactCategory.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ContactRole.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CostCategory.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CouponCode.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CurrencyRate.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CustomList.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Customer.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CustomerCategory.md (88%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CustomerMessage.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/CustomerStatus.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Deleted.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Department.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/EntityGroup.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ExpenseCategory.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/FairValuePrice.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Folder.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/GiftCertificate.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/GlobalAccountMapping.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/HcmJob.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/InboundShipment.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/InventoryNumber.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Issue.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ItemAccountMapping.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ItemDemandPlan.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ItemRevision.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ItemSupplyPlan.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Job.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/JobStatus.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/JobType.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ManufacturingCostTemplate.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ManufacturingOperationTask.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ManufacturingRouting.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Message.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Note.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/NoteType.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Opportunity.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/OtherNameCategory.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PartnerCategory.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Paycheck.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PaymentMethod.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PayrollItem.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PhoneCall.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PriceLevel.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PricingGroup.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ProjectTask.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/PromotionCode.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/ResourceAllocation.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/RevRecSchedule.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/RevRecTemplate.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/SalesRole.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/SalesTaxItem.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/SiteCategory.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Solution.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Subsidiary.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/SupportCase.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Task.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/TaxGroup.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/TaxType.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Term.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/TimeBill.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/TimeEntry.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/TimeSheet.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Transaction.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/UnitsType.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Usage.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/Vendor.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/VendorCategory.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/WinLossReason.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/campaign.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/charge.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/contact.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/custom_record.md (95%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/employee.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/file.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/item.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/location.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/nexus.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/partner.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v1/topic.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/accounting_period.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/app_definition.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/app_package.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/billing_schedule.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/calendar_event.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/campaign.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/classification.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/contact_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/contact_role.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/coupon_code.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/currency_rate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/custom_list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/custom_records.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/customer.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/customer_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/customer_message.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/customer_status.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/deleted.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/department.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/entity_group.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/expense_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/folder.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/gift_certificate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/global_account_mapping.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/inventory_number.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/item_account_mapping.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/item_demand_plan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/item_revision.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/item_supply_plan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/job.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/job_status.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/job_type.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/manufacturing_cost_template.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/manufacturing_operation_task.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/manufacturing_routing.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/message.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/nexus.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/note.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/note_type.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/opportunity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/originating_lead.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/other_name_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/partner_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/payment_method.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/payroll_item.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/phone_call.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/price_level.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/pricing_group.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/project_task.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/promotion_code.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/resource_allocation.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/rev_rec_schedule.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/rev_rec_template.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/sales_role.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/site_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/solution.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/subsidiary.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/support_case.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/task.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/term.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/time_bill.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/time_entry.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/time_sheet.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/transaction.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/units_type.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/vendor_category.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v10-15-2015/win_loss_reason.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Account.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/AccountingPeriod.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Address.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/BillingAccount.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/BillingSchedule.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Bin.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Bom.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/BomRevision.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Budget.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CalendarEvent.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Campaign.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Charge.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Classification.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ConsolidatedExchangeRate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Contact.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ContactCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ContactRole.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CostCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CouponCode.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CurrencyRate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CustomList.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Customer.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CustomerCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CustomerMessage.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CustomerStatus.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/CustomerSubsidiaryRelationship.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Deleted.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Department.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Employee.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/EntityGroup.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ExpenseCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/FairValuePrice.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/File.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Folder.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/GiftCertificate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/GlobalAccountMapping.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/HcmJob.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/InboundShipment.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/InventoryNumber.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Issue.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Item.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ItemAccountMapping.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ItemDemandPlan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ItemRevision.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ItemSupplyPlan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Job.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/JobStatus.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/JobType.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Location.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ManufacturingCostTemplate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ManufacturingOperationTask.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ManufacturingRouting.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/MerchandiseHierarchyNode.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Message.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Nexus.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Note.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/NoteType.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Opportunity.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/OtherNameCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Partner.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PartnerCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Paycheck.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PaymentMethod.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PayrollItem.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PhoneCall.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PriceLevel.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PricingGroup.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ProjectTask.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/PromotionCode.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/ResourceAllocation.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/RevRecSchedule.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/RevRecTemplate.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/SalesRole.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/SalesTaxItem.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/SiteCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Solution.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Subsidiary.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/SupportCase.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Task.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/TaxGroup.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/TaxType.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Term.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/TimeBill.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/TimeEntry.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/TimeSheet.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Topic.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Transaction.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/UnitsType.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Usage.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/Vendor.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/VendorCategory.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/VendorSubsidiaryRelationship.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/netsuite/v2/WinLossReason.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/administrators.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/hubs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/organizations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/onfleet/v1/workers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/outbrain/campaign_performance.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outbrain/campaigns.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outbrain/link_performance.md (98%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outbrain/links.md (98%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/accounts.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/call_dispositions.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/call_purposes.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/calls.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/content_categories.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/duties.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/events.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/mailboxes.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/mailings.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/opportunities.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/personas.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/prospects.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/sequence_states.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/sequence_steps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/sequence_templates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/sequences.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/stages.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/tasks.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/teams.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/outreach/v1/users.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/email_clicks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/list_memberships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/opportunities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/prospect_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/prospects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/visitor_activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/visitors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pardot/v1/visits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/feature_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/features.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/guide_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/guides.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/metadata_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/metadata_visitors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/page_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/pages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/poll_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/track_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/track_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/visitor_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pendo/v1/visitors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_advanced.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_banner.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_coupon.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_generic.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_performance.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_performance_by_publisher.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_product.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_promotion.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/creative_text.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/group.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/group_member.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/itemized_list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/itemized_list_product.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/publisher.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/publisher_performance.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/term.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/transaction_details.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pepperjam/v1/transaction_history.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/activity_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/currency.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/deal_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/deal_products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/dealflow.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/deals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/filters.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/notes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/organizations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/persons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/pipelines.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/stages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/pipedrive/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/bill_payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/bills.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/classes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/credit_memos.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/departments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/deposits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/employees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/estimates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/journal_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/payment_methods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/profit_loss_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/purchase_orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/purchases.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/refund_receipts.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/sales_receipts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/tax_agencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/tax_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/tax_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/terms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/time_activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/transfers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/vendor_credits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v1/vendors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/bill_payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/bills.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/budgets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/classes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/credit_memos.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/customer_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/deleted_objects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/departments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/deposits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/employees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/estimates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/journal_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/payment_methods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/profit_loss_report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/purchase_orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/purchases.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/refund_receipts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/sales_receipts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/tax_agencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/tax_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/tax_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/terms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/time_activities.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/transfers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/vendor_credits.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/quickbooks/v2/vendors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/addresses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/charges.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/collections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/discounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/metafields_customer.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/metafields_store.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/metafields_subscription.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/onetimes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/shop.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v1/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/addresses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/charges.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/collections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/discounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/metafields_customer.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/metafields_store.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/metafields_subscription.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/onetimes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/store.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recharge/v2/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/adjustments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/billing_info.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/coupon_redemptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/coupons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/foreign-keys.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/invoices.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/plans_add_ons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/recurly/v1/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/referral-saasquatch/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/referral-saasquatch/referrals.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/referral-saasquatch/reward_balance.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/referral-saasquatch/users.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/revinate/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/revinate/v1/hotel_reviews_snapshot.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/revinate/v1/hotel_reviews_snapshot_by_site.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/revinate/v1/hotel_reviews_snapshot_by_time.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/revinate/v1/hotels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/revinate/v1/reviews.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/ringcentral/v1/call_log.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ringcentral/v1/company_call_log.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ringcentral/v1/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ringcentral/v1/foreign-keys.yml (100%)
rename {_integration-schemas => archive/_integration-schemas}/ringcentral/v1/messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/auto_renewal_profiles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/billing_descriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/billing_methods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/contracts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/country_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/currency_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/deleted_contracts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/deleted_invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/deleted_revenue_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/deleted_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/foreign-keys.yml (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/payment_terms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/registers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/revenue_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/revenue_recognition_methods.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/sales_orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/saasoptics/v1/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/blast_query.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/ad_targeter_plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/blast_query.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/blast_repeats.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/blast_save_list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/blasts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/foreign-keys.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/purchase_log.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sailthru/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/campaign.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/content_area.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/data_extension.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/email.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/event.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/folder.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/list.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/list_send.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/list_subscriber.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/send.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce-marketing-cloud/v1/subscriber.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v1/account.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v1/contact.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v1/lead.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v1/opportunity.md (99%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v1/user.md (99%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v2/account.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v2/contact.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v2/lead.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v2/opportunity.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/salesforce/v2/user.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/selligent/campaign.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/selligent/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/selligent/internal_datasource.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/selligent/owner.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/selligent/program.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/selligent/source.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/selligent/transactional_mailing.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/blocks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/bounces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/campaigns.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/contacts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/global_suppressions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/groups_all.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/groups_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/invalids.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/lists_all.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/lists_members.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/segments_all.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/segments_members.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/spam_reports.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/sendgrid-core/templates_all.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/shiphero/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shiphero/v1/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shiphero/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shiphero/v1/shipments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shiphero/v1/vendors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shippo/addresses.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/shippo/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shippo/parcels.md (99%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/shippo/refunds.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/shippo/shipments.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/shippo/transactions.md (99%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/shopify/abandoned_checkouts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/collects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/custom_collections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/inventory_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/inventory_levels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/metafields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/order_refunds.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/shopify/transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/channel_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/channels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/remote_files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/threads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/user_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/slack/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_account_stats_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_account_stats_hourly.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_squad_stats_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_squad_stats_hourly.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_squads.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_stats_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ad_stats_hourly.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/ads.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/audience_segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/billing_centers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/campaign_stats_daily.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/campaign_stats_hourly.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/campaigns.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/creatives.md (94%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/funding_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/media.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/organizations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/phone_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/pixel_domain_stats.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/pixels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/product_catalogs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/product_sets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_advanced_demographics.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_age_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_android_versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_carriers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_connection_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_countries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_device_makes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_genders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_interests_dlxc.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_interests_dlxp.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_interests_dlxs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_interests_nln.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_interests_plc.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_interests_scls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_ios_versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_languages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_location_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_metros.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_os_types.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_postal_codes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/snapchat-ads/v1/targeting_regions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/bank_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/cash_drawer_shifts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/discounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/employees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/inventories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/modifier_lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/refunds.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/settlements.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/shifts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v1/taxes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/bank_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/cash_drawer_shifts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/customers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/discounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/inventories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/modifier_lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/payouts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/refunds.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/roles.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/shifts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/taxes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/square/v2/team_members.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/balance_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/charges.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/coupons.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/customers.md (90%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/disputes.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/invoice_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/invoice_line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/invoices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/payout_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/payouts.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/plans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/subscription_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/subscriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v1/transfers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/balance_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/charges.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/coupons.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/customers.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/disputes.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/events.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/invoice_items.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/invoice_line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/invoices.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/payment_intents.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/payout_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/payouts.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/plans.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/products.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/subscription_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/subscriptions.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v2/transfers.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/balance_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/charges.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/coupons.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/customers.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/disputes.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/events.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/invoice_items.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/invoice_line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/invoices.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/payment_intents.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/payout_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/payouts.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/plans.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/products.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/subscription_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/subscriptions.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/stripe/v3/transfers.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v1/responses.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v1/simplified_responses.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v1/survey_details.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v2/responses.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v2/simplified_responses.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v2/survey_details.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/surveymonkey/v2/surveys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/taboola/campaign.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/taboola/campaign_performance.md (98%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/taboola/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/ad_insights.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/ad_insights_by_age_and_gender.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/ad_insights_by_country.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/ad_insights_by_platform.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/adgroups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/advertisers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/ad_insights.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/ad_insights_by_age_and_gender.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/ad_insights_by_country.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/ad_insights_by_platform.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/adgroups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/ads.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/advertisers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/campaign_insights_by_province.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/tiktok-ads/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/clients.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/projects.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/tasks.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/time_entries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/workspace_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/toggl/v1/workspaces.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/actions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/boards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/cards.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/checklists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/lists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/trello/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/account_balance.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/addresses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/alerts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/applications.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/available_phone_number_countries.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/available_phone_numbers_local.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/available_phone_numbers_mobile.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/available_phone_numbers_toll_free.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/calls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/conference_participants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/conferences.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/dependent_phone_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/incoming_phone_numbers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/message_media.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/messages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/outgoing_caller_ids.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/queues.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/recordings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/transcriptions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/usage_records.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twilio/v1/usage_triggers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/account_media.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/advertiser_business_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/bidding_rules.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/campaigns.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_image_app_download.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_image_conversation.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_image_direct_message.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_poll.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_video_app_download.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_video_conversation.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_video_direct_message.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_video_website.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/cards_website.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/content_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/example-custom-report.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/funding_instruments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/iab_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/line_item_apps.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/media_creatives.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/preroll_call_to_actions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/promotable_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/promoted_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/promoted_tweets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/scheduled_promoted_tweets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/tailored_audiences.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_app_store_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_conversations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_criteria.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_devices.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_interests.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_languages.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_locations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_network_operators.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_platform_versions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_platforms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_tv_markets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/targeting_tv_shows.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/twitter-ads/v1/tweets.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v1/answers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v1/forms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v1/landings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v1/questions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v2/answers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v2/forms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v2/questions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v2/submitted_landings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/typeform/v2/unsubmitted_landings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/agent_activity_logs.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/agents.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/calls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/chats.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/menu_tree.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/menus.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/team_tree.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/ujet/v1/user_statuses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/urban-airship/channels.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/urban-airship/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/urban-airship/lists.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/urban-airship/named_users.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/urban-airship/segments.md (98%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/external_accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/external_users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/feature_statuses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/features.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/forums.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/labels.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/nps_ratings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/product_areas.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/requests.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/segmented_values.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/segments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/status_updates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/statuses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/suggestions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/supporters.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/teams.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/uservoice/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/wootric/declines.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/wootric/end_users.md (99%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/wootric/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/wootric/responses.md (100%)
mode change 100755 => 100644
rename {_integration-schemas => archive/_integration-schemas}/xero/accounts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/bank_transactions.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/xero/bank_transfers.md (88%)
rename {_integration-schemas => archive/_integration-schemas}/xero/branding_themes.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/contact_groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/contacts.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/xero/credit_notes.md (91%)
rename {_integration-schemas => archive/_integration-schemas}/xero/currencies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/employees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/expense_claims.md (78%)
rename {_integration-schemas => archive/_integration-schemas}/xero/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/invoices.md (85%)
rename {_integration-schemas => archive/_integration-schemas}/xero/items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/journals.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/xero/linked_transactions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/manual_journals.md (93%)
rename {_integration-schemas => archive/_integration-schemas}/xero/organisations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/overpayments.md (89%)
rename {_integration-schemas => archive/_integration-schemas}/xero/payments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/prepayments.md (92%)
rename {_integration-schemas => archive/_integration-schemas}/xero/purchase_orders.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/xero/quotes.md (84%)
rename {_integration-schemas => archive/_integration-schemas}/xero/receipts.md (88%)
rename {_integration-schemas => archive/_integration-schemas}/xero/repeating_invoices.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/addresses.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/allocations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/attachments.md (79%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/line_items.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/nested_invoice.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/payment_terms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/phones.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/tracking_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/shared/validation_errors.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/tax_rates.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/tracking_categories.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/xero/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v1/emails.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v1/product_reviews.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v1/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v1/reviews.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v1/unsubscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/collections.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/emails.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/order_fulfillments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/orders.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/product_reviews.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/product_variants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/products.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/reviews.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/yotpo/v2/unsubscribers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/account.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/agents.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/bans.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/chats.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/departments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/goals.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/shortcuts.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk-chat/v1/triggers.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/group_memberships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/macros.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/organizations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/satisfaction_ratings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/sla_policies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/ticket_audits.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/ticket_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/ticket_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/ticket_forms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/ticket_metrics.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/tickets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/group_memberships.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/groups.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/macros.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/organizations.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/satisfaction_ratings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/sla_policies.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/tags.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/talk_phone_numbers.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/ticket_audits.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/ticket_comments.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/ticket_fields.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/ticket_forms.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/ticket_metric_events.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/ticket_metrics.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/tickets.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zendesk/v2/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/foreign-keys.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/meeting_files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/meeting_poll_results.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/meeting_polls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/meeting_questions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/meeting_registrants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/meetings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/report_meeting_participants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/report_meetings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/report_webinar_participants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/report_webinars.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_absentees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_files.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_panelists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_poll_results.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_polls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_qna_results.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_questions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_registrants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinar_tracking_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v1/webinars.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/foreign-keys.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/meeting_poll_results.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/meeting_polls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/meeting_questions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/meeting_registrants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/meetings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/report_meeting_participants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/report_meetings.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/report_webinar_participants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/report_webinars.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/users.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_absentees.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_panelists.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_poll_results.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_polls.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_qna_results.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_questions.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_registrants.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinar_tracking_sources.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zoom/v2/webinars.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/account.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/accounting_code.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/accounting_period.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/amendment.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/billing_run.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/communication_profile.md (96%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/contact.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/contact_snapshot.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/credit_balance_adjustment.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/discount_applied_metrics.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/export.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/foreign-keys.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/import.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/invoice.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/invoice_item.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/invoice_item_adjustment.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/journal_entry.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/journal_entry_item.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/journal_run.md (97%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/payment.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/payment_run.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/processed_usage.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/product.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/product_rate_plan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/product_rate_plan_charge.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/product_rate_plan_charge_tier.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/rate_plan.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/rate_plan_charge_tier.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/refund.md (100%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_charge_summary_item.md (98%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_event_item.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_event_item_invoice_item.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_event_item_invoice_item_adjustment.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_schedule_item.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_schedule_item_invoice_item.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/revenue_schedule_item_invoice_item_adjustment.md (99%)
rename {_integration-schemas => archive/_integration-schemas}/zuora/subscription.md (99%)
create mode 100644 scripts/json/README.md
create mode 100644 scripts/json/archive/convert-foreign-keys.py
create mode 100644 scripts/json/archive/convert_md_schemas.py
create mode 100644 scripts/json/archive/get_empty_folders.py
create mode 100644 scripts/json/archive/get_integration_data_from_md.py
create mode 100644 scripts/json/archive/get_other_table_data.py
create mode 100644 scripts/json/archive/get_table_data_from_md.py
create mode 100644 scripts/json/archive/replace_anyof.py
create mode 100644 scripts/json/check_json_issues.py
create mode 100644 scripts/json/check_table_data.py
create mode 100644 scripts/json/file_exceptions.json
create mode 100644 scripts/json/format_json.py
create mode 100644 scripts/json/generate_foreign_keys.py
create mode 100644 scripts/json/get_integration_data.py
create mode 100644 scripts/json/get_json_files.py
create mode 100644 scripts/json/get_table_data.py
create mode 100644 scripts/json/manual_json_import.py
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/_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/_integration-schemas/activecampaign/v1/foreign-keys.md b/archive/_integration-schemas/activecampaign/v1/foreign-keys.md
similarity index 99%
rename from _integration-schemas/activecampaign/v1/foreign-keys.md
rename to archive/_integration-schemas/activecampaign/v1/foreign-keys.md
index 87f0310eb..880ec620f 100644
--- a/_integration-schemas/activecampaign/v1/foreign-keys.md
+++ b/archive/_integration-schemas/activecampaign/v1/foreign-keys.md
@@ -217,7 +217,7 @@ foreign-keys:
- table: "activities"
join-on: "userid"
- table: "campaign_lists"
- join: "userid"
+ join-on: "userid"
- table: "configs"
join-on: "userid"
- table: "contact_emails"
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/_integration-schemas/bing-ads/v1/accounts.md b/archive/_integration-schemas/bing-ads/v1/accounts.md
similarity index 99%
rename from _integration-schemas/bing-ads/v1/accounts.md
rename to archive/_integration-schemas/bing-ads/v1/accounts.md
index af4b2ca72..3369bc890 100644
--- a/_integration-schemas/bing-ads/v1/accounts.md
+++ b/archive/_integration-schemas/bing-ads/v1/accounts.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v1/ad_groups.md b/archive/_integration-schemas/bing-ads/v1/ad_groups.md
similarity index 99%
rename from _integration-schemas/bing-ads/v1/ad_groups.md
rename to archive/_integration-schemas/bing-ads/v1/ad_groups.md
index c9b020253..eb40c2e09 100644
--- a/_integration-schemas/bing-ads/v1/ad_groups.md
+++ b/archive/_integration-schemas/bing-ads/v1/ad_groups.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v1/ad_performance_report.md b/archive/_integration-schemas/bing-ads/v1/ad_performance_report.md
similarity index 97%
rename from _integration-schemas/bing-ads/v1/ad_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/ad_performance_report.md
index ece311302..ae1281d02 100644
--- a/_integration-schemas/bing-ads/v1/ad_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/ad_performance_report.md
@@ -4,16 +4,14 @@ 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"
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/_integration-schemas/bing-ads/v1/ads.md b/archive/_integration-schemas/bing-ads/v1/ads.md
similarity index 99%
rename from _integration-schemas/bing-ads/v1/ads.md
rename to archive/_integration-schemas/bing-ads/v1/ads.md
index 9b9e2257a..21448ff71 100644
--- a/_integration-schemas/bing-ads/v1/ads.md
+++ b/archive/_integration-schemas/bing-ads/v1/ads.md
@@ -4,7 +4,7 @@ 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:
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/_integration-schemas/bing-ads/v1/campaign_performance_report.md b/archive/_integration-schemas/bing-ads/v1/campaign_performance_report.md
similarity index 96%
rename from _integration-schemas/bing-ads/v1/campaign_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/campaign_performance_report.md
index 5c4893a2d..5f7050000 100644
--- a/_integration-schemas/bing-ads/v1/campaign_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/campaign_performance_report.md
@@ -4,7 +4,7 @@ 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..
@@ -12,9 +12,7 @@ description: |
replication-method: "Append-Only (Incremental)"
attribution-window: true
-api-method:
- name:
- doc-link:
+
attributes:
- name: "accountId"
diff --git a/_integration-schemas/bing-ads/v1/campaigns.md b/archive/_integration-schemas/bing-ads/v1/campaigns.md
similarity index 99%
rename from _integration-schemas/bing-ads/v1/campaigns.md
rename to archive/_integration-schemas/bing-ads/v1/campaigns.md
index 54f88ede3..71c8f2c5a 100644
--- a/_integration-schemas/bing-ads/v1/campaigns.md
+++ b/archive/_integration-schemas/bing-ads/v1/campaigns.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v1/foreign-keys.md b/archive/_integration-schemas/bing-ads/v1/foreign-keys.md
similarity index 93%
rename from _integration-schemas/bing-ads/v1/foreign-keys.md
rename to archive/_integration-schemas/bing-ads/v1/foreign-keys.md
index 6b00e580c..1856f9e52 100644
--- a/_integration-schemas/bing-ads/v1/foreign-keys.md
+++ b/archive/_integration-schemas/bing-ads/v1/foreign-keys.md
@@ -15,7 +15,7 @@ foreign-keys:
- table: "campaign_performance_report"
- table: "geographic_performance_report"
- table: "goals_and_funnels_report"
- - table: "keyword_performanc_report"
+ - table: "keyword_performance_report"
- table: "search_query_performance_report"
- id: "ad-id"
@@ -37,7 +37,7 @@ foreign-keys:
- table: "campaign_performance_report"
- table: "geographic_performance_report"
- table: "goals_and_funnels_report"
- - table: "keyword_performanc_report"
+ - table: "keyword_performance_report"
- table: "search_query_performance_report"
- id: "campaign-id"
diff --git a/_integration-schemas/bing-ads/v1/geographic_performance_report.md b/archive/_integration-schemas/bing-ads/v1/geographic_performance_report.md
similarity index 93%
rename from _integration-schemas/bing-ads/v1/geographic_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/geographic_performance_report.md
index 2764c768d..77366e218 100644
--- a/_integration-schemas/bing-ads/v1/geographic_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/geographic_performance_report.md
@@ -4,16 +4,14 @@ 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"
diff --git a/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md b/archive/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
similarity index 96%
rename from _integration-schemas/bing-ads/v1/goals_and_funnels_report.md
rename to archive/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
index 2960afd13..da639a6de 100644
--- a/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
@@ -4,16 +4,14 @@ 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"
diff --git a/_integration-schemas/bing-ads/v1/keyword_performance_report.md b/archive/_integration-schemas/bing-ads/v1/keyword_performance_report.md
similarity index 96%
rename from _integration-schemas/bing-ads/v1/keyword_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/keyword_performance_report.md
index 928a4959b..bf80039e4 100644
--- a/_integration-schemas/bing-ads/v1/keyword_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/keyword_performance_report.md
@@ -4,16 +4,14 @@ 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"
diff --git a/_integration-schemas/bing-ads/v1/search_query_performance_report.md b/archive/_integration-schemas/bing-ads/v1/search_query_performance_report.md
similarity index 97%
rename from _integration-schemas/bing-ads/v1/search_query_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/search_query_performance_report.md
index 4227f2c94..ef135a6a3 100644
--- a/_integration-schemas/bing-ads/v1/search_query_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/search_query_performance_report.md
@@ -4,7 +4,7 @@ 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.
@@ -13,9 +13,7 @@ description: |
[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/_integration-schemas/bing-ads/v2/accounts.md b/archive/_integration-schemas/bing-ads/v2/accounts.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/accounts.md
rename to archive/_integration-schemas/bing-ads/v2/accounts.md
index 36da94d55..3b0da5af2 100644
--- a/_integration-schemas/bing-ads/v2/accounts.md
+++ b/archive/_integration-schemas/bing-ads/v2/accounts.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/bing-ads/v2/ad_groups.md b/archive/_integration-schemas/bing-ads/v2/ad_groups.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/ad_groups.md
rename to archive/_integration-schemas/bing-ads/v2/ad_groups.md
index dba833d8f..a1d71d3de 100644
--- a/_integration-schemas/bing-ads/v2/ad_groups.md
+++ b/archive/_integration-schemas/bing-ads/v2/ad_groups.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v2/ad_performance_report.md b/archive/_integration-schemas/bing-ads/v2/ad_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/ad_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/ad_performance_report.md
index ccc92e96e..cc352d629 100644
--- a/_integration-schemas/bing-ads/v2/ad_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/ad_performance_report.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v2/ads.md b/archive/_integration-schemas/bing-ads/v2/ads.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/ads.md
rename to archive/_integration-schemas/bing-ads/v2/ads.md
index d953732bc..dd1ea2709 100644
--- a/_integration-schemas/bing-ads/v2/ads.md
+++ b/archive/_integration-schemas/bing-ads/v2/ads.md
@@ -4,7 +4,7 @@ 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:
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/_integration-schemas/bing-ads/v2/campaign_performance_report.md b/archive/_integration-schemas/bing-ads/v2/campaign_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/campaign_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/campaign_performance_report.md
index 2b273d3a0..9f379c57e 100644
--- a/_integration-schemas/bing-ads/v2/campaign_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/campaign_performance_report.md
@@ -4,7 +4,7 @@ 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..
diff --git a/_integration-schemas/bing-ads/v2/campaigns.md b/archive/_integration-schemas/bing-ads/v2/campaigns.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/campaigns.md
rename to archive/_integration-schemas/bing-ads/v2/campaigns.md
index d2a5bed0f..cfac132b7 100644
--- a/_integration-schemas/bing-ads/v2/campaigns.md
+++ b/archive/_integration-schemas/bing-ads/v2/campaigns.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/bing-ads/v2/geographic_performance_report.md b/archive/_integration-schemas/bing-ads/v2/geographic_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/geographic_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/geographic_performance_report.md
index 706f1400b..34cd96139 100644
--- a/_integration-schemas/bing-ads/v2/geographic_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/geographic_performance_report.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md b/archive/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/goals_and_funnels_report.md
rename to archive/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
index 7335f57c3..4f0df761f 100644
--- a/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v2/keyword_performance_report.md b/archive/_integration-schemas/bing-ads/v2/keyword_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/keyword_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/keyword_performance_report.md
index 4622b5d54..ca5524406 100644
--- a/_integration-schemas/bing-ads/v2/keyword_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/keyword_performance_report.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/bing-ads/v2/search_query_performance_report.md b/archive/_integration-schemas/bing-ads/v2/search_query_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/search_query_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/search_query_performance_report.md
index 310cf43af..9ed383666 100644
--- a/_integration-schemas/bing-ads/v2/search_query_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/search_query_performance_report.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/deputy/v1/companies.md b/archive/_integration-schemas/deputy/v1/companies.md
similarity index 98%
rename from _integration-schemas/deputy/v1/companies.md
rename to archive/_integration-schemas/deputy/v1/companies.md
index ba623c3de..d0d1f1fca 100644
--- a/_integration-schemas/deputy/v1/companies.md
+++ b/archive/_integration-schemas/deputy/v1/companies.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The company ID."
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/_integration-schemas/deputy/v1/contacts.md b/archive/_integration-schemas/deputy/v1/contacts.md
similarity index 98%
rename from _integration-schemas/deputy/v1/contacts.md
rename to archive/_integration-schemas/deputy/v1/contacts.md
index 979db20bd..8a263e2e4 100644
--- a/_integration-schemas/deputy/v1/contacts.md
+++ b/archive/_integration-schemas/deputy/v1/contacts.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The contact ID."
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/_integration-schemas/deputy/v1/events.md b/archive/_integration-schemas/deputy/v1/events.md
similarity index 98%
rename from _integration-schemas/deputy/v1/events.md
rename to archive/_integration-schemas/deputy/v1/events.md
index b768ada11..a9d9a46a8 100644
--- a/_integration-schemas/deputy/v1/events.md
+++ b/archive/_integration-schemas/deputy/v1/events.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The event ID."
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/_integration-schemas/freshdesk/companies.md b/archive/_integration-schemas/freshdesk/companies.md
old mode 100755
new mode 100644
similarity index 98%
rename from _integration-schemas/freshdesk/companies.md
rename to archive/_integration-schemas/freshdesk/companies.md
index 3a048725e..eee7242c9
--- a/_integration-schemas/freshdesk/companies.md
+++ b/archive/_integration-schemas/freshdesk/companies.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/github/v1/reviews.md b/archive/_integration-schemas/github/v1/reviews.md
similarity index 98%
rename from _integration-schemas/github/v1/reviews.md
rename to archive/_integration-schemas/github/v1/reviews.md
index c056c8783..799fd6ef6 100644
--- a/_integration-schemas/github/v1/reviews.md
+++ b/archive/_integration-schemas/github/v1/reviews.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/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/_integration-schemas/google-adwords/foreign-keys.md b/archive/_integration-schemas/google-adwords/foreign-keys.md
similarity index 98%
rename from _integration-schemas/google-adwords/foreign-keys.md
rename to archive/_integration-schemas/google-adwords/foreign-keys.md
index 960d869eb..6023a5a41 100644
--- a/_integration-schemas/google-adwords/foreign-keys.md
+++ b/archive/_integration-schemas/google-adwords/foreign-keys.md
@@ -1,5 +1,5 @@
---
-tap-reference: "google-adwords"
+tap-reference: "google-ads-adwords"
version: "1"
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/_integration-schemas/harvest/v1/invoices.md b/archive/_integration-schemas/harvest/v1/invoices.md
similarity index 99%
rename from _integration-schemas/harvest/v1/invoices.md
rename to archive/_integration-schemas/harvest/v1/invoices.md
index 8c8e915b1..ab01bf443 100644
--- a/_integration-schemas/harvest/v1/invoices.md
+++ b/archive/_integration-schemas/harvest/v1/invoices.md
@@ -9,9 +9,7 @@ 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"
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/_integration-schemas/invoiced/customers.md b/archive/_integration-schemas/invoiced/customers.md
similarity index 99%
rename from _integration-schemas/invoiced/customers.md
rename to archive/_integration-schemas/invoiced/customers.md
index 3a9d8cc20..92980874f 100644
--- a/_integration-schemas/invoiced/customers.md
+++ b/archive/_integration-schemas/invoiced/customers.md
@@ -83,7 +83,6 @@ attributes:
- name: "metadata"
type: "object"
description: "Additional information about the customer."
- subattributes:
- name: "name"
type: "string"
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/_integration-schemas/invoiced/invoices.md b/archive/_integration-schemas/invoiced/invoices.md
similarity index 98%
rename from _integration-schemas/invoiced/invoices.md
rename to archive/_integration-schemas/invoiced/invoices.md
index fadc2306a..6ebfd73fd 100644
--- a/_integration-schemas/invoiced/invoices.md
+++ b/archive/_integration-schemas/invoiced/invoices.md
@@ -174,15 +174,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 invoice."
- subattributes:
- name: "name"
type: "string"
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/_integration-schemas/invoiced/subscriptions.md b/archive/_integration-schemas/invoiced/subscriptions.md
similarity index 99%
rename from _integration-schemas/invoiced/subscriptions.md
rename to archive/_integration-schemas/invoiced/subscriptions.md
index ab4de80a0..3c0439182 100644
--- a/_integration-schemas/invoiced/subscriptions.md
+++ b/archive/_integration-schemas/invoiced/subscriptions.md
@@ -125,7 +125,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "mrr"
type: "number"
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/_integration-schemas/jira/v1/foreign-keys.md b/archive/_integration-schemas/jira/v1/foreign-keys.md
similarity index 99%
rename from _integration-schemas/jira/v1/foreign-keys.md
rename to archive/_integration-schemas/jira/v1/foreign-keys.md
index c4f3fe391..77dbd3046 100644
--- a/_integration-schemas/jira/v1/foreign-keys.md
+++ b/archive/_integration-schemas/jira/v1/foreign-keys.md
@@ -108,7 +108,7 @@ foreign-keys:
attribute: "versionId"
table: "versions"
all-foreign-keys:
- - tables: "versions"
+ - table: "versions"
join-on: "id"
- id: "worklog-id"
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/_integration-schemas/jira/v1/projects.md b/archive/_integration-schemas/jira/v1/projects.md
similarity index 99%
rename from _integration-schemas/jira/v1/projects.md
rename to archive/_integration-schemas/jira/v1/projects.md
index d2a7d6137..7ede107c6 100644
--- a/_integration-schemas/jira/v1/projects.md
+++ b/archive/_integration-schemas/jira/v1/projects.md
@@ -335,7 +335,6 @@ attributes:
type: "object"
description: |
Details about the real assignee associated with the component.
- subattributes: *userDetails
- name: "realAssigneeType"
type: "string"
@@ -405,7 +404,6 @@ attributes:
- name: "lead"
type: "object"
description: "Details about the lead user associated with the project."
- subattributes: *userDetails
- name: "name"
type: "string"
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/_integration-schemas/jira/v2/foreign-keys.md b/archive/_integration-schemas/jira/v2/foreign-keys.md
similarity index 99%
rename from _integration-schemas/jira/v2/foreign-keys.md
rename to archive/_integration-schemas/jira/v2/foreign-keys.md
index 529bda8ad..4f12227d2 100644
--- a/_integration-schemas/jira/v2/foreign-keys.md
+++ b/archive/_integration-schemas/jira/v2/foreign-keys.md
@@ -127,7 +127,7 @@ foreign-keys:
attribute: "versionId"
table: "versions"
all-foreign-keys:
- - tables: "versions"
+ - table: "versions"
join-on: "id"
- id: "worklog-id"
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/_integration-schemas/jira/v2/projects.md b/archive/_integration-schemas/jira/v2/projects.md
similarity index 99%
rename from _integration-schemas/jira/v2/projects.md
rename to archive/_integration-schemas/jira/v2/projects.md
index 8a4b61506..0e557a268 100644
--- a/_integration-schemas/jira/v2/projects.md
+++ b/archive/_integration-schemas/jira/v2/projects.md
@@ -337,7 +337,6 @@ attributes:
type: "object"
description: |
Details about the real assignee associated with the component.
- subattributes: *userDetails
- name: "realAssigneeType"
type: "string"
@@ -407,7 +406,6 @@ attributes:
- name: "lead"
type: "object"
description: "Details about the lead user associated with the project."
- subattributes: *userDetails
- name: "name"
type: "string"
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/_integration-schemas/mailshake/v1/leads.md b/archive/_integration-schemas/mailshake/v1/leads.md
similarity index 99%
rename from _integration-schemas/mailshake/v1/leads.md
rename to archive/_integration-schemas/mailshake/v1/leads.md
index 04ebcd843..c7e936e3f 100644
--- a/_integration-schemas/mailshake/v1/leads.md
+++ b/archive/_integration-schemas/mailshake/v1/leads.md
@@ -104,7 +104,6 @@ attributes:
- name: "fields"
type: "object"
description: ""
- subattributes:
- name: "first"
type: "string"
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/_integration-schemas/mambu/v1/cards.md b/archive/_integration-schemas/mambu/v1/cards.md
similarity index 96%
rename from _integration-schemas/mambu/v1/cards.md
rename to archive/_integration-schemas/mambu/v1/cards.md
index 08c0cada2..a1f5fad65 100644
--- a/_integration-schemas/mambu/v1/cards.md
+++ b/archive/_integration-schemas/mambu/v1/cards.md
@@ -24,7 +24,7 @@ api-method:
name: "Get all cards (v2.0)"
doc-link: "https://api.mambu.com/?http#depositaccounts-getallcards"
-dependent-table-key: "deposit-account"
+dependent-table-key: "deposit_account"
# -------------------------- #
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/_integration-schemas/mambu/v1/loan_repayments.md b/archive/_integration-schemas/mambu/v1/loan_repayments.md
similarity index 98%
rename from _integration-schemas/mambu/v1/loan_repayments.md
rename to archive/_integration-schemas/mambu/v1/loan_repayments.md
index d7c37eaf2..cdb1ac4d6 100644
--- a/_integration-schemas/mambu/v1/loan_repayments.md
+++ b/archive/_integration-schemas/mambu/v1/loan_repayments.md
@@ -24,7 +24,7 @@ api-method:
replication-method: "Full Table"
-dependent-table-key: "loan-account"
+dependent-table-key: "loan_account"
# -------------------------- #
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/_integration-schemas/mambu/v2/cards.md b/archive/_integration-schemas/mambu/v2/cards.md
similarity index 96%
rename from _integration-schemas/mambu/v2/cards.md
rename to archive/_integration-schemas/mambu/v2/cards.md
index 302b4555e..87179b26f 100644
--- a/_integration-schemas/mambu/v2/cards.md
+++ b/archive/_integration-schemas/mambu/v2/cards.md
@@ -24,7 +24,7 @@ api-method:
name: "Get all cards (v2.0)"
doc-link: "https://api.mambu.com/?http#depositaccounts-getallcards"
-dependent-table-key: "deposit-account"
+dependent-table-key: "deposit_account"
# -------------------------- #
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/_integration-schemas/mambu/v2/loan_repayments.md b/archive/_integration-schemas/mambu/v2/loan_repayments.md
similarity index 98%
rename from _integration-schemas/mambu/v2/loan_repayments.md
rename to archive/_integration-schemas/mambu/v2/loan_repayments.md
index 38fbc5e68..066aeb7ef 100644
--- a/_integration-schemas/mambu/v2/loan_repayments.md
+++ b/archive/_integration-schemas/mambu/v2/loan_repayments.md
@@ -24,7 +24,7 @@ api-method:
replication-method: "Full Table"
-dependent-table-key: "loan-account"
+dependent-table-key: "loan_account"
# -------------------------- #
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/_integration-schemas/marketo/campaigns.md b/archive/_integration-schemas/marketo/campaigns.md
similarity index 99%
rename from _integration-schemas/marketo/campaigns.md
rename to archive/_integration-schemas/marketo/campaigns.md
index 2231556a4..7f53d2528 100644
--- a/_integration-schemas/marketo/campaigns.md
+++ b/archive/_integration-schemas/marketo/campaigns.md
@@ -3,7 +3,7 @@ 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.
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/_integration-schemas/marketo/leads.md b/archive/_integration-schemas/marketo/leads.md
similarity index 99%
rename from _integration-schemas/marketo/leads.md
rename to archive/_integration-schemas/marketo/leads.md
index 9a520e59c..d590dc093 100644
--- a/_integration-schemas/marketo/leads.md
+++ b/archive/_integration-schemas/marketo/leads.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/marketo/v1/leads.md b/archive/_integration-schemas/marketo/v1/leads.md
similarity index 99%
rename from _integration-schemas/marketo/v1/leads.md
rename to archive/_integration-schemas/marketo/v1/leads.md
index 121047b4a..bc68222e2 100644
--- a/_integration-schemas/marketo/v1/leads.md
+++ b/archive/_integration-schemas/marketo/v1/leads.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/mixpanel/v1/export.md b/archive/_integration-schemas/mixpanel/v1/export.md
similarity index 99%
rename from _integration-schemas/mixpanel/v1/export.md
rename to archive/_integration-schemas/mixpanel/v1/export.md
index b14460e25..e285dd368 100644
--- a/_integration-schemas/mixpanel/v1/export.md
+++ b/archive/_integration-schemas/mixpanel/v1/export.md
@@ -76,7 +76,7 @@ attributes:
type: "array"
description: ""
subattributes:
- - title: "value"
+ - name: "value"
type: "string"
description: ""
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/_integration-schemas/netsuite/v1/campaign.md b/archive/_integration-schemas/netsuite/v1/campaign.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/campaign.md
rename to archive/_integration-schemas/netsuite/v1/campaign.md
index c1bd548f5..124bad9c4 100644
--- a/_integration-schemas/netsuite/v1/campaign.md
+++ b/archive/_integration-schemas/netsuite/v1/campaign.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/netsuite/v1/contact.md b/archive/_integration-schemas/netsuite/v1/contact.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/contact.md
rename to archive/_integration-schemas/netsuite/v1/contact.md
index 433f71f5f..7fdb472d4 100644
--- a/_integration-schemas/netsuite/v1/contact.md
+++ b/archive/_integration-schemas/netsuite/v1/contact.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/recurly/v1/foreign-keys.md b/archive/_integration-schemas/recurly/v1/foreign-keys.md
similarity index 99%
rename from _integration-schemas/recurly/v1/foreign-keys.md
rename to archive/_integration-schemas/recurly/v1/foreign-keys.md
index 5a8a4c513..d70539abe 100644
--- a/_integration-schemas/recurly/v1/foreign-keys.md
+++ b/archive/_integration-schemas/recurly/v1/foreign-keys.md
@@ -60,7 +60,7 @@ foreign-keys:
join-on: "id"
- table: "subscriptions"
subtable: "coupon_redemptions__coupon"
- join-id: "id"
+ join-on: "id"
- id: "coupon-redemption-id"
attribute: ""
@@ -70,7 +70,7 @@ foreign-keys:
join-on: "id"
- table: "subscriptions"
subtable: "coupon_redemptions"
- join-id: "id"
+ join-on: "id"
- id: "invoice-id"
attribute: "invoice_id"
diff --git a/_integration-schemas/recurly/v1/invoices.md b/archive/_integration-schemas/recurly/v1/invoices.md
similarity index 99%
rename from _integration-schemas/recurly/v1/invoices.md
rename to archive/_integration-schemas/recurly/v1/invoices.md
index 593daed17..cde677906 100644
--- a/_integration-schemas/recurly/v1/invoices.md
+++ b/archive/_integration-schemas/recurly/v1/invoices.md
@@ -218,7 +218,7 @@ attributes:
- name: "type"
type: "string"
- description: &type |
+ description: |
The type of the invoice. Possible values are:
- `charge`
@@ -961,11 +961,11 @@ attributes:
subattributes:
- name: "amount"
type: "number"
- description: *transaction-amt
+ description: ""
- name: "avs_check"
type: "string"
- description: *avs_check
+ description: *avs-check
- name: "account"
type: "object"
@@ -979,15 +979,15 @@ attributes:
- name: "collected_at"
type: "date-time"
- description: *collected_at
+ description: *collected-at
- name: "collection_method"
type: "string"
- description: *collection_method
+ description: *collection-method
- name: "created_at"
type: "date-time"
- description: *created_at
+ description: *created-at
- name: "currency"
type: "string"
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/_integration-schemas/revinate/v1/reviews.md b/archive/_integration-schemas/revinate/v1/reviews.md
similarity index 97%
rename from _integration-schemas/revinate/v1/reviews.md
rename to archive/_integration-schemas/revinate/v1/reviews.md
index 63d5d7039..fc4ecf704 100644
--- a/_integration-schemas/revinate/v1/reviews.md
+++ b/archive/_integration-schemas/revinate/v1/reviews.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/sailthru/v1/foreign-keys.md b/archive/_integration-schemas/sailthru/v1/foreign-keys.md
similarity index 97%
rename from _integration-schemas/sailthru/v1/foreign-keys.md
rename to archive/_integration-schemas/sailthru/v1/foreign-keys.md
index 65da4a49e..e19afb5cb 100644
--- a/_integration-schemas/sailthru/v1/foreign-keys.md
+++ b/archive/_integration-schemas/sailthru/v1/foreign-keys.md
@@ -7,7 +7,7 @@
## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
## FOR INSTRUCTIONS & REFERENCE INFO
-tap-reference: "integration"
+tap-reference: "sailthru"
version: "1"
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/_integration-schemas/salesforce/v1/account.md b/archive/_integration-schemas/salesforce/v1/account.md
similarity index 99%
rename from _integration-schemas/salesforce/v1/account.md
rename to archive/_integration-schemas/salesforce/v1/account.md
index 22fe6f65b..62128de8d 100644
--- a/_integration-schemas/salesforce/v1/account.md
+++ b/archive/_integration-schemas/salesforce/v1/account.md
@@ -4,7 +4,7 @@ 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.
diff --git a/_integration-schemas/salesforce/v1/contact.md b/archive/_integration-schemas/salesforce/v1/contact.md
similarity index 99%
rename from _integration-schemas/salesforce/v1/contact.md
rename to archive/_integration-schemas/salesforce/v1/contact.md
index 796bc9445..92a45a912 100644
--- a/_integration-schemas/salesforce/v1/contact.md
+++ b/archive/_integration-schemas/salesforce/v1/contact.md
@@ -4,7 +4,7 @@ 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.
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/_integration-schemas/selligent/campaign.md b/archive/_integration-schemas/selligent/campaign.md
similarity index 98%
rename from _integration-schemas/selligent/campaign.md
rename to archive/_integration-schemas/selligent/campaign.md
index ee2d8b336..67c4361b4 100644
--- a/_integration-schemas/selligent/campaign.md
+++ b/archive/_integration-schemas/selligent/campaign.md
@@ -4,7 +4,7 @@ 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."
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/_integration-schemas/sendgrid-core/campaigns.md b/archive/_integration-schemas/sendgrid-core/campaigns.md
similarity index 99%
rename from _integration-schemas/sendgrid-core/campaigns.md
rename to archive/_integration-schemas/sendgrid-core/campaigns.md
index 0106c35e5..01c552ab5 100644
--- a/_integration-schemas/sendgrid-core/campaigns.md
+++ b/archive/_integration-schemas/sendgrid-core/campaigns.md
@@ -3,7 +3,7 @@ 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.
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/_integration-schemas/snapchat-ads/v1/ads.md b/archive/_integration-schemas/snapchat-ads/v1/ads.md
similarity index 98%
rename from _integration-schemas/snapchat-ads/v1/ads.md
rename to archive/_integration-schemas/snapchat-ads/v1/ads.md
index e387cd5d4..18fa7e2d8 100644
--- a/_integration-schemas/snapchat-ads/v1/ads.md
+++ b/archive/_integration-schemas/snapchat-ads/v1/ads.md
@@ -71,7 +71,6 @@ attributes:
- name: "tracking_url_metadata"
type: "object"
description: ""
- subattributes:
- name: "expanded_tracking_url"
type: "string"
@@ -89,7 +88,6 @@ attributes:
- name: "tracking_url_metadata"
type: "object"
description: ""
- subattributes:
- name: "expanded_tracking_url"
type: "string"
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/_integration-schemas/snapchat-ads/v1/campaigns.md b/archive/_integration-schemas/snapchat-ads/v1/campaigns.md
similarity index 97%
rename from _integration-schemas/snapchat-ads/v1/campaigns.md
rename to archive/_integration-schemas/snapchat-ads/v1/campaigns.md
index 0a052a9ae..0eaf6da7b 100644
--- a/_integration-schemas/snapchat-ads/v1/campaigns.md
+++ b/archive/_integration-schemas/snapchat-ads/v1/campaigns.md
@@ -46,7 +46,6 @@ attributes:
- name: "measurement_spec"
type: "object"
description: "The apps to be tracked for this campaign"
- subattributes:
- name: "name"
type: "string"
@@ -59,7 +58,6 @@ attributes:
- name: "regulations"
type: "object"
description: "Required for Campaigns that run Ads for Credit, Housing, Employment (CHE)"
- subattributes:
- name: "start_time"
type: "date-time"
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/_integration-schemas/stripe/v1/charges.md b/archive/_integration-schemas/stripe/v1/charges.md
similarity index 99%
rename from _integration-schemas/stripe/v1/charges.md
rename to archive/_integration-schemas/stripe/v1/charges.md
index e5e39fb41..d3a821ac4 100644
--- a/_integration-schemas/stripe/v1/charges.md
+++ b/archive/_integration-schemas/stripe/v1/charges.md
@@ -305,10 +305,6 @@ attributes:
- name: "metadata"
type: "object"
description: "Additional information attached to the charge."
- subattributes:
- - name: ""
- type:
- description: ""
- name: "object"
type: "string"
@@ -737,7 +733,6 @@ attributes:
- name: "stripe_account"
type: "object"
description: ""
- subattributes: FIXME
- name: "three_d_secure"
type: "object"
description: ""
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/_integration-schemas/stripe/v1/customers.md b/archive/_integration-schemas/stripe/v1/customers.md
similarity index 90%
rename from _integration-schemas/stripe/v1/customers.md
rename to archive/_integration-schemas/stripe/v1/customers.md
index 39becb644..d2d3605ca 100644
--- a/_integration-schemas/stripe/v1/customers.md
+++ b/archive/_integration-schemas/stripe/v1/customers.md
@@ -512,10 +512,6 @@ attributes:
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"
@@ -525,10 +521,6 @@ attributes:
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"
@@ -544,65 +536,43 @@ attributes:
- name: "address_city"
type: "string"
- description: &address-city "The city associated with the card's billing address."
+ description: *address-city
- name: "address_country"
type: "string"
- description: &address-country "The billing address country."
+ description: *address-country
- name: "address_line1"
type: "string"
- description: &address-line1 "The first line of the billing address."
+ description: *address-line1
- 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`
+ description: *address-line1-check
- name: "address_line2"
type: "string"
- description: &address-line2 "The second line of the billing address."
+ description: *address-line2
- name: "address_state"
type: "string"
- description: &address-state "The state/county/province/region of the billing address."
+ description: *address-state
- name: "address_zip"
type: "string"
- description: &address-zip "The zip or postal code of the billing address."
+ description: *address-zip
- 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`
+ description: *address-zip-check
- name: "brand"
type: "string"
- description: &brand |
- The brand of the card. Possible values are:
-
- - `American Express`
- - `Diners Club`
- - `Discover`
- - `JCB`
- - `MasterCard`
- - `UnionPay`
- - `Visa`
- - `Unknown`
+ description: *brand
- name: "country"
type: "string"
- description: &country "The two-letter ISO code representing the country of the card."
+ description: *country
- name: "customer"
type: "string"
@@ -611,55 +581,40 @@ attributes:
- 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`
+ description: *cvc-check
- name: "dynamic_last4"
type: "string"
- description: &dynamic-last4 "**For tokenized numbers only.** The last four digits of the device account number."
+ description: *dynamic-last4
- name: "exp_month"
type: "integer"
- description: &exp-month "The two-digit number representing the card's expiration month."
+ description: *exp-month
- name: "exp_year"
type: "integer"
- description: &exp-year "The four-digit number representing the card's expiration year."
+ description: *exp-year
- name: "fingerprint"
type: "string"
- description: &fingerprint "A unique ID for the card number."
+ description: *fingerprint
- name: "funding"
type: "string"
- description: &funding |
- The card's funding type. Possible values are:
-
- - `credit`
- - `debit`
- - `prepaid`
- - `unknown`
+ description: *funding
- name: "last4"
type: "string"
- description: &last4 "The last four digits of the card."
+ description: *last4
- name: "metadata"
type: "object"
description: "Additional information attached to the card."
- subattributes: &metadata
- - name: "ANYTHING"
- type: "ANYTHING"
- description: "This info will vary."
+ subattributes: *metadata
- name: "name"
type: "string"
- description: &card-name "The name of the cardholder."
+ description: *card-name
- name: "object"
type: "string"
@@ -667,11 +622,7 @@ attributes:
- 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`
+ description: *tokenization-method
- name: "client_secret"
type: "string"
@@ -706,7 +657,6 @@ attributes:
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"
@@ -742,7 +692,6 @@ attributes:
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"
@@ -761,7 +710,6 @@ attributes:
type: "object"
description: ""
doc-link: "https://stripe.com/docs/sources/multibanco"
- subattributes:
- name: "name"
type: "string"
diff --git a/_integration-schemas/stripe/v1/disputes.md b/archive/_integration-schemas/stripe/v1/disputes.md
similarity index 99%
rename from _integration-schemas/stripe/v1/disputes.md
rename to archive/_integration-schemas/stripe/v1/disputes.md
index ab2a8006c..89e174e8f 100644
--- a/_integration-schemas/stripe/v1/disputes.md
+++ b/archive/_integration-schemas/stripe/v1/disputes.md
@@ -161,7 +161,6 @@ attributes:
- name: "metadata"
type: "object"
description: "A set of key-value pairs that you can attach to an object."
- subattributes:
- name: "object"
type: "string"
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/_integration-schemas/stripe/v1/payouts.md b/archive/_integration-schemas/stripe/v1/payouts.md
similarity index 99%
rename from _integration-schemas/stripe/v1/payouts.md
rename to archive/_integration-schemas/stripe/v1/payouts.md
index 72201e51a..5c71e06d6 100644
--- a/_integration-schemas/stripe/v1/payouts.md
+++ b/archive/_integration-schemas/stripe/v1/payouts.md
@@ -89,7 +89,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
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/_integration-schemas/stripe/v2/charges.md b/archive/_integration-schemas/stripe/v2/charges.md
similarity index 99%
rename from _integration-schemas/stripe/v2/charges.md
rename to archive/_integration-schemas/stripe/v2/charges.md
index 4a9da849f..15110e6fe 100644
--- a/_integration-schemas/stripe/v2/charges.md
+++ b/archive/_integration-schemas/stripe/v2/charges.md
@@ -108,7 +108,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "exp_month"
type: "integer"
description: ""
@@ -615,14 +614,12 @@ attributes:
- 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: ""
@@ -780,7 +777,6 @@ attributes:
- name: "klarna"
type: "object"
description: ""
- subattributes:
- name: "multibanco"
type: "object"
description: ""
@@ -848,18 +844,15 @@ attributes:
- 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: ""
@@ -940,7 +933,6 @@ attributes:
- name: "shipping"
type: "object"
description: ""
- subattributes:
- name: "source"
type: "object"
@@ -949,7 +941,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
description: ""
@@ -1198,23 +1189,18 @@ attributes:
- 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: ""
diff --git a/_integration-schemas/stripe/v2/coupons.md b/archive/_integration-schemas/stripe/v2/coupons.md
similarity index 99%
rename from _integration-schemas/stripe/v2/coupons.md
rename to archive/_integration-schemas/stripe/v2/coupons.md
index 96b607e19..05791b8a0 100644
--- a/_integration-schemas/stripe/v2/coupons.md
+++ b/archive/_integration-schemas/stripe/v2/coupons.md
@@ -54,7 +54,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
diff --git a/_integration-schemas/stripe/v2/customers.md b/archive/_integration-schemas/stripe/v2/customers.md
similarity index 98%
rename from _integration-schemas/stripe/v2/customers.md
rename to archive/_integration-schemas/stripe/v2/customers.md
index b54ead741..60aa23465 100644
--- a/_integration-schemas/stripe/v2/customers.md
+++ b/archive/_integration-schemas/stripe/v2/customers.md
@@ -71,7 +71,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
@@ -200,7 +199,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "valid"
type: "boolean"
@@ -336,7 +334,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
@@ -411,7 +408,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -741,27 +737,22 @@ attributes:
- 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"
@@ -793,7 +784,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -1123,27 +1113,22 @@ attributes:
- 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"
diff --git a/_integration-schemas/stripe/v2/disputes.md b/archive/_integration-schemas/stripe/v2/disputes.md
similarity index 99%
rename from _integration-schemas/stripe/v2/disputes.md
rename to archive/_integration-schemas/stripe/v2/disputes.md
index cd8bd3477..29771f3a5 100644
--- a/_integration-schemas/stripe/v2/disputes.md
+++ b/archive/_integration-schemas/stripe/v2/disputes.md
@@ -193,7 +193,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
diff --git a/_integration-schemas/stripe/v2/events.md b/archive/_integration-schemas/stripe/v2/events.md
similarity index 99%
rename from _integration-schemas/stripe/v2/events.md
rename to archive/_integration-schemas/stripe/v2/events.md
index c508e2e43..0a27edb4b 100644
--- a/_integration-schemas/stripe/v2/events.md
+++ b/archive/_integration-schemas/stripe/v2/events.md
@@ -38,7 +38,6 @@ attributes:
- name: "data"
type: "object"
description: ""
- subattributes:
- name: "livemode"
type: "boolean"
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/_integration-schemas/stripe/v2/invoice_items.md b/archive/_integration-schemas/stripe/v2/invoice_items.md
similarity index 99%
rename from _integration-schemas/stripe/v2/invoice_items.md
rename to archive/_integration-schemas/stripe/v2/invoice_items.md
index d17add250..646596884 100644
--- a/_integration-schemas/stripe/v2/invoice_items.md
+++ b/archive/_integration-schemas/stripe/v2/invoice_items.md
@@ -4,7 +4,7 @@ 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.
@@ -68,7 +68,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
@@ -201,7 +200,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "updated"
type: "string"
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/_integration-schemas/stripe/v2/invoices.md b/archive/_integration-schemas/stripe/v2/invoices.md
similarity index 99%
rename from _integration-schemas/stripe/v2/invoices.md
rename to archive/_integration-schemas/stripe/v2/invoices.md
index 19cc3ad95..f43bd1e4a 100644
--- a/_integration-schemas/stripe/v2/invoices.md
+++ b/archive/_integration-schemas/stripe/v2/invoices.md
@@ -323,7 +323,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "valid"
type: "boolean"
@@ -506,7 +505,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_payment_attempt"
type: "string"
@@ -523,7 +521,6 @@ attributes:
- 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"
@@ -614,7 +611,6 @@ attributes:
- name: "quote"
type: "object, string"
description: "The quote this invoice was generated from."
- subattributes:
- name: "receipt_number"
type: "string"
diff --git a/_integration-schemas/stripe/v2/payment_intents.md b/archive/_integration-schemas/stripe/v2/payment_intents.md
similarity index 98%
rename from _integration-schemas/stripe/v2/payment_intents.md
rename to archive/_integration-schemas/stripe/v2/payment_intents.md
index 6d17248bc..d797a0c6e 100644
--- a/_integration-schemas/stripe/v2/payment_intents.md
+++ b/archive/_integration-schemas/stripe/v2/payment_intents.md
@@ -75,7 +75,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "fraud_details"
type: "object"
@@ -196,7 +195,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -526,27 +524,22 @@ attributes:
- 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"
@@ -654,7 +647,6 @@ attributes:
- name: "shipping"
type: "object"
description: ""
- subattributes:
- name: "calculated_statement_descriptor"
type: "string"
@@ -707,7 +699,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "exp_month"
type: "integer"
@@ -1090,12 +1081,10 @@ attributes:
- name: "amex_express_checkout"
type: "object"
description: ""
- subattributes:
- name: "apple_pay"
type: "object"
description: ""
- subattributes:
- name: "dynamic_last4"
type: "string"
@@ -1104,7 +1093,6 @@ attributes:
- name: "google_pay"
type: "object"
description: ""
- subattributes:
- name: "masterpass"
type: "object"
@@ -1180,7 +1168,6 @@ attributes:
- name: "samsung_pay"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -1398,7 +1385,6 @@ attributes:
- name: "klarna"
type: "object"
description: ""
- subattributes:
- name: "multibanco"
type: "object"
@@ -1487,7 +1473,6 @@ attributes:
- name: "stripe_account"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -1496,12 +1481,10 @@ attributes:
- name: "wechat"
type: "object"
description: ""
- subattributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "address_state"
type: "string"
@@ -1606,7 +1589,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "fraud_details"
type: "object"
@@ -1727,7 +1709,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -2057,27 +2038,22 @@ attributes:
- 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"
@@ -2185,7 +2161,6 @@ attributes:
- name: "shipping"
type: "object"
description: ""
- subattributes:
- name: "calculated_statement_descriptor"
type: "string"
@@ -2238,7 +2213,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "exp_month"
type: "integer"
@@ -2621,12 +2595,10 @@ attributes:
- name: "amex_express_checkout"
type: "object"
description: ""
- subattributes:
- name: "apple_pay"
type: "object"
description: ""
- subattributes:
- name: "dynamic_last4"
type: "string"
@@ -2635,7 +2607,6 @@ attributes:
- name: "google_pay"
type: "object"
description: ""
- subattributes:
- name: "masterpass"
type: "object"
@@ -2711,7 +2682,6 @@ attributes:
- name: "samsung_pay"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -2929,7 +2899,6 @@ attributes:
- name: "klarna"
type: "object"
description: ""
- subattributes:
- name: "multibanco"
type: "object"
@@ -3018,7 +2987,6 @@ attributes:
- name: "stripe_account"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -3027,12 +2995,10 @@ attributes:
- name: "wechat"
type: "object"
description: ""
- subattributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "address_state"
type: "string"
@@ -3198,7 +3164,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_action"
type: "object"
@@ -3283,7 +3248,6 @@ attributes:
- name: "use_stripe_sdk"
type: "object"
description: ""
- subattributes:
- name: "verify_with_microdeposits"
type: "object"
@@ -3533,7 +3497,6 @@ attributes:
- name: "card_present"
type: "object"
description: ""
- subattributes:
- name: "eps"
type: "object"
@@ -3583,7 +3546,6 @@ attributes:
- name: "interac_present"
type: "object"
description: ""
- subattributes:
- name: "klarna"
type: "object"
@@ -3627,7 +3589,6 @@ attributes:
- name: "mandate_options"
type: "object"
description: ""
- subattributes:
- name: "setup_future_usage"
type: "string"
@@ -3676,7 +3637,6 @@ attributes:
- name: "processing"
type: "object"
description: ""
- subattributes:
- name: "receipt_email"
type: "string"
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/_integration-schemas/stripe/v2/payouts.md b/archive/_integration-schemas/stripe/v2/payouts.md
similarity index 99%
rename from _integration-schemas/stripe/v2/payouts.md
rename to archive/_integration-schemas/stripe/v2/payouts.md
index 49dcafbf4..c66c0ae4c 100644
--- a/_integration-schemas/stripe/v2/payouts.md
+++ b/archive/_integration-schemas/stripe/v2/payouts.md
@@ -56,7 +56,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "routing_number"
type: "string"
@@ -142,7 +141,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "method"
type: "string"
diff --git a/_integration-schemas/stripe/v2/plans.md b/archive/_integration-schemas/stripe/v2/plans.md
similarity index 99%
rename from _integration-schemas/stripe/v2/plans.md
rename to archive/_integration-schemas/stripe/v2/plans.md
index 966316c1d..79fe7fccc 100644
--- a/_integration-schemas/stripe/v2/plans.md
+++ b/archive/_integration-schemas/stripe/v2/plans.md
@@ -66,7 +66,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
diff --git a/_integration-schemas/stripe/v2/products.md b/archive/_integration-schemas/stripe/v2/products.md
similarity index 99%
rename from _integration-schemas/stripe/v2/products.md
rename to archive/_integration-schemas/stripe/v2/products.md
index 4c2ed9a7d..b916a64ca 100644
--- a/_integration-schemas/stripe/v2/products.md
+++ b/archive/_integration-schemas/stripe/v2/products.md
@@ -70,7 +70,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
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/_integration-schemas/stripe/v2/subscriptions.md b/archive/_integration-schemas/stripe/v2/subscriptions.md
similarity index 99%
rename from _integration-schemas/stripe/v2/subscriptions.md
rename to archive/_integration-schemas/stripe/v2/subscriptions.md
index 62f4e7893..edae87dba 100644
--- a/_integration-schemas/stripe/v2/subscriptions.md
+++ b/archive/_integration-schemas/stripe/v2/subscriptions.md
@@ -108,7 +108,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "valid"
type: "boolean"
@@ -241,7 +240,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_pending_invoice_item_invoice"
type: "string"
@@ -288,7 +286,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "product"
type: "string"
diff --git a/_integration-schemas/stripe/v2/transfers.md b/archive/_integration-schemas/stripe/v2/transfers.md
similarity index 98%
rename from _integration-schemas/stripe/v2/transfers.md
rename to archive/_integration-schemas/stripe/v2/transfers.md
index 3d673a3ae..94b45d21f 100644
--- a/_integration-schemas/stripe/v2/transfers.md
+++ b/archive/_integration-schemas/stripe/v2/transfers.md
@@ -4,7 +4,7 @@ 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.
@@ -76,7 +76,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
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/_integration-schemas/stripe/v3/charges.md b/archive/_integration-schemas/stripe/v3/charges.md
similarity index 99%
rename from _integration-schemas/stripe/v3/charges.md
rename to archive/_integration-schemas/stripe/v3/charges.md
index d4fc96ab9..7bfac967c 100644
--- a/_integration-schemas/stripe/v3/charges.md
+++ b/archive/_integration-schemas/stripe/v3/charges.md
@@ -118,7 +118,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "exp_month"
type: "integer"
@@ -647,14 +646,12 @@ attributes:
- 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: ""
@@ -812,7 +809,6 @@ attributes:
- name: "klarna"
type: "object"
description: ""
- subattributes:
- name: "multibanco"
type: "object"
description: ""
@@ -880,18 +876,15 @@ attributes:
- 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: ""
@@ -1006,7 +999,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_action"
type: "object"
@@ -1073,7 +1065,6 @@ attributes:
- name: "shipping"
type: "object"
description: ""
- subattributes:
- name: "source"
type: "object"
@@ -1082,7 +1073,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
description: ""
@@ -1331,23 +1321,18 @@ attributes:
- 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: ""
diff --git a/_integration-schemas/stripe/v3/coupons.md b/archive/_integration-schemas/stripe/v3/coupons.md
similarity index 99%
rename from _integration-schemas/stripe/v3/coupons.md
rename to archive/_integration-schemas/stripe/v3/coupons.md
index 0b3f7fb1a..8ea93af74 100644
--- a/_integration-schemas/stripe/v3/coupons.md
+++ b/archive/_integration-schemas/stripe/v3/coupons.md
@@ -54,7 +54,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
diff --git a/_integration-schemas/stripe/v3/customers.md b/archive/_integration-schemas/stripe/v3/customers.md
similarity index 98%
rename from _integration-schemas/stripe/v3/customers.md
rename to archive/_integration-schemas/stripe/v3/customers.md
index 6fad83b49..e8c35779a 100644
--- a/_integration-schemas/stripe/v3/customers.md
+++ b/archive/_integration-schemas/stripe/v3/customers.md
@@ -71,7 +71,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
@@ -200,7 +199,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "valid"
type: "boolean"
@@ -336,7 +334,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
@@ -411,7 +408,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -741,27 +737,22 @@ attributes:
- 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"
@@ -793,7 +784,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "type"
type: "string"
@@ -1123,27 +1113,22 @@ attributes:
- 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"
diff --git a/_integration-schemas/stripe/v3/disputes.md b/archive/_integration-schemas/stripe/v3/disputes.md
similarity index 99%
rename from _integration-schemas/stripe/v3/disputes.md
rename to archive/_integration-schemas/stripe/v3/disputes.md
index 024cb6449..a3a1af982 100644
--- a/_integration-schemas/stripe/v3/disputes.md
+++ b/archive/_integration-schemas/stripe/v3/disputes.md
@@ -193,7 +193,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
diff --git a/_integration-schemas/stripe/v3/events.md b/archive/_integration-schemas/stripe/v3/events.md
similarity index 99%
rename from _integration-schemas/stripe/v3/events.md
rename to archive/_integration-schemas/stripe/v3/events.md
index eb21b8d43..103593447 100644
--- a/_integration-schemas/stripe/v3/events.md
+++ b/archive/_integration-schemas/stripe/v3/events.md
@@ -38,7 +38,6 @@ attributes:
- name: "data"
type: "object"
description: ""
- subattributes:
- name: "livemode"
type: "boolean"
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/_integration-schemas/stripe/v3/invoice_items.md b/archive/_integration-schemas/stripe/v3/invoice_items.md
similarity index 99%
rename from _integration-schemas/stripe/v3/invoice_items.md
rename to archive/_integration-schemas/stripe/v3/invoice_items.md
index c0437d94b..500797fae 100644
--- a/_integration-schemas/stripe/v3/invoice_items.md
+++ b/archive/_integration-schemas/stripe/v3/invoice_items.md
@@ -68,7 +68,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
@@ -201,7 +200,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "updated"
type: "string"
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/_integration-schemas/stripe/v3/invoices.md b/archive/_integration-schemas/stripe/v3/invoices.md
similarity index 99%
rename from _integration-schemas/stripe/v3/invoices.md
rename to archive/_integration-schemas/stripe/v3/invoices.md
index fc216e8aa..227f5b28e 100644
--- a/_integration-schemas/stripe/v3/invoices.md
+++ b/archive/_integration-schemas/stripe/v3/invoices.md
@@ -325,7 +325,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "valid"
type: "boolean"
@@ -512,7 +511,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_payment_attempt"
type: "date-time"
@@ -529,7 +527,6 @@ attributes:
- 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"
@@ -620,7 +617,6 @@ attributes:
- name: "quote"
type: "object, string"
description: ""
- subattributes:
- name: "receipt_number"
type: "string"
diff --git a/_integration-schemas/stripe/v3/payment_intents.md b/archive/_integration-schemas/stripe/v3/payment_intents.md
similarity index 99%
rename from _integration-schemas/stripe/v3/payment_intents.md
rename to archive/_integration-schemas/stripe/v3/payment_intents.md
index 82e90aefc..5397870ee 100644
--- a/_integration-schemas/stripe/v3/payment_intents.md
+++ b/archive/_integration-schemas/stripe/v3/payment_intents.md
@@ -140,7 +140,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_action"
type: "object"
@@ -225,7 +224,6 @@ attributes:
- name: "use_stripe_sdk"
type: "object"
description: ""
- subattributes:
- name: "verify_with_microdeposits"
type: "object"
@@ -475,7 +473,6 @@ attributes:
- name: "card_present"
type: "object"
description: ""
- subattributes:
- name: "eps"
type: "object"
@@ -525,7 +522,6 @@ attributes:
- name: "interac_present"
type: "object"
description: ""
- subattributes:
- name: "klarna"
type: "object"
@@ -569,7 +565,6 @@ attributes:
- name: "mandate_options"
type: "object"
description: ""
- subattributes:
- name: "setup_future_usage"
type: "string"
@@ -618,7 +613,6 @@ attributes:
- name: "processing"
type: "object"
description: ""
- subattributes:
- name: "receipt_email"
type: "string"
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/_integration-schemas/stripe/v3/payouts.md b/archive/_integration-schemas/stripe/v3/payouts.md
similarity index 99%
rename from _integration-schemas/stripe/v3/payouts.md
rename to archive/_integration-schemas/stripe/v3/payouts.md
index 3e13e1367..60db01d78 100644
--- a/_integration-schemas/stripe/v3/payouts.md
+++ b/archive/_integration-schemas/stripe/v3/payouts.md
@@ -56,7 +56,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "routing_number"
type: "string"
@@ -142,7 +141,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "method"
type: "string"
diff --git a/_integration-schemas/stripe/v3/plans.md b/archive/_integration-schemas/stripe/v3/plans.md
similarity index 99%
rename from _integration-schemas/stripe/v3/plans.md
rename to archive/_integration-schemas/stripe/v3/plans.md
index 7c473943e..7c8c4549d 100644
--- a/_integration-schemas/stripe/v3/plans.md
+++ b/archive/_integration-schemas/stripe/v3/plans.md
@@ -66,7 +66,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
diff --git a/_integration-schemas/stripe/v3/products.md b/archive/_integration-schemas/stripe/v3/products.md
similarity index 99%
rename from _integration-schemas/stripe/v3/products.md
rename to archive/_integration-schemas/stripe/v3/products.md
index 1a69299c9..b292f522f 100644
--- a/_integration-schemas/stripe/v3/products.md
+++ b/archive/_integration-schemas/stripe/v3/products.md
@@ -70,7 +70,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "name"
type: "string"
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/_integration-schemas/stripe/v3/subscriptions.md b/archive/_integration-schemas/stripe/v3/subscriptions.md
similarity index 99%
rename from _integration-schemas/stripe/v3/subscriptions.md
rename to archive/_integration-schemas/stripe/v3/subscriptions.md
index 78e0be1f9..4423b3b71 100644
--- a/_integration-schemas/stripe/v3/subscriptions.md
+++ b/archive/_integration-schemas/stripe/v3/subscriptions.md
@@ -108,7 +108,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "valid"
type: "boolean"
@@ -241,7 +240,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "next_pending_invoice_item_invoice"
type: "string"
@@ -288,7 +286,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "product"
type: "string"
diff --git a/_integration-schemas/stripe/v3/transfers.md b/archive/_integration-schemas/stripe/v3/transfers.md
similarity index 99%
rename from _integration-schemas/stripe/v3/transfers.md
rename to archive/_integration-schemas/stripe/v3/transfers.md
index f3b08fe98..8da05f7fa 100644
--- a/_integration-schemas/stripe/v3/transfers.md
+++ b/archive/_integration-schemas/stripe/v3/transfers.md
@@ -76,7 +76,6 @@ attributes:
- name: "metadata"
type: "object"
description: ""
- subattributes:
- name: "object"
type: "string"
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/_integration-schemas/surveymonkey/v1/responses.md b/archive/_integration-schemas/surveymonkey/v1/responses.md
similarity index 98%
rename from _integration-schemas/surveymonkey/v1/responses.md
rename to archive/_integration-schemas/surveymonkey/v1/responses.md
index adcb4923e..3e7951e60 100644
--- a/_integration-schemas/surveymonkey/v1/responses.md
+++ b/archive/_integration-schemas/surveymonkey/v1/responses.md
@@ -46,7 +46,6 @@ attributes:
- name: "custom_variables"
type: "object"
description: "The values to any available custom variables in the survey."
- subattributes:
- name: "date_created"
type: "date-time"
@@ -79,12 +78,10 @@ attributes:
- 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"
diff --git a/_integration-schemas/surveymonkey/v1/simplified_responses.md b/archive/_integration-schemas/surveymonkey/v1/simplified_responses.md
similarity index 98%
rename from _integration-schemas/surveymonkey/v1/simplified_responses.md
rename to archive/_integration-schemas/surveymonkey/v1/simplified_responses.md
index f42c2bc96..ed71b9f39 100644
--- a/_integration-schemas/surveymonkey/v1/simplified_responses.md
+++ b/archive/_integration-schemas/surveymonkey/v1/simplified_responses.md
@@ -46,7 +46,6 @@ attributes:
- name: "custom_variables"
type: "object"
description: "The values to any available custom variables in the survey."
- subattributes:
- name: "date_created"
type: "date-time"
@@ -67,12 +66,10 @@ attributes:
- 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"
diff --git a/_integration-schemas/surveymonkey/v1/survey_details.md b/archive/_integration-schemas/surveymonkey/v1/survey_details.md
similarity index 99%
rename from _integration-schemas/surveymonkey/v1/survey_details.md
rename to archive/_integration-schemas/surveymonkey/v1/survey_details.md
index 4734d0ad6..e7fd569ee 100644
--- a/_integration-schemas/surveymonkey/v1/survey_details.md
+++ b/archive/_integration-schemas/surveymonkey/v1/survey_details.md
@@ -58,7 +58,6 @@ attributes:
- name: "custom_variables"
type: "object"
description: "The dictionary of survey variables."
- subattributes:
- name: "date_created"
type: "date-time"
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/_integration-schemas/surveymonkey/v2/responses.md b/archive/_integration-schemas/surveymonkey/v2/responses.md
similarity index 98%
rename from _integration-schemas/surveymonkey/v2/responses.md
rename to archive/_integration-schemas/surveymonkey/v2/responses.md
index 7ac3ae56c..46c889cf4 100644
--- a/_integration-schemas/surveymonkey/v2/responses.md
+++ b/archive/_integration-schemas/surveymonkey/v2/responses.md
@@ -46,7 +46,6 @@ attributes:
- name: "custom_variables"
type: "object"
description: "The values to any available custom variables in the survey."
- subattributes:
- name: "date_created"
type: "date-time"
@@ -79,12 +78,10 @@ attributes:
- 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"
diff --git a/_integration-schemas/surveymonkey/v2/simplified_responses.md b/archive/_integration-schemas/surveymonkey/v2/simplified_responses.md
similarity index 98%
rename from _integration-schemas/surveymonkey/v2/simplified_responses.md
rename to archive/_integration-schemas/surveymonkey/v2/simplified_responses.md
index 26852be2f..1f656ac02 100644
--- a/_integration-schemas/surveymonkey/v2/simplified_responses.md
+++ b/archive/_integration-schemas/surveymonkey/v2/simplified_responses.md
@@ -46,7 +46,6 @@ attributes:
- name: "custom_variables"
type: "object"
description: "The values to any available custom variables in the survey."
- subattributes:
- name: "date_created"
type: "date-time"
@@ -67,12 +66,10 @@ attributes:
- 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"
diff --git a/_integration-schemas/surveymonkey/v2/survey_details.md b/archive/_integration-schemas/surveymonkey/v2/survey_details.md
similarity index 99%
rename from _integration-schemas/surveymonkey/v2/survey_details.md
rename to archive/_integration-schemas/surveymonkey/v2/survey_details.md
index db587882b..106949e0a 100644
--- a/_integration-schemas/surveymonkey/v2/survey_details.md
+++ b/archive/_integration-schemas/surveymonkey/v2/survey_details.md
@@ -58,7 +58,6 @@ attributes:
- name: "custom_variables"
type: "object"
description: "The dictionary of survey variables."
- subattributes:
- name: "date_created"
type: "date-time"
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/_integration-schemas/xero/contacts.md b/archive/_integration-schemas/xero/contacts.md
similarity index 97%
rename from _integration-schemas/xero/contacts.md
rename to archive/_integration-schemas/xero/contacts.md
index b7f48790c..80346b361 100644
--- a/_integration-schemas/xero/contacts.md
+++ b/archive/_integration-schemas/xero/contacts.md
@@ -334,9 +334,6 @@ attributes:
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"
@@ -346,9 +343,6 @@ attributes:
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"
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/_integration-schemas/xero/invoices.md b/archive/_integration-schemas/xero/invoices.md
similarity index 85%
rename from _integration-schemas/xero/invoices.md
rename to archive/_integration-schemas/xero/invoices.md
index 7ac614276..40c69d1c6 100644
--- a/_integration-schemas/xero/invoices.md
+++ b/archive/_integration-schemas/xero/invoices.md
@@ -38,9 +38,6 @@ attributes:
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"
@@ -120,9 +117,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"
@@ -198,33 +192,21 @@ attributes:
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"
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/_integration-schemas/zendesk/v1/ticket_audits.md b/archive/_integration-schemas/zendesk/v1/ticket_audits.md
similarity index 97%
rename from _integration-schemas/zendesk/v1/ticket_audits.md
rename to archive/_integration-schemas/zendesk/v1/ticket_audits.md
index 861b0d3ca..79d7e1758 100644
--- a/_integration-schemas/zendesk/v1/ticket_audits.md
+++ b/archive/_integration-schemas/zendesk/v1/ticket_audits.md
@@ -47,22 +47,6 @@ attributes:
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"
@@ -85,7 +69,6 @@ attributes:
- name: "flags_options"
type: "object"
description: "For `Comment` and `VoiceComment` events, additional information about the comment flags."
- subattributes:
# START METADATA > SYSTEM OBJECT
- name: "system"
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/_integration-schemas/zendesk/v1/ticket_metrics.md b/archive/_integration-schemas/zendesk/v1/ticket_metrics.md
similarity index 99%
rename from _integration-schemas/zendesk/v1/ticket_metrics.md
rename to archive/_integration-schemas/zendesk/v1/ticket_metrics.md
index 96461fe0c..f17c98865 100644
--- a/_integration-schemas/zendesk/v1/ticket_metrics.md
+++ b/archive/_integration-schemas/zendesk/v1/ticket_metrics.md
@@ -104,7 +104,6 @@ attributes:
- 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"
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/_integration-schemas/zendesk/v2/ticket_audits.md b/archive/_integration-schemas/zendesk/v2/ticket_audits.md
similarity index 99%
rename from _integration-schemas/zendesk/v2/ticket_audits.md
rename to archive/_integration-schemas/zendesk/v2/ticket_audits.md
index 2a1c34e1e..fd41ffb51 100644
--- a/_integration-schemas/zendesk/v2/ticket_audits.md
+++ b/archive/_integration-schemas/zendesk/v2/ticket_audits.md
@@ -85,7 +85,6 @@ attributes:
- name: "flags_options"
type: "object"
description: "For `Comment` and `VoiceComment` events, additional information about the comment flags."
- subattributes:
# START METADATA > SYSTEM OBJECT
- name: "system"
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/_integration-schemas/zendesk/v2/ticket_metrics.md b/archive/_integration-schemas/zendesk/v2/ticket_metrics.md
similarity index 99%
rename from _integration-schemas/zendesk/v2/ticket_metrics.md
rename to archive/_integration-schemas/zendesk/v2/ticket_metrics.md
index 637e7b910..23da74b0f 100644
--- a/_integration-schemas/zendesk/v2/ticket_metrics.md
+++ b/archive/_integration-schemas/zendesk/v2/ticket_metrics.md
@@ -104,7 +104,6 @@ attributes:
- 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"
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/_integration-schemas/zoom/v1/foreign-keys.md b/archive/_integration-schemas/zoom/v1/foreign-keys.md
similarity index 99%
rename from _integration-schemas/zoom/v1/foreign-keys.md
rename to archive/_integration-schemas/zoom/v1/foreign-keys.md
index b6a91f432..501836422 100644
--- a/_integration-schemas/zoom/v1/foreign-keys.md
+++ b/archive/_integration-schemas/zoom/v1/foreign-keys.md
@@ -19,7 +19,7 @@ foreign-keys:
- table: "meeting_poll_results"
join-on: "meeting_uuid"
- table: "meeting_files"
- joini-on: "meeting_uuid"
+ join-on: "meeting_uuid"
- table: "meetings"
join-on: "uuid"
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/_integration-schemas/zuora/account.md b/archive/_integration-schemas/zuora/account.md
similarity index 99%
rename from _integration-schemas/zuora/account.md
rename to archive/_integration-schemas/zuora/account.md
index d1c9d2a87..9f614577a 100644
--- a/_integration-schemas/zuora/account.md
+++ b/archive/_integration-schemas/zuora/account.md
@@ -4,14 +4,12 @@ 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"
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/_integration-schemas/zuora/export.md b/archive/_integration-schemas/zuora/export.md
similarity index 98%
rename from _integration-schemas/zuora/export.md
rename to archive/_integration-schemas/zuora/export.md
index c0755f960..1b4a5741f 100644
--- a/_integration-schemas/zuora/export.md
+++ b/archive/_integration-schemas/zuora/export.md
@@ -4,14 +4,12 @@ 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"
diff --git a/_integration-schemas/zuora/foreign-keys.md b/archive/_integration-schemas/zuora/foreign-keys.md
similarity index 99%
rename from _integration-schemas/zuora/foreign-keys.md
rename to archive/_integration-schemas/zuora/foreign-keys.md
index 2cc7990f2..81455e9fe 100644
--- a/_integration-schemas/zuora/foreign-keys.md
+++ b/archive/_integration-schemas/zuora/foreign-keys.md
@@ -598,13 +598,4 @@ foreign-keys:
- 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/_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)
+
From 2343641094936501ff767acd30158ac0cd93b68d Mon Sep 17 00:00:00 2001
From: Lucie Milan
Date: Mon, 4 Dec 2023 10:47:17 +0100
Subject: [PATCH 2/2] Update import_json_schemas.yml
---
.github/workflows/import_json_schemas.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/import_json_schemas.yml b/.github/workflows/import_json_schemas.yml
index 7c9117af7..76164ed2c 100644
--- a/.github/workflows/import_json_schemas.yml
+++ b/.github/workflows/import_json_schemas.yml
@@ -28,7 +28,7 @@ jobs:
run: |
git config --global user.email "github-actions@github.com"
git fetch
- git checkout TDL-23186-json-schema
+ git checkout master
git branch ${{ env.branch }}
- name: Checkout branch