From d04655f68a8badfcd636324cf96ffa1d05fbeb8d Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Thu, 30 Sep 2021 17:47:41 +0300 Subject: [PATCH 01/10] added more endpoints, corrected integration_test.py, bumped vesion --- .../3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5.json | 2 +- .../resources/seed/source_definitions.yaml | 2 +- .../integration_tests/integration_test.py | 11 +--- .../source-zuora/source_zuora/source.py | 12 ++--- .../source-zuora/source_zuora/spec.json | 51 ++++++++++++++++--- .../source-zuora/source_zuora/zuora_auth.py | 2 +- .../source_zuora/zuora_endpoint.py | 31 +++++++++++ 7 files changed, 84 insertions(+), 27 deletions(-) create mode 100644 airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py diff --git a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5.json b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5.json index b3b9a0d191e8a..d91b1633a27ad 100644 --- a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5.json +++ b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5.json @@ -2,6 +2,6 @@ "sourceDefinitionId": "3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5", "name": "Zuora", "dockerRepository": "airbyte/source-zuora", - "dockerImageTag": "0.1.0", + "dockerImageTag": "0.1.1", "documentationUrl": "https://docs.airbyte.io/integrations/sources/zuora" } diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 19b8515002226..5e539da7f99bc 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -495,7 +495,7 @@ - sourceDefinitionId: 3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5 name: Zuora dockerRepository: airbyte/source-zuora - dockerImageTag: 0.1.0 + dockerImageTag: 0.1.1 documentationUrl: https://docs.airbyte.io/integrations/sources/zuora sourceType: api - sourceDefinitionId: 47f25999-dd5e-4636-8c39-e7cea2453331 diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py b/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py index ac00d669e4359..b67285fae1b63 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py @@ -15,14 +15,7 @@ ZuoraSubmitJob, ) from source_zuora.zuora_auth import ZuoraAuthenticator - - -# Method to get url_base from config input -def get_url_base(is_sandbox: bool = False) -> str: - url_base = "https://rest.zuora.com" - if is_sandbox: - url_base = "https://rest.apisandbox.zuora.com" - return url_base +from source_zuora.zuora_endpoint import get_url_base def get_config(config_path: str) -> Mapping[str, Any]: @@ -37,7 +30,7 @@ def client(config: Dict): """ Create client by extending config dict with authenticator and url_base """ - url_base = get_url_base(config["is_sandbox"]) + url_base = get_url_base(config["tenant_endpoint"]) authenticator = ZuoraAuthenticator( token_refresh_endpoint=f"{url_base}/oauth/token", client_id=config["client_id"], diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py index b3f9f8fa2fc11..c7a98316eab0b 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py @@ -15,17 +15,11 @@ from airbyte_cdk.sources import AbstractSource from airbyte_cdk.sources.streams.http import HttpStream +from .zuora_endpoint import get_url_base from .zuora_auth import ZuoraAuthenticator from .zuora_errors import ZOQLQueryCannotProcessObject, ZOQLQueryFailed, ZOQLQueryFieldCannotResolve -def get_url_base(is_sandbox: bool = False) -> str: - url_base = "https://rest.zuora.com" - if is_sandbox: - url_base = "https://rest.apisandbox.zuora.com" - return url_base - - class ZuoraStream(HttpStream, ABC): """ Parent class for all other classes, except of SourceZuora. @@ -449,7 +443,7 @@ def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) -> """ # Define the endpoint from user's config - url_base = get_url_base(config["is_sandbox"]) + url_base = get_url_base(config["tenant_endpoint"]) try: ZuoraAuthenticator( token_refresh_endpoint=f"{url_base}/oauth/token", @@ -467,7 +461,7 @@ def streams(self, config: Mapping[str, Any]) -> List[ZuoraStream]: Defining streams to run by building stream classes dynamically. """ # Define the endpoint from user's config - url_base = get_url_base(config["is_sandbox"]) + url_base = get_url_base(config["tenant_endpoint"]) # Get Authotization Header with Access Token authenticator = ZuoraAuthenticator( diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json b/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json index 8d00af8828414..c1d1c7264add1 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json @@ -4,7 +4,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Zuora Connector Configuration", "type": "object", - "required": ["start_date", "client_id", "client_secret"], + "required": ["start_date","client_id","client_secret","tenant_endpoint"], "additionalProperties": false, "properties": { "start_date": { @@ -15,7 +15,7 @@ "window_in_days": { "type": "integer", "description": "The amount of days for each data-chunk begining from start_date. Bigger the value - faster the fetch. (Min=1, as for a Day; Max=364, as for a Year).", - "examples": [30, 60, 90, 120, 200, 364], + "examples": [30,60,90,120,200,364], "default": 90 }, "client_id": { @@ -28,10 +28,49 @@ "description": "Client Secret", "airbyte_secret": true }, - "is_sandbox": { - "type": "boolean", - "description": "Defines whether use the SANDBOX or PRODUCTION environment.", - "default": false + "tenant_endpoint": { + "title": "Tenant Endpoint Type", + "type": "object", + "description": "Please choose the right endpoint where your Tenant is located. More info by this Link", + "oneOf": [ + { + "title": "Production", + "description": "Choose between production endpoints", + "required": ["production"], + "properties": { + "production": { + "title": "Choose between production endpoints", + "type": "string", + "enum": ["US Production","US Cloud Production","EU Production"] + } + } + }, + { + "title": "Sandbox", + "description": "Choose between sandbox endpoints", + "required": ["sandbox"], + "properties": { + "sandbox": { + "title": "Choose between sandbox endpoints", + "type": "string", + "enum": ["US API Sandbox","US Cloud API Sandbox","US Central Sandbox","EU API Sandbox","EU Central Sandbox"] + } + } + }, + { + "title": "Custom", + "description": "Enter the URL link for your tenant.", + "required": ["custom"], + "properties": { + "custom": { + "title": "Enter your custom tenant URL", + "type": "string", + "description": "Specifies the URL for Zuora Tenant", + "examples": ["https://my.zuora.tenant.com/"] + } + } + } + ] } } } diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_auth.py b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_auth.py index fc503248ee3f7..98e042d87ef9e 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_auth.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_auth.py @@ -5,7 +5,7 @@ from typing import Any, Mapping -from airbyte_cdk.sources.streams.http.auth.oauth import Oauth2Authenticator +from airbyte_cdk.sources.streams.http.requests_native_auth import Oauth2Authenticator class ZuoraAuthenticator(Oauth2Authenticator): diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py new file mode 100644 index 0000000000000..8562d6da4f190 --- /dev/null +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py @@ -0,0 +1,31 @@ +# +# Copyright (c) 2021 Airbyte, Inc., all rights reserved. +# + + +from typing import Dict + +ZUORA_TENANT_ENDPOINT_MAP: Dict = { + "US Production": "https://rest.zuora.com", + "US API Sandbox": "https://rest.apisandbox.zuora.com", + "US Performance Test": "https://rest.pt1.zuora.com", + "US Cloud Production": "https://rest.na.zuora.com", + "US Cloud API Sandbox": "https://rest.sandbox.na.zuora.com", + "US Central Sandbox": "https://rest.test.zuora.com", + "EU Production": "https://rest.eu.zuora.com", + "EU API Sandbox": "https://rest.sandbox.eu.zuora.com", + "EU Central Sandbox": "https://rest.test.eu.zuora.com", +} + +def get_url_base(tenant_endpoint: str) -> str: + """ Define the URL Base from user's input with respect to the ZUORA_TENANT_ENDPOINT_MAP """ + + # map the tenant_type & endpoint from user's input + tenant_type, endpoint = list(tenant_endpoint.items())[0] + if tenant_type == "custom": + # case with custom tenant URL should return the entered URL as url_base + url_base = endpoint + else: + # all other cases should be handled by the tenant map + url_base = ZUORA_TENANT_ENDPOINT_MAP.get(endpoint) + return url_base \ No newline at end of file From 98bf5d1dc4fbe8383e29cb87f182b9ef8dcbeb74 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Thu, 30 Sep 2021 17:53:26 +0300 Subject: [PATCH 02/10] added changelog --- docs/integrations/sources/zuora.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/integrations/sources/zuora.md b/docs/integrations/sources/zuora.md index 4847597bee76d..39d1ee0673646 100644 --- a/docs/integrations/sources/zuora.md +++ b/docs/integrations/sources/zuora.md @@ -105,5 +105,6 @@ For more information visit [Create an API User page](https://knowledgecenter.zuo ## Changelog | Version | Date | Pull Request | Subject | -| :------ | :-------- | :-------- | :------ | +| :------ | :------ +| 0.1.1 | 2021-10-01 | [6575](https://github.com/airbytehq/airbyte/pull/6575) | Added OAuth support for Airbyte Cloud | | 0.1.0 | 2021-08-01 | [4661](https://github.com/airbytehq/airbyte/pull/4661) | Initial release of Native Zuora connector for Airbyte | From b6679c2e8a214d70b1c7635876037e1a5b097ba0 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Mon, 4 Oct 2021 16:02:06 +0300 Subject: [PATCH 03/10] updated connector and tests for new CI Sandbox + Oauth Flow is added --- .../connectors/source-zuora/Dockerfile | 37 +- .../connectors/source-zuora/README.md | 5 +- .../source-zuora/acceptance-test-config.yml | 2 +- .../integration_tests/abnormal_state.json | 396 +- .../integration_tests/configured_catalog.json | 6495 +++-------------- .../integration_tests/integration_test.py | 20 +- .../integration_tests/invalid_config.json | 4 +- .../some_expected_records.txt | 13 +- .../source-zuora/source_zuora/source.py | 97 +- .../source-zuora/source_zuora/spec.json | 88 +- .../source_zuora/zuora_endpoint.py | 21 +- .../source-zuora/source_zuora/zuora_errors.py | 15 +- 12 files changed, 1286 insertions(+), 5907 deletions(-) diff --git a/airbyte-integrations/connectors/source-zuora/Dockerfile b/airbyte-integrations/connectors/source-zuora/Dockerfile index 0075e0bd45dec..2cd0034f48675 100644 --- a/airbyte-integrations/connectors/source-zuora/Dockerfile +++ b/airbyte-integrations/connectors/source-zuora/Dockerfile @@ -1,16 +1,37 @@ -FROM python:3.7-slim +FROM python:3.7.11-alpine3.14 as base -# Bash is installed for more convenient debugging. -RUN apt-get update && apt-get install -y bash && rm -rf /var/lib/apt/lists/* +# build and load all requirements +FROM base as builder +WORKDIR /airbyte/integration_code + +# upgrade pip to the latest version +RUN apk --no-cache upgrade \ + && pip install --upgrade pip \ + && apk --no-cache add tzdata build-base +COPY setup.py ./ +# install necessary packages to a temporary folder +RUN pip install --prefix=/install . + +# build a clean environment +FROM base WORKDIR /airbyte/integration_code -COPY source_zuora ./source_zuora + +# copy all loaded and built libraries to a pure basic image +COPY --from=builder /install /usr/local +# add default timezone settings +COPY --from=builder /usr/share/zoneinfo/Etc/UTC /etc/localtime +RUN echo "Etc/UTC" > /etc/timezone + +# bash is installed for more convenient debugging. +RUN apk --no-cache add bash + +# copy payload code only COPY main.py ./ -COPY setup.py ./ -RUN pip install . +COPY source_zuora ./source_zuora ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.0 -LABEL io.airbyte.name=airbyte/source-zuora +LABEL io.airbyte.version=0.1.1 +LABEL io.airbyte.name=airbyte/source-zuora \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-zuora/README.md b/airbyte-integrations/connectors/source-zuora/README.md index 77182f75b9f85..5924b61fdfe21 100644 --- a/airbyte-integrations/connectors/source-zuora/README.md +++ b/airbyte-integrations/connectors/source-zuora/README.md @@ -106,7 +106,8 @@ Customize `acceptance-test-config.yml` file to configure tests. See [Source Acce If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py. To run your integration tests with acceptance tests, from the connector root, run ``` -python -m pytest integration_tests -p integration_tests.acceptance +docker build . --no-cache -t airbyte/source-zuora:dev \ +&& python -m pytest -p source_acceptance_test.plugin ``` To run your integration tests with docker @@ -120,7 +121,7 @@ To run unit tests: To run acceptance and custom integration tests: ``` -./gradlew :airbyte-integrations:connectors:source-zuora:integrationTest +./gradlew clean :airbyte-integrations:connectors:source-zuora:integrationTest ``` ### Run the actual test using with DBT Normalisation in action diff --git a/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml b/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml index 6fca04c95d06a..e9a1ffe8c0976 100644 --- a/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml @@ -15,9 +15,9 @@ tests: basic_read: - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/configured_catalog.json" - timeout_seconds: 3600 expect_records: path: "integration_tests/some_expected_records.txt" + timeout_seconds: 3600 full_refresh: - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/configured_catalog.json" diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json index 794eac81f0c89..87549787d55d0 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json @@ -1,230 +1,170 @@ { - "account": { - "updateddate": "2025-07-15T07:41:30-07:00" - }, - "accountingperiod": { - "updateddate": "2025-12-19T22:11:16-08:00" - }, - "amendment": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "applicationgroup": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "aquatasklog": { - "updateddate": "2025-06-11T06:53:19-07:00" - }, - "billingrun": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "chargemetrics": { - "updateddate": "2025-06-25T09:11:39.139Z" - }, - "chargemetricsdiscountallocationdetail": { - "updateddate": "2025-06-12T09:03:50.584Z" - }, - "contact": { - "updateddate": "2025-12-19T22:00:12-08:00" - }, - "contactsnapshot": { - "updateddate": "2025-12-19T22:00:12-08:00" - }, - "creditmemo": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "creditmemoapplication": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "creditmemoapplicationitem": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "creditmemoitem": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "creditmemopart": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "creditmemopartitem": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "credittaxationitem": { - "updateddate": "2025-11-28T15:26:37-08:00" - }, - "invoice": { - "updateddate": "2025-07-06T03:25:26-07:00" - }, - "invoicehistory": { - "createddate": "2025-07-06T03:25:28-07:00" - }, - "invoiceitem": { - "updateddate": "2025-07-06T03:25:26-07:00" - }, - "journalentry": { - "updateddate": "2025-12-18T09:34:11-08:00" - }, - "journalentryitem": { - "updateddate": "2025-12-18T09:34:11-08:00" - }, - "journalrun": { - "updateddate": "2025-12-18T09:34:11-08:00" - }, - "memohistory": { - "createddate": "2025-11-28T15:26:37-08:00" - }, - "orderaction": { - "updateddate": "2025-06-25T02:11:32-07:00" - }, - "orderactionrateplan": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "orderelp": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "orderitem": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "ordermrr": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "orderquantity": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "orders": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "ordertcb": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "ordertcv": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "payment": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "paymentapplication": { - "updateddate": "2025-07-06T03:25:26-07:00" - }, - "paymentapplicationitem": { - "updateddate": "2025-07-06T03:25:26-07:00" - }, - "paymentmethod": { - "updateddate": "2025-12-19T22:00:12-08:00" - }, - "paymentmethodsnapshot": { - "updateddate": "2025-05-16T06:57:06-07:00" - }, - "paymentpart": { - "updateddate": "2025-12-19T22:04:21-08:00" - }, - "paymentpartitem": { - "updateddate": "2025-12-19T22:04:21-08:00" - }, - "paymentrun": { - "updateddate": "2025-04-18T21:00:00-07:00" - }, - "paymenttransactionlog": { - "createddate": "2025-05-16T06:57:06-07:00" - }, - "processedusage": { - "updateddate": "2025-05-21T08:49:00-07:00" - }, - "product": { - "updateddate": "2025-08-14T07:42:32-07:00" - }, - "productrateplan": { - "updateddate": "2025-02-06T09:28:01-08:00" - }, - "productrateplancharge": { - "updateddate": "2025-02-06T09:29:11-08:00" - }, - "productrateplanchargetier": { - "updateddate": "2025-07-24T01:58:29-07:00" - }, - "productrateplancurrency": { - "updateddate": "2025-02-06T09:29:12-08:00" - }, - "rateplan": { - "updateddate": "2025-06-25T02:11:33-07:00" - }, - "rateplancharge": { - "updateddate": "2025-06-25T02:11:33-07:00" - }, - "rateplanchargetier": { - "updateddate": "2025-06-25T02:11:34-07:00" - }, - "refund": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "refundapplication": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "refundapplicationitem": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "refundpart": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "refundpartitem": { - "updateddate": "2025-07-06T03:26:45-07:00" - }, - "revenuechargesummary": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenuechargesummaryitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenueevent": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenueeventcreditmemoitem": { - "updateddate": "2025-11-28T15:26:05-08:00" - }, - "revenueeventinvoiceitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenueeventitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenueeventitemcreditmemoitem": { - "updateddate": "2025-11-28T15:26:05-08:00" - }, - "revenueeventiteminvoiceitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenueeventtype": { - "updateddate": "2025-05-08T15:02:42-07:00" - }, - "revenueschedule": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenueschedulecreditmemoitem": { - "updateddate": "2025-11-28T15:26:05-08:00" - }, - "revenuescheduleinvoiceitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenuescheduleitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "revenuescheduleitemcreditmemoitem": { - "updateddate": "2025-11-28T15:26:05-08:00" - }, - "revenuescheduleiteminvoiceitem": { - "updateddate": "2025-12-19T22:03:02-08:00" - }, - "subscription": { - "updateddate": "2025-07-15T07:43:34-07:00" - }, - "subscriptionproductfeature": { - "updateddate": "2025-06-12T02:03:50-07:00" - }, - "taxationitem": { - "updateddate": "2025-12-19T22:03:00-08:00" - }, - "usage": { - "updateddate": "2025-05-21T08:49:00-07:00" - }, - "user": { - "createddate": "2025-06-14T01:49:11-07:00" - } + "account": { + "updateddate": "2025-10-01T12:27:40Z" + }, + "accountingcode": { + "updateddate": "2025-09-29T08:51:48Z" + }, + "accountingperiod": { + "updateddate": "2025-10-01T12:24:33Z" + }, + "amendment": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "applicationgroup": { + "updateddate": "2025-10-01T12:27:25Z" + }, + "aquatasklog": { + "updateddate": "2025-10-02T15:18:15Z" + }, + "billingrun": { + "updateddate": "2025-09-30T15:07:13Z" + }, + "chargemetrics": { + "updateddate": "2025-09-30T14:37:54.237Z" + }, + "contact": { + "updateddate": "2025-09-30T14:01:42Z" + }, + "contactsnapshot": { + "updateddate": "2025-09-30T14:01:42Z" + }, + "country": { + "createddate": "2025-09-13T05:56:56Z" + }, + "creditmemo": { + "updateddate": "2025-10-01T12:27:25Z" + }, + "creditmemoapplication": { + "updateddate": "2025-10-01T12:27:25Z" + }, + "creditmemoapplicationitem": { + "updateddate": "2025-10-01T12:27:25Z" + }, + "creditmemoitem": { + "updateddate": "2025-10-01T12:22:11Z" + }, + "creditmemopart": { + "updateddate": "2025-10-01T12:27:25Z" + }, + "creditmemopartitem": { + "updateddate": "2025-10-01T12:27:25Z" + }, + "debitmemo": { + "updateddate": "2025-10-01T12:27:40Z" + }, + "debitmemoitem": { + "updateddate": "2025-10-01T12:23:54Z" + }, + "invoice": { + "updateddate": "2025-10-01T08:24:15Z" + }, + "invoicehistory": { + "createddate": "2025-09-30T15:07:13Z" + }, + "invoiceitem": { + "updateddate": "2025-10-01T08:24:15Z" + }, + "journalentry": { + "updateddate": "2025-10-01T12:18:36Z" + }, + "journalentryitem": { + "updateddate": "2025-10-01T12:18:36Z" + }, + "journalrun": { + "updateddate": "2025-10-01T12:25:08Z" + }, + "memohistory": { + "createddate": "2025-10-01T12:27:41Z" + }, + "orderaction": { + "updateddate": "2025-09-30T14:37:49Z" + }, + "orderactionrateplan": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "orderdeltamrr": { + "updateddate": "2025-09-30T14:37:52.362Z" + }, + "orderdeltatcb": { + "updateddate": "2025-09-30T14:37:52.365Z" + }, + "orderdeltatcv": { + "updateddate": "2025-09-30T14:37:52.363Z" + }, + "orders": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "payment": { + "updateddate": "2025-10-01T08:25:23Z" + }, + "paymentapplication": { + "updateddate": "2025-10-01T08:25:23Z" + }, + "paymentmethod": { + "updateddate": "2025-10-01T08:25:23Z" + }, + "paymentmethodsnapshot": { + "updateddate": "2025-10-01T08:25:23Z" + }, + "paymentmethodtransactionlog": { + "createddate": "2025-09-30T14:32:49Z" + }, + "paymentpart": { + "updateddate": "2025-10-01T08:25:23Z" + }, + "paymentrun": { + "updateddate": "2025-10-01T06:52:02Z" + }, + "paymenttransactionlog": { + "createddate": "2025-10-01T08:25:23Z" + }, + "product": { + "updateddate": "2025-09-30T09:35:59Z" + }, + "productrateplan": { + "updateddate": "2025-09-30T09:35:50Z" + }, + "productrateplancharge": { + "updateddate": "2025-09-30T09:35:50Z" + }, + "productrateplanchargetier": { + "updateddate": "2025-09-30T09:35:51Z" + }, + "productrateplancurrency": { + "updateddate": "2025-09-30T09:35:50Z" + }, + "rateplan": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "rateplancharge": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "rateplanchargetier": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "refund": { + "updateddate": "2025-07-06T03:26:45-07:00" + }, + "revenueeventtype": { + "updateddate": "2025-09-13T05:56:56Z" + }, + "state": { + "createddate": "2025-09-13T05:56:56Z" + }, + "subscription": { + "updateddate": "2025-09-30T14:37:50Z" + }, + "user": { + "createddate": "2025-06-14T01:49:11-07:00" + }, + "workflow": { + "updateddate": "2025-10-01T12:36:16.354Z" + }, + "workflow_definition": { + "updateddate": "2025-10-01T12:36:16.36Z" + }, + "workflow_task": { + "updateddate": "2025-10-01T12:36:16.487Z" + } } diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json index c9c5509128e0a..c7d60803f4688 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json @@ -3,5996 +3,1329 @@ { "stream": { "name": "account", - "json_schema": { - "properties": { - "taxexempteffectivedate": { - "type": ["string", "null"] - }, - "invoicetemplateid": { - "type": ["string", "null"] - }, - "totaldebitmemobalance": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "taxexemptissuingjurisdiction": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "taxexemptcertificateid": { - "type": ["string", "null"] - }, - "crmid": { - "type": ["string", "null"] - }, - "defaultpaymentmethodid": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "creditmemotemplateid": { - "type": ["string", "null"] - }, - "debitmemotemplateid": { - "type": ["string", "null"] - }, - "communicationprofileid": { - "type": ["string", "null"] - }, - "invoicedeliveryprefsemail": { - "type": ["boolean", "null"] - }, - "bcdsettingoption": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "unappliedcreditmemoamount": { - "type": ["number", "null"] - }, - "taxcompanycode": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "balance": { - "type": ["number", "null"] - }, - "soldtoid": { - "type": ["string", "null"] - }, - "unappliedbalance": { - "type": ["number", "null"] - }, - "invoicedeliveryprefsprint": { - "type": ["boolean", "null"] - }, - "sequencesetid": { - "type": ["string", "null"] - }, - "additionalemailaddresses": { - "type": ["string", "null"] - }, - "mrr": { - "type": ["number", "null"] - }, - "taxexemptexpirationdate": { - "type": ["string", "null"] - }, - "incollections__c": { - "type": ["string", "null"] - }, - "totalinvoicebalance": { - "type": ["number", "null"] - }, - "taxexemptentityusecode": { - "type": ["string", "null"] - }, - "batch": { - "type": ["string", "null"] - }, - "paymentgateway": { - "type": ["string", "null"] - }, - "billcycleday": { - "type": ["number", "null"] - }, - "billtoid": { - "type": ["string", "null"] - }, - "notes": { - "type": ["string", "null"] - }, - "vatid": { - "type": ["string", "null"] - }, - "parentid": { - "type": ["string", "null"] - }, - "purchaseordernumber": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "creditbalance": { - "type": ["number", "null"] - }, - "autopay": { - "type": ["boolean", "null"] - }, - "customerservicerepname": { - "type": ["string", "null"] - }, - "paymentterm": { - "type": ["string", "null"] - }, - "entity__c": { - "type": ["string", "null"] - }, - "lastinvoicedate": { - "type": ["string", "null"] - }, - "accountnumber": { - "type": ["string", "null"] - }, - "taxexemptstatus": { - "type": ["string", "null"] - }, - "taxexemptcertificatetype": { - "type": ["string", "null"] - }, - "salesrepname": { - "type": ["string", "null"] - }, - "taxexemptdescription": { - "type": ["string", "null"] - }, - "allowinvoiceedit": { - "type": ["boolean", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], + "destination_sync_mode": "append" + }, + { + "stream": { + "name": "accountingcode", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], + "source_defined_cursor": true, + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] + }, + "sync_mode": "incremental", + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "accountingperiod", - "json_schema": { - "properties": { - "startdate": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "fiscalquarter": { - "type": ["number", "null"] - }, - "fiscalyear": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "notes": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "amendment", - "json_schema": { - "properties": { - "currenttermperiodtype": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "autorenew": { - "type": ["boolean", "null"] - }, - "renewaltermperiodtype": { - "type": ["string", "null"] - }, - "serviceactivationdate": { - "type": ["string", "null"] - }, - "resumedate": { - "type": ["string", "null"] - }, - "suspenddate": { - "type": ["string", "null"] - }, - "termtype": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "contracteffectivedate": { - "type": ["string", "null"] - }, - "customeracceptancedate": { - "type": ["string", "null"] - }, - "subscriptionid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "currentterm": { - "type": ["number", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "renewalsetting": { - "type": ["string", "null"] - }, - "specificupdatedate": { - "type": ["string", "null"] - }, - "code": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "termstartdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "renewalterm": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "applicationgroup", - "json_schema": { - "properties": { - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "operationdate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "paymentid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "refundid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "aquatasklog", - "json_schema": { - "properties": { - "status": { - "type": ["string", "null"] - }, - "query": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "recordsprocessed": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "processingtime": { - "type": ["number", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "fileid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "querytype": { - "type": ["string", "null"] - }, - "jobid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "billingrun", - "json_schema": { - "properties": { - "executeddate": { - "type": ["string", "null"] - }, - "numberofaccounts": { - "type": ["number", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "runtime": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "repeatto": { - "type": ["string", "null"] - }, - "autoemail": { - "type": ["boolean", "null"] - }, - "targetdateoffset": { - "type": ["number", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "invoicedateoffset": { - "type": ["number", "null"] - }, - "chargetypetoexclude": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "autopost": { - "type": ["boolean", "null"] - }, - "billcycleday": { - "type": ["string", "null"] - }, - "lastemailsenttime": { - "type": ["string", "null"] - }, - "targettype": { - "type": ["string", "null"] - }, - "totaltime": { - "type": ["number", "null"] - }, - "noemailforzeroamountinvoice": { - "type": ["boolean", "null"] - }, - "invoicedate": { - "type": ["string", "null"] - }, - "monthlyonday": { - "type": ["string", "null"] - }, - "numberofcreditmemos": { - "type": ["number", "null"] - }, - "billingruntype": { - "type": ["string", "null"] - }, - "numberofinvoices": { - "type": ["number", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "weeklyonday": { - "type": ["string", "null"] - }, - "repeatfrom": { - "type": ["string", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "invoicesemailed": { - "type": ["boolean", "null"] - }, - "timezone": { - "type": ["string", "null"] - }, - "autorenewal": { - "type": ["boolean", "null"] - }, - "targetdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "billingrunnumber": { - "type": ["string", "null"] - }, - "posteddate": { - "type": ["string", "null"] - }, - "batches": { - "type": ["string", "null"] - }, - "repeattype": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "errormessage": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "chargemetrics", - "json_schema": { - "properties": { - "subscriptionowneraccountnumber": { - "type": ["string", "null"] - }, - "tcvdiscountamount": { - "type": ["number", "null"] - }, - "tcvgrossamount": { - "type": ["number", "null"] - }, - "amendmentid": { - "type": ["string", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "mrrgrossamount": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "amendmenttype": { - "type": ["string", "null"] - }, - "productrateplanid": { - "type": ["string", "null"] - }, - "productid": { - "type": ["string", "null"] - }, - "subscriptionname": { - "type": ["string", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "productrateplanchargeid": { - "type": ["string", "null"] - }, - "mrrnetamount": { - "type": ["number", "null"] - }, - "tcvnetamount": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceowneraccountnumber": { - "type": ["string", "null"] - }, - "chargenumber": { - "type": ["string", "null"] - }, - "mrrdiscountamount": { - "type": ["number", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "chargemetricsdiscountallocationdetail", - "json_schema": { - "properties": { - "subscriptionowneraccountnumber": { - "type": ["string", "null"] - }, - "amendmentid": { - "type": ["string", "null"] - }, - "discountmrr": { - "type": ["number", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "amendmenttype": { - "type": ["string", "null"] - }, - "productrateplanid": { - "type": ["string", "null"] - }, - "chargemetricsid": { - "type": ["string", "null"] - }, - "discounttcv": { - "type": ["number", "null"] - }, - "productid": { - "type": ["string", "null"] - }, - "subscriptionname": { - "type": ["string", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "productrateplanchargeid": { - "type": ["string", "null"] - }, - "discountchargenumber": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceowneraccountnumber": { - "type": ["string", "null"] - }, - "chargenumber": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "contact", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "contact", - "json_schema": { - "properties": { - "taxregion": { - "type": ["string", "null"] - }, - "otherphone": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "postalcode": { - "type": ["string", "null"] - }, - "county": { - "type": ["string", "null"] - }, - "mobilephone": { - "type": ["string", "null"] - }, - "personalemail": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "workphone": { - "type": ["string", "null"] - }, - "firstname": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "address2": { - "type": ["string", "null"] - }, - "address1": { - "type": ["string", "null"] - }, - "city": { - "type": ["string", "null"] - }, - "workemail": { - "type": ["string", "null"] - }, - "nickname": { - "type": ["string", "null"] - }, - "homephone": { - "type": ["string", "null"] - }, - "state": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "country": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "lastname": { - "type": ["string", "null"] - }, - "fax": { - "type": ["string", "null"] - }, - "otherphonetype": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "contactsnapshot", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "contactsnapshot", - "json_schema": { - "properties": { - "taxregion": { - "type": ["string", "null"] - }, - "otherphone": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "postalcode": { - "type": ["string", "null"] - }, - "contactid": { - "type": ["string", "null"] - }, - "county": { - "type": ["string", "null"] - }, - "mobilephone": { - "type": ["string", "null"] - }, - "personalemail": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "workphone": { - "type": ["string", "null"] - }, - "firstname": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "address2": { - "type": ["string", "null"] - }, - "address1": { - "type": ["string", "null"] - }, - "city": { - "type": ["string", "null"] - }, - "workemail": { - "type": ["string", "null"] - }, - "nickname": { - "type": ["string", "null"] - }, - "homephone": { - "type": ["string", "null"] - }, - "state": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "country": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "lastname": { - "type": ["string", "null"] - }, - "fax": { - "type": ["string", "null"] - }, - "otherphonetype": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "name": "country", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "sync_mode": "full_refresh", "destination_sync_mode": "append" }, { "stream": { "name": "creditmemo", - "json_schema": { - "properties": { - "postedbyid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "cancelledbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "sourceid": { - "type": ["string", "null"] - }, - "transferredtoaccounting": { - "type": ["string", "null"] - }, - "totaltaxexemptamount": { - "type": ["number", "null"] - }, - "memonumber": { - "type": ["string", "null"] - }, - "taxmessage": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "source": { - "type": ["string", "null"] - }, - "taxamount": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "exchangeratedate": { - "type": ["string", "null"] - }, - "cancelledon": { - "type": ["string", "null"] - }, - "totalamountwithouttax": { - "type": ["number", "null"] - }, - "postedon": { - "type": ["string", "null"] - }, - "billtocontactsnapshotid": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "memodate": { - "type": ["string", "null"] - }, - "comments": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "appliedamount": { - "type": ["number", "null"] - }, - "refundamount": { - "type": ["number", "null"] - }, - "totalamount": { - "type": ["number", "null"] - }, - "soldtocontactsnapshotid": { - "type": ["string", "null"] - }, - "reasoncode": { - "type": ["string", "null"] - }, - "discountamount": { - "type": ["number", "null"] - }, - "targetdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "taxstatus": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "balance": { - "type": ["number", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "creditmemoapplication", - "json_schema": { - "properties": { - "debitmemoid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "creditmemoid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "applicationgroupid": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "creditmemoapplicationitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "debitmemoitemid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "credittaxationitemid": { - "type": ["string", "null"] - }, - "debittaxationitemid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "creditmemoitemid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "taxationitemid": { - "type": ["string", "null"] - }, - "applicationgroupid": { - "type": ["string", "null"] - }, - "creditmemoapplicationid": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "creditmemoitem", - "json_schema": { - "properties": { - "description": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "creditmemoid": { - "type": ["string", "null"] - }, - "taxcodename": { - "type": ["string", "null"] - }, - "taxamount": { - "type": ["number", "null"] - }, - "subscriptionid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "servicestartdate": { - "type": ["string", "null"] - }, - "taxexemptamount": { - "type": ["number", "null"] - }, - "unappliedamount": { - "type": ["number", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "creditfromitemsource": { - "type": ["string", "null"] - }, - "taxmode": { - "type": ["string", "null"] - }, - "billtocontactsnapshotid": { - "type": ["string", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "unitofmeasure": { - "type": ["string", "null"] - }, - "serviceenddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "beappliedbyothersamount": { - "type": ["number", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "quantity": { - "type": ["number", "null"] - }, - "chargename": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "appliedtoothersamount": { - "type": ["number", "null"] - }, - "soldtocontactsnapshotid": { - "type": ["string", "null"] - }, - "onaccountaccountingcodeid": { - "type": ["string", "null"] - }, - "chargedate": { - "type": ["string", "null"] - }, - "unitprice": { - "type": ["number", "null"] - }, - "productrateplanchargeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "processingtype": { - "type": ["string", "null"] - }, - "appliedtoitemid": { - "type": ["string", "null"] - }, - "creditfromitemid": { - "type": ["string", "null"] - }, - "amountwithouttax": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "sku": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "creditmemopart", - "json_schema": { - "properties": { - "debitmemoid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "creditmemoid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "creditmemopartitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "debitmemoitemid": { - "type": ["string", "null"] - }, - "creditmemopartid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "credittaxationitemid": { - "type": ["string", "null"] - }, - "debittaxationitemid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "creditmemoitemid": { - "type": ["string", "null"] - }, - "taxationitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "credittaxationitem", - "json_schema": { - "properties": { - "accountingcode": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "exemptamount": { - "type": ["number", "null"] - }, - "salestaxpayableaccountingcodeid": { - "type": ["string", "null"] - }, - "taxamount": { - "type": ["number", "null"] - }, - "taxcodedescription": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "taxcode": { - "type": ["string", "null"] - }, - "taxdate": { - "type": ["string", "null"] - }, - "taxrate": { - "type": ["number", "null"] - }, - "unappliedamount": { - "type": ["number", "null"] - }, - "creditmemoitemid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "taxratetype": { - "type": ["string", "null"] - }, - "taxationitemid": { - "type": ["string", "null"] - }, - "taxmode": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "appliedamount": { - "type": ["number", "null"] - }, - "locationcode": { - "type": ["string", "null"] - }, - "refundamount": { - "type": ["number", "null"] - }, - "onaccountaccountingcodeid": { - "type": ["string", "null"] - }, - "jurisdiction": { - "type": ["string", "null"] - }, - "taxratedescription": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "taxableitemsnapshotid": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "debitmemo", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], + "destination_sync_mode": "append" + }, + { + "stream": { + "name": "debitmemoitem", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], + "source_defined_cursor": true, + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] + }, + "sync_mode": "incremental", + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "invoice", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "includesrecurring": { - "type": ["boolean", "null"] - }, - "sourceid": { - "type": ["string", "null"] - }, - "transferredtoaccounting": { - "type": ["string", "null"] - }, - "taxmessage": { - "type": ["string", "null"] - }, - "paymentamount": { - "type": ["number", "null"] - }, - "source": { - "type": ["string", "null"] - }, - "taxamount": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "postedby": { - "type": ["string", "null"] - }, - "adjustmentamount": { - "type": ["number", "null"] - }, - "taxexemptamount": { - "type": ["number", "null"] - }, - "invoicedate": { - "type": ["string", "null"] - }, - "invoicenumber": { - "type": ["string", "null"] - }, - "duedate": { - "type": ["string", "null"] - }, - "billtocontactsnapshotid": { - "type": ["string", "null"] - }, - "lastemailsentdate": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "comments": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "includesusage": { - "type": ["boolean", "null"] - }, - "refundamount": { - "type": ["number", "null"] - }, - "autopay": { - "type": ["boolean", "null"] - }, - "soldtocontactsnapshotid": { - "type": ["string", "null"] - }, - "reversed": { - "type": ["boolean", "null"] - }, - "targetdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "includesonetime": { - "type": ["boolean", "null"] - }, - "posteddate": { - "type": ["string", "null"] - }, - "taxstatus": { - "type": ["string", "null"] - }, - "amountwithouttax": { - "type": ["number", "null"] - }, - "creditbalanceadjustmentamount": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "balance": { - "type": ["number", "null"] - }, - "retrystatus__c": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "invoicehistory", - "json_schema": { - "properties": { - "transactiontime": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "source": { - "type": ["string", "null"] - }, - "result": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["createddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "createddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["createddate"], + "cursor_field": [ + "createddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "invoiceitem", - "json_schema": { - "properties": { - "soldtocontactid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "accountingcode": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "productid": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "chargeamount": { - "type": ["number", "null"] - }, - "taxamount": { - "type": ["number", "null"] - }, - "subscriptionid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "taxcode": { - "type": ["string", "null"] - }, - "revrecstartdate": { - "type": ["string", "null"] - }, - "servicestartdate": { - "type": ["string", "null"] - }, - "taxexemptamount": { - "type": ["number", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "defaultpaymentmethodid": { - "type": ["string", "null"] - }, - "parentaccountid": { - "type": ["string", "null"] - }, - "taxmode": { - "type": ["string", "null"] - }, - "billtocontactsnapshotid": { - "type": ["string", "null"] - }, - "amendmentid": { - "type": ["string", "null"] - }, - "appliedtoinvoiceitemid": { - "type": ["string", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "serviceenddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "productrateplanid": { - "type": ["string", "null"] - }, - "quantity": { - "type": ["number", "null"] - }, - "chargename": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "billtocontactid": { - "type": ["string", "null"] - }, - "soldtocontactsnapshotid": { - "type": ["string", "null"] - }, - "rateplanid": { - "type": ["string", "null"] - }, - "chargedate": { - "type": ["string", "null"] - }, - "uom": { - "type": ["string", "null"] - }, - "unitprice": { - "type": ["number", "null"] - }, - "productrateplanchargeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "processingtype": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "sku": { - "type": ["string", "null"] - }, - "balance": { - "type": ["number", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "journalentry", - "json_schema": { - "properties": { - "status": { - "type": ["string", "null"] - }, - "transactiontype": { - "type": ["string", "null"] - }, - "transferredby": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "transferredtoaccounting": { - "type": ["string", "null"] - }, - "product__s": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "transferdate": { - "type": ["string", "null"] - }, - "journalentrydate": { - "type": ["string", "null"] - }, - "homecurrency": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - }, - "entity__s": { - "type": ["string", "null"] - }, - "notes": { - "type": ["string", "null"] - }, - "journalrunid": { - "type": ["string", "null"] - }, - "transactioncount": { - "type": ["number", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "journalentryitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "amounthomecurrency": { - "type": ["number", "null"] - }, - "accountingcodeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "homecurrency": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "journalrun", - "json_schema": { - "properties": { - "status": { - "type": ["string", "null"] - }, - "targetstartdate": { - "type": ["string", "null"] - }, - "processenddatetime": { - "type": ["string", "null"] - }, - "targetdatetype": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "targetenddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "totaljournalentrycount": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "processstartdatetime": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "memohistory", - "json_schema": { - "properties": { - "transactiontime": { - "type": ["string", "null"] - }, - "memoid": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "source": { - "type": ["string", "null"] - }, - "result": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["createddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "createddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["createddate"], + "cursor_field": [ + "createddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "orderaction", - "json_schema": { - "properties": { - "currenttermperiodtype": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "autorenew": { - "type": ["boolean", "null"] - }, - "renewaltermperiodtype": { - "type": ["string", "null"] - }, - "serviceactivationdate": { - "type": ["string", "null"] - }, - "resumedate": { - "type": ["string", "null"] - }, - "suspenddate": { - "type": ["string", "null"] - }, - "termtype": { - "type": ["string", "null"] - }, - "renewsetting": { - "type": ["string", "null"] - }, - "contracteffectivedate": { - "type": ["string", "null"] - }, - "subscriptionversionamendmentid": { - "type": ["string", "null"] - }, - "customeracceptancedate": { - "type": ["string", "null"] - }, - "subscriptionid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "currentterm": { - "type": ["number", "null"] - }, - "cancellationpolicy": { - "type": ["string", "null"] - }, - "cancellationeffectivedate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "sequence": { - "type": ["number", "null"] - }, - "orderid": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "termstartdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "renewalterm": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "orderactionrateplan", - "json_schema": { - "properties": { - "rateplanid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "orderelp", - "json_schema": { - "properties": { - "rateplanchargeid": { - "type": ["string", "null"] - }, - "subscriptionownerid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "tax": { - "type": ["number", "null"] - }, - "term": { - "type": ["number", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "generatedreason": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "value": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceownerid": { - "type": ["string", "null"] - }, - "orderitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "orderdeltamrr", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "orderitem", - "json_schema": { - "properties": { - "startdate": { - "type": ["string", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "quantity": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "enddate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "orderdeltatcb", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "ordermrr", - "json_schema": { - "properties": { - "rateplanchargeid": { - "type": ["string", "null"] - }, - "subscriptionownerid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "discountchargeid": { - "type": ["string", "null"] - }, - "term": { - "type": ["number", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "generatedreason": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "value": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceownerid": { - "type": ["string", "null"] - }, - "orderitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "orderdeltatcv", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "orderquantity", - "json_schema": { - "properties": { - "rateplanchargeid": { - "type": ["string", "null"] - }, - "subscriptionownerid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "term": { - "type": ["number", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "generatedreason": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "value": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceownerid": { - "type": ["string", "null"] - }, - "orderitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "orders", - "json_schema": { - "properties": { - "status": { - "type": ["string", "null"] - }, - "createdbymigration": { - "type": ["boolean", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "my_custom_field_2__c": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "ordernumber": { - "type": ["string", "null"] - }, - "orderdate": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "my_custom_filed_1__c": { - "type": ["string", "null"] - }, - "state": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "ordertcb", - "json_schema": { - "properties": { - "rateplanchargeid": { - "type": ["string", "null"] - }, - "subscriptionownerid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "tax": { - "type": ["number", "null"] - }, - "discountchargeid": { - "type": ["string", "null"] - }, - "term": { - "type": ["number", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "generatedreason": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "value": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceownerid": { - "type": ["string", "null"] - }, - "orderitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "ordertcv", - "json_schema": { - "properties": { - "rateplanchargeid": { - "type": ["string", "null"] - }, - "subscriptionownerid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "orderactionid": { - "type": ["string", "null"] - }, - "discountchargeid": { - "type": ["string", "null"] - }, - "term": { - "type": ["number", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "generatedreason": { - "type": ["string", "null"] - }, - "startdate": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "value": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceownerid": { - "type": ["string", "null"] - }, - "orderitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "payment", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "accountingcode": { - "type": ["string", "null"] - }, - "paymentmethodid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "markedforsubmissionon": { - "type": ["string", "null"] - }, - "transferredtoaccounting": { - "type": ["string", "null"] - }, - "appliedcreditbalanceamount": { - "type": ["number", "null"] - }, - "isstandalone": { - "type": ["boolean", "null"] - }, - "referencedpaymentid": { - "type": ["string", "null"] - }, - "softdescriptor": { - "type": ["string", "null"] - }, - "source": { - "type": ["string", "null"] - }, - "secondpaymentreferenceid": { - "type": ["string", "null"] - }, - "gatewayreconciliationreason": { - "type": ["string", "null"] - }, - "gatewaystate": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "referenceid": { - "type": ["string", "null"] - }, - "softdescriptorphone": { - "type": ["string", "null"] - }, - "gateway": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "gatewayreconciliationstatus": { - "type": ["string", "null"] - }, - "authtransactionid": { - "type": ["string", "null"] - }, - "bankidentificationnumber": { - "type": ["string", "null"] - }, - "unappliedamount": { - "type": ["number", "null"] - }, - "cancelledon": { - "type": ["string", "null"] - }, - "gatewayresponsecode": { - "type": ["string", "null"] - }, - "gatewayresponse": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "comment": { - "type": ["string", "null"] - }, - "retrynumber__c": { - "type": ["string", "null"] - }, - "submittedon": { - "type": ["string", "null"] - }, - "gatewayorderid": { - "type": ["string", "null"] - }, - "payoutid": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "appliedamount": { - "type": ["number", "null"] - }, - "sourcename": { - "type": ["string", "null"] - }, - "refundamount": { - "type": ["number", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "paymentmethodsnapshotid": { - "type": ["string", "null"] - }, - "settledon": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "paymentnumber": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - }, - "retrystatus__c": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "paymentapplication", - "json_schema": { - "properties": { - "debitmemoid": { - "type": ["string", "null"] - }, - "paymentapplicationstatus": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "paymentid": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "billingdocumentownerid": { - "type": ["string", "null"] - }, - "cashaccountingcodeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "applyamount": { - "type": ["number", "null"] - }, - "unappliedpaymentaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "applicationgroupid": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "paymentapplicationitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "debitmemoitemid": { - "type": ["string", "null"] - }, - "cashaccountingcodeid": { - "type": ["string", "null"] - }, - "paymentapplicationid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "unappliedpaymentaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "debittaxationitemid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "taxationitemid": { - "type": ["string", "null"] - }, - "applicationgroupid": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "paymentmethod", - "json_schema": { - "properties": { - "bankname": { - "type": ["string", "null"] - }, - "secondtokenid": { - "type": ["string", "null"] - }, - "streetname": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "email": { - "type": ["string", "null"] - }, - "mandateid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "achaccountnumbermask": { - "type": ["string", "null"] - }, - "creditcardexpirationmonth": { - "type": ["number", "null"] - }, - "creditcardexpirationyear": { - "type": ["number", "null"] - }, - "bankstreetnumber": { - "type": ["string", "null"] - }, - "creditcardholdername": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "creditcardaddress2": { - "type": ["string", "null"] - }, - "paymentmethodstatus": { - "type": ["string", "null"] - }, - "companyname": { - "type": ["string", "null"] - }, - "creditcardaddress1": { - "type": ["string", "null"] - }, - "creditcardcity": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "paymentretrywindow": { - "type": ["number", "null"] - }, - "banktransfertype": { - "type": ["string", "null"] - }, - "streetnumber": { - "type": ["string", "null"] - }, - "achabacode": { - "type": ["string", "null"] - }, - "bankbranchcode": { - "type": ["string", "null"] - }, - "achbankname": { - "type": ["string", "null"] - }, - "banktransferaccounttype": { - "type": ["string", "null"] - }, - "bankpostalcode": { - "type": ["string", "null"] - }, - "iban": { - "type": ["string", "null"] - }, - "bankstreetname": { - "type": ["string", "null"] - }, - "mandatereceived": { - "type": ["string", "null"] - }, - "bankcheckdigit": { - "type": ["string", "null"] - }, - "city": { - "type": ["string", "null"] - }, - "mandatecreationdate": { - "type": ["string", "null"] - }, - "lastfailedsaletransactiondate": { - "type": ["string", "null"] - }, - "active": { - "type": ["boolean", "null"] - }, - "existingmandate": { - "type": ["string", "null"] - }, - "achcountry": { - "type": ["string", "null"] - }, - "state": { - "type": ["string", "null"] - }, - "achaddress1": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "country": { - "type": ["string", "null"] - }, - "creditcardpostalcode": { - "type": ["string", "null"] - }, - "issystem": { - "type": ["boolean", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "lastname": { - "type": ["string", "null"] - }, - "achaccountname": { - "type": ["string", "null"] - }, - "achstate": { - "type": ["string", "null"] - }, - "achaddress2": { - "type": ["string", "null"] - }, - "paypalpreapprovalkey": { - "type": ["string", "null"] - }, - "creditcardstate": { - "type": ["string", "null"] - }, - "banktransferaccountnumbermask": { - "type": ["string", "null"] - }, - "numconsecutivefailures": { - "type": ["number", "null"] - }, - "paypaltype": { - "type": ["string", "null"] - }, - "maxconsecutivepaymentfailures": { - "type": ["number", "null"] - }, - "postalcode": { - "type": ["string", "null"] - }, - "creditcardcountry": { - "type": ["string", "null"] - }, - "businessidentificationcode": { - "type": ["string", "null"] - }, - "achcity": { - "type": ["string", "null"] - }, - "achpostalcode": { - "type": ["string", "null"] - }, - "mandateupdatedate": { - "type": ["string", "null"] - }, - "creditcardmasknumber": { - "type": ["string", "null"] - }, - "mandatestatus": { - "type": ["string", "null"] - }, - "phone": { - "type": ["string", "null"] - }, - "bankidentificationnumber": { - "type": ["string", "null"] - }, - "iscompany": { - "type": ["boolean", "null"] - }, - "devicesessionid": { - "type": ["string", "null"] - }, - "totalnumberofprocessedpayments": { - "type": ["number", "null"] - }, - "tokenid": { - "type": ["string", "null"] - }, - "usedefaultretryrule": { - "type": ["boolean", "null"] - }, - "lasttransactiondatetime": { - "type": ["string", "null"] - }, - "lasttransactionstatus": { - "type": ["string", "null"] - }, - "bankcity": { - "type": ["string", "null"] - }, - "firstname": { - "type": ["string", "null"] - }, - "paypalemail": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "bankcode": { - "type": ["string", "null"] - }, - "creditcardtype": { - "type": ["string", "null"] - }, - "paypalbaid": { - "type": ["string", "null"] - }, - "mandatereason": { - "type": ["string", "null"] - }, - "achaccounttype": { - "type": ["string", "null"] - }, - "banktransferaccountname": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "totalnumberoferrorpayments": { - "type": ["number", "null"] - }, - "ipaddress": { - "type": ["string", "null"] - }, - "identitynumber": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "paymentmethodsnapshot", - "json_schema": { - "properties": { - "bankname": { - "type": ["string", "null"] - }, - "secondtokenid": { - "type": ["string", "null"] - }, - "streetname": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "email": { - "type": ["string", "null"] - }, - "mandateid": { - "type": ["string", "null"] - }, - "paymentmethodid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "achaccountnumbermask": { - "type": ["string", "null"] - }, - "creditcardexpirationmonth": { - "type": ["number", "null"] - }, - "creditcardexpirationyear": { - "type": ["number", "null"] - }, - "bankstreetnumber": { - "type": ["string", "null"] - }, - "creditcardholdername": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "creditcardaddress2": { - "type": ["string", "null"] - }, - "paymentmethodstatus": { - "type": ["string", "null"] - }, - "companyname": { - "type": ["string", "null"] - }, - "creditcardaddress1": { - "type": ["string", "null"] - }, - "creditcardcity": { - "type": ["string", "null"] - }, - "paymentretrywindow": { - "type": ["number", "null"] - }, - "banktransfertype": { - "type": ["string", "null"] - }, - "streetnumber": { - "type": ["string", "null"] - }, - "achabacode": { - "type": ["string", "null"] - }, - "bankbranchcode": { - "type": ["string", "null"] - }, - "achbankname": { - "type": ["string", "null"] - }, - "banktransferaccounttype": { - "type": ["string", "null"] - }, - "bankpostalcode": { - "type": ["string", "null"] - }, - "iban": { - "type": ["string", "null"] - }, - "bankstreetname": { - "type": ["string", "null"] - }, - "mandatereceived": { - "type": ["string", "null"] - }, - "bankcheckdigit": { - "type": ["string", "null"] - }, - "city": { - "type": ["string", "null"] - }, - "mandatecreationdate": { - "type": ["string", "null"] - }, - "lastfailedsaletransactiondate": { - "type": ["string", "null"] - }, - "existingmandate": { - "type": ["string", "null"] - }, - "state": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "country": { - "type": ["string", "null"] - }, - "creditcardpostalcode": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "lastname": { - "type": ["string", "null"] - }, - "achaccountname": { - "type": ["string", "null"] - }, - "paypalpreapprovalkey": { - "type": ["string", "null"] - }, - "creditcardstate": { - "type": ["string", "null"] - }, - "banktransferaccountnumbermask": { - "type": ["string", "null"] - }, - "numconsecutivefailures": { - "type": ["number", "null"] - }, - "paypaltype": { - "type": ["string", "null"] - }, - "maxconsecutivepaymentfailures": { - "type": ["number", "null"] - }, - "postalcode": { - "type": ["string", "null"] - }, - "creditcardcountry": { - "type": ["string", "null"] - }, - "businessidentificationcode": { - "type": ["string", "null"] - }, - "mandateupdatedate": { - "type": ["string", "null"] - }, - "creditcardmasknumber": { - "type": ["string", "null"] - }, - "mandatestatus": { - "type": ["string", "null"] - }, - "phone": { - "type": ["string", "null"] - }, - "bankidentificationnumber": { - "type": ["string", "null"] - }, - "iscompany": { - "type": ["boolean", "null"] - }, - "devicesessionid": { - "type": ["string", "null"] - }, - "totalnumberofprocessedpayments": { - "type": ["number", "null"] - }, - "tokenid": { - "type": ["string", "null"] - }, - "usedefaultretryrule": { - "type": ["boolean", "null"] - }, - "lasttransactiondatetime": { - "type": ["string", "null"] - }, - "lasttransactionstatus": { - "type": ["string", "null"] - }, - "bankcity": { - "type": ["string", "null"] - }, - "firstname": { - "type": ["string", "null"] - }, - "paypalemail": { - "type": ["string", "null"] - }, - "bankcode": { - "type": ["string", "null"] - }, - "creditcardtype": { - "type": ["string", "null"] - }, - "paypalbaid": { - "type": ["string", "null"] - }, - "mandatereason": { - "type": ["string", "null"] - }, - "achaccounttype": { - "type": ["string", "null"] - }, - "banktransferaccountname": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "totalnumberoferrorpayments": { - "type": ["number", "null"] - }, - "ipaddress": { - "type": ["string", "null"] - }, - "identitynumber": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "paymentpart", - "json_schema": { - "properties": { - "debitmemoid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "paymentid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "billingdocumentownerid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "paymentmethodtransactionlog", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "createddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "createddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "paymentpartitem", - "json_schema": { - "properties": { - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "paymentpartid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "debittaxationitemid": { - "type": ["string", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "debitmemoitemid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "taxationitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "paymentpart", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "paymentrun", - "json_schema": { - "properties": { - "executeddate": { - "type": ["string", "null"] - }, - "numberofdebitmemosunprocessed": { - "type": ["number", "null"] - }, - "autoapplyunappliedpayment": { - "type": ["boolean", "null"] - }, - "numberofunappliedpayments": { - "type": ["number", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "runtime": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "consolidatedpayment": { - "type": ["boolean", "null"] - }, - "repeatto": { - "type": ["string", "null"] - }, - "applycreditbalance": { - "type": ["boolean", "null"] - }, - "collectpayment": { - "type": ["boolean", "null"] - }, - "billingrunid": { - "type": ["string", "null"] - }, - "numberofdebitmemos": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "batch": { - "type": ["string", "null"] - }, - "paymentgatewayid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "paymentrunnumber": { - "type": ["string", "null"] - }, - "monthlyonday": { - "type": ["string", "null"] - }, - "numberofunprocessed": { - "type": ["number", "null"] - }, - "numberofcreditmemos": { - "type": ["number", "null"] - }, - "numberofpayments": { - "type": ["number", "null"] - }, - "numberofinvoices": { - "type": ["number", "null"] - }, - "numberoferrors": { - "type": ["number", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "billingcycleday": { - "type": ["string", "null"] - }, - "totalexecutiontime": { - "type": ["number", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "weeklyonday": { - "type": ["string", "null"] - }, - "repeatfrom": { - "type": ["string", "null"] - }, - "enddate": { - "type": ["string", "null"] - }, - "rundate": { - "type": ["string", "null"] - }, - "numberofcreditbalanceadjustments": { - "type": ["number", "null"] - }, - "timezone": { - "type": ["string", "null"] - }, - "targetdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "repeattype": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "autoapplycreditmemo": { - "type": ["boolean", "null"] - }, - "errormessage": { - "type": ["string", "null"] - }, - "nextrunon": { - "type": ["string", "null"] - }, - "processpaymentwithclosedpm": { - "type": ["boolean", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "paymenttransactionlog", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "requeststring": { - "type": ["string", "null"] - }, - "batchid": { - "type": ["string", "null"] - }, - "gatewaytransactiontype": { - "type": ["string", "null"] - }, - "paymentid": { - "type": ["string", "null"] - }, - "cvvresponsecode": { - "type": ["string", "null"] - }, - "gatewayreasoncode": { - "type": ["string", "null"] - }, - "transactionid": { - "type": ["string", "null"] - }, - "avsresponsecode": { - "type": ["string", "null"] - }, - "gatewaystate": { - "type": ["string", "null"] - }, - "gateway": { - "type": ["string", "null"] - }, - "gatewayreasoncodedescription": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "responsestring": { - "type": ["string", "null"] - }, - "transactiondate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["createddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["createddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "processedusage", - "json_schema": { - "properties": { - "billingperiodenddate": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "billingperiodstartdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "usageid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "createddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "createddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "product", - "json_schema": { - "properties": { - "category": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "upgradepathsku__c": { - "type": ["string", "null"] - }, - "effectiveenddate": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "downgradepathsku__c": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "productmanager__c": { - "type": ["string", "null"] - }, - "allowfeaturechanges": { - "type": ["boolean", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "partnercommission__c": { - "type": ["string", "null"] - }, - "sku": { - "type": ["string", "null"] - }, - "effectivestartdate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "productrateplan", - "json_schema": { - "properties": { - "description": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "effectiveenddate": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "productid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "promotioncode__c": { - "type": ["string", "null"] - }, - "effectivestartdate": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "productrateplancharge", - "json_schema": { - "properties": { - "discountclassid": { - "type": ["string", "null"] - }, - "discountlevel": { - "type": ["string", "null"] - }, - "ratinggroup": { - "type": ["string", "null"] - }, - "accountingcode": { - "type": ["string", "null"] - }, - "specificbillingperiod": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "adjustmentliabilityaccountingcodeid": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "billingperiodalignment": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "uptoperiodstype": { - "type": ["string", "null"] - }, - "revenuerecognitionrulename": { - "type": ["string", "null"] - }, - "numberofperiod": { - "type": ["number", "null"] - }, - "overagecalculationoption": { - "type": ["string", "null"] - }, - "maxquantity": { - "type": ["number", "null"] - }, - "enddatecondition": { - "type": ["string", "null"] - }, - "taxmode": { - "type": ["string", "null"] - }, - "legacyrevenuereporting": { - "type": ["boolean", "null"] - }, - "weeklybillcycleday": { - "type": ["string", "null"] - }, - "billingperiod": { - "type": ["string", "null"] - }, - "usediscountspecificaccountingcode": { - "type": ["boolean", "null"] - }, - "triggerevent": { - "type": ["string", "null"] - }, - "billcycletype": { - "type": ["string", "null"] - }, - "productrateplanid": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "revrectriggercondition": { - "type": ["string", "null"] - }, - "pricechangeoption": { - "type": ["string", "null"] - }, - "contractliabilityaccountingcodeid": { - "type": ["string", "null"] - }, - "uptoperiods": { - "type": ["number", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "overageunusedunitscreditoption": { - "type": ["string", "null"] - }, - "adjustmentrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "taxable": { - "type": ["boolean", "null"] - }, - "contractrecognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "includedunits": { - "type": ["number", "null"] - }, - "contractassetaccountingcodeid": { - "type": ["string", "null"] - }, - "smoothingmodel": { - "type": ["string", "null"] - }, - "usagerecordratingoption": { - "type": ["string", "null"] - }, - "recognizedrevenueaccount": { - "type": ["string", "null"] - }, - "minquantity": { - "type": ["number", "null"] - }, - "deferredrevenueaccount": { - "type": ["string", "null"] - }, - "taxcode": { - "type": ["string", "null"] - }, - "unbilledreceivablesaccountingcodeid": { - "type": ["string", "null"] - }, - "billcycleday": { - "type": ["number", "null"] - }, - "defaultquantity": { - "type": ["number", "null"] - }, - "priceincreasepercentage": { - "type": ["number", "null"] - }, - "chargemodel": { - "type": ["string", "null"] - }, - "revreccode": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "applydiscountto": { - "type": ["string", "null"] - }, - "billingtiming": { - "type": ["string", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "listpricebase": { - "type": ["string", "null"] - }, - "uom": { - "type": ["string", "null"] - }, - "chargetype": { - "type": ["string", "null"] - }, - "usetenantdefaultforpricechange": { - "type": ["boolean", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "productrateplanchargetier", - "json_schema": { - "properties": { - "startingunit": { - "type": ["number", "null"] - }, - "includedunits": { - "type": ["number", "null"] - }, - "tier": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "overageprice": { - "type": ["number", "null"] - }, - "priceformat": { - "type": ["string", "null"] - }, - "discountamount": { - "type": ["number", "null"] - }, - "active": { - "type": ["boolean", "null"] - }, - "productrateplanchargeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "discountpercentage": { - "type": ["number", "null"] - }, - "endingunit": { - "type": ["number", "null"] - }, - "price": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "productrateplancurrency", - "json_schema": { - "properties": { - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "isactive": { - "type": ["boolean", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "productrateplanid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "rateplan", - "json_schema": { - "properties": { - "amendmentid": { - "type": ["string", "null"] - }, - "subscriptionid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "amendmenttype": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "productrateplanid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "rateplancharge", - "json_schema": { - "properties": { - "discountlevel": { - "type": ["string", "null"] - }, - "ratinggroup": { - "type": ["string", "null"] - }, - "accountingcode": { - "type": ["string", "null"] - }, - "specificbillingperiod": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "processedthroughdate": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "billingperiodalignment": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "uptoperiodstype": { - "type": ["string", "null"] - }, - "islastsegment": { - "type": ["boolean", "null"] - }, - "version": { - "type": ["number", "null"] - }, - "revenuerecognitionrulename": { - "type": ["string", "null"] - }, - "numberofperiods": { - "type": ["number", "null"] - }, - "overagecalculationoption": { - "type": ["string", "null"] - }, - "enddatecondition": { - "type": ["string", "null"] - }, - "weeklybillcycleday": { - "type": ["string", "null"] - }, - "dtcv": { - "type": ["number", "null"] - }, - "billingperiod": { - "type": ["string", "null"] - }, - "effectiveenddate": { - "type": ["string", "null"] - }, - "triggerevent": { - "type": ["string", "null"] - }, - "billcycletype": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "chargedthroughdate": { - "type": ["string", "null"] - }, - "triggerdate": { - "type": ["string", "null"] - }, - "revrectriggercondition": { - "type": ["string", "null"] - }, - "pricechangeoption": { - "type": ["string", "null"] - }, - "rateplanid": { - "type": ["string", "null"] - }, - "productrateplanchargeid": { - "type": ["string", "null"] - }, - "uptoperiods": { - "type": ["number", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "overageunusedunitscreditoption": { - "type": ["string", "null"] - }, - "isprocessed": { - "type": ["boolean", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "tcv": { - "type": ["number", "null"] - }, - "mrr": { - "type": ["number", "null"] - }, - "segment": { - "type": ["number", "null"] - }, - "billcycleday": { - "type": ["number", "null"] - }, - "dmrc": { - "type": ["number", "null"] - }, - "specificenddate": { - "type": ["string", "null"] - }, - "chargenumber": { - "type": ["string", "null"] - }, - "priceincreasepercentage": { - "type": ["number", "null"] - }, - "chargemodel": { - "type": ["string", "null"] - }, - "originalid": { - "type": ["string", "null"] - }, - "revreccode": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "applydiscountto": { - "type": ["string", "null"] - }, - "billingtiming": { - "type": ["string", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "listpricebase": { - "type": ["string", "null"] - }, - "quantity": { - "type": ["number", "null"] - }, - "uom": { - "type": ["string", "null"] - }, - "chargetype": { - "type": ["string", "null"] - }, - "effectivestartdate": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "rateplanchargetier", - "json_schema": { - "properties": { - "startingunit": { - "type": ["number", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "includedunits": { - "type": ["number", "null"] - }, - "tier": { - "type": ["number", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "overageprice": { - "type": ["number", "null"] - }, - "priceformat": { - "type": ["string", "null"] - }, - "discountamount": { - "type": ["number", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "discountpercentage": { - "type": ["number", "null"] - }, - "endingunit": { - "type": ["number", "null"] - }, - "price": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "refund", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "accountingcode": { - "type": ["string", "null"] - }, - "paymentmethodid": { - "type": ["string", "null"] - }, - "secondrefundreferenceid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "markedforsubmissionon": { - "type": ["string", "null"] - }, - "sourcetype": { - "type": ["string", "null"] - }, - "transferredtoaccounting": { - "type": ["string", "null"] - }, - "softdescriptor": { - "type": ["string", "null"] - }, - "gatewayreconciliationreason": { - "type": ["string", "null"] - }, - "gatewaystate": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "softdescriptorphone": { - "type": ["string", "null"] - }, - "gateway": { - "type": ["string", "null"] - }, - "gatewayreconciliationstatus": { - "type": ["string", "null"] - }, - "refundnumber": { - "type": ["string", "null"] - }, - "cancelledon": { - "type": ["string", "null"] - }, - "gatewayresponsecode": { - "type": ["string", "null"] - }, - "gatewayresponse": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "comment": { - "type": ["string", "null"] - }, - "methodtype": { - "type": ["string", "null"] - }, - "submittedon": { - "type": ["string", "null"] - }, - "payoutid": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "refundtransactiontime": { - "type": ["string", "null"] - }, - "refunddate": { - "type": ["string", "null"] - }, - "reasoncode": { - "type": ["string", "null"] - }, - "type": { - "type": ["string", "null"] - }, - "paymentmethodsnapshotid": { - "type": ["string", "null"] - }, - "referenceid": { - "type": ["string", "null"] - }, - "settledon": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "refundapplication", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "paymentid": { - "type": ["string", "null"] - }, - "invoiceid": { - "type": ["string", "null"] - }, - "cashaccountingcodeid": { - "type": ["string", "null"] - }, - "creditmemoid": { - "type": ["string", "null"] - }, - "onaccountaccountingcodeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "applyamount": { - "type": ["number", "null"] - }, - "unappliedpaymentaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "refundid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "applicationgroupid": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "refundapplicationitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "refundapplicationid": { - "type": ["string", "null"] - }, - "cashaccountingcodeid": { - "type": ["string", "null"] - }, - "onaccountaccountingcodeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "unappliedpaymentaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "credittaxationitemid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "creditmemoitemid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "applicationgroupid": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - }, - "effectivedate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "refundpart", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "paymentid": { - "type": ["string", "null"] - }, - "refundamount": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "refundid": { - "type": ["string", "null"] - }, - "creditmemoid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "refundpartitem", - "json_schema": { - "properties": { - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "creditmemoitemid": { - "type": ["string", "null"] - }, - "refundpartid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenuechargesummary", - "json_schema": { - "properties": { - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenuechargesummaryitem", - "json_schema": { - "properties": { - "revenuechargesummaryid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueevent", - "json_schema": { - "properties": { - "recognitionstart": { - "type": ["string", "null"] - }, - "revenuescheduleid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "revenueeventtypeid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "recognitionend": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueeventcreditmemoitem", - "json_schema": { - "properties": { - "recognitionstart": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "revenueeventtypeid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "revenueschedulecreditmemoitemid": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "recognitionend": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueeventinvoiceitem", - "json_schema": { - "properties": { - "recognitionstart": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "revenueeventtypeid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "revenuescheduleinvoiceitemid": { - "type": ["string", "null"] - }, - "recognitionend": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueeventitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "revenueeventid": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueeventitemcreditmemoitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "revenueeventcreditmemoitemid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueeventiteminvoiceitem", - "json_schema": { - "properties": { - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "revenueeventinvoiceitemid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { "name": "revenueeventtype", - "json_schema": { - "properties": { - "active": { - "type": ["boolean", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "systemid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "revenueschedule", - "json_schema": { - "properties": { - "billingtransactionid": { - "type": ["string", "null"] - }, - "revenuechargesummaryid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "transactionnumber": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "financetransactiontype": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "referenceid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "exchangeratedate": { - "type": ["string", "null"] - }, - "recognitionperiodend": { - "type": ["string", "null"] - }, - "revenuescheduledate": { - "type": ["string", "null"] - }, - "undistributedamount": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "rule": { - "type": ["string", "null"] - }, - "recognitionperiodstart": { - "type": ["string", "null"] - }, - "transactiondate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "name": "state", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenueschedulecreditmemoitem", - "json_schema": { - "properties": { - "revenuechargesummaryid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "transactionnumber": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "financetransactiontype": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "referenceid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "exchangeratedate": { - "type": ["string", "null"] - }, - "recognitionperiodend": { - "type": ["string", "null"] - }, - "revenuescheduledate": { - "type": ["string", "null"] - }, - "undistributedamount": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "rule": { - "type": ["string", "null"] - }, - "creditmemoitemid": { - "type": ["string", "null"] - }, - "recognitionperiodstart": { - "type": ["string", "null"] - }, - "transactiondate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenuescheduleinvoiceitem", - "json_schema": { - "properties": { - "revenuechargesummaryid": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "transactionnumber": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "financetransactiontype": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "number": { - "type": ["string", "null"] - }, - "referenceid": { - "type": ["string", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "exchangeratedate": { - "type": ["string", "null"] - }, - "recognitionperiodend": { - "type": ["string", "null"] - }, - "revenuescheduledate": { - "type": ["string", "null"] - }, - "undistributedamount": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "rule": { - "type": ["string", "null"] - }, - "recognitionperiodstart": { - "type": ["string", "null"] - }, - "transactiondate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenuescheduleitem", - "json_schema": { - "properties": { - "revenuescheduleid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenuescheduleitemcreditmemoitem", - "json_schema": { - "properties": { - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "revenueschedulecreditmemoitemid": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], - "destination_sync_mode": "append" - }, - { - "stream": { - "name": "revenuescheduleiteminvoiceitem", - "json_schema": { - "properties": { - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "amount": { - "type": ["number", "null"] - }, - "currency": { - "type": ["string", "null"] - }, - "deferredrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "revenuescheduleinvoiceitemid": { - "type": ["string", "null"] - }, - "recognizedrevenueaccountingcodeid": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "accountingperiodid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] - }, - "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "sync_mode": "full_refresh", "destination_sync_mode": "append" }, { "stream": { "name": "subscription", - "json_schema": { - "properties": { - "currenttermperiodtype": { - "type": ["string", "null"] - }, - "quotenumber__qt": { - "type": ["string", "null"] - }, - "subscriptionstartdate": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "opportunityname__qt": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "partnerid__c": { - "type": ["string", "null"] - }, - "autorenew": { - "type": ["boolean", "null"] - }, - "creatorinvoiceownerid": { - "type": ["string", "null"] - }, - "renewaltermperiodtype": { - "type": ["string", "null"] - }, - "serviceactivationdate": { - "type": ["string", "null"] - }, - "creatoraccountid": { - "type": ["string", "null"] - }, - "termtype": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "contracteffectivedate": { - "type": ["string", "null"] - }, - "subscriptionversionamendmentid": { - "type": ["string", "null"] - }, - "contractacceptancedate": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "version": { - "type": ["number", "null"] - }, - "currentterm": { - "type": ["number", "null"] - }, - "rampid": { - "type": ["string", "null"] - }, - "cpqbundlejsonid__qt": { - "type": ["string", "null"] - }, - "quotetype__qt": { - "type": ["string", "null"] - }, - "initialterm": { - "type": ["number", "null"] - }, - "notes": { - "type": ["string", "null"] - }, - "cancelleddate": { - "type": ["string", "null"] - }, - "status": { - "type": ["string", "null"] - }, - "quotebusinesstype__qt": { - "type": ["string", "null"] - }, - "previoussubscriptionid": { - "type": ["string", "null"] - }, - "originalid": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "renewalsetting": { - "type": ["string", "null"] - }, - "isinvoiceseparate": { - "type": ["boolean", "null"] - }, - "opportunityclosedate__qt": { - "type": ["string", "null"] - }, - "subscriptionenddate": { - "type": ["string", "null"] - }, - "revision": { - "type": ["string", "null"] - }, - "cmrr": { - "type": ["number", "null"] - }, - "termstartdate": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "renewalterm": { - "type": ["number", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "originalcreateddate": { - "type": ["string", "null"] - }, - "initialtermperiodtype": { - "type": ["string", "null"] - }, - "invoiceownerid": { - "type": ["string", "null"] - }, - "termenddate": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "subscriptionproductfeature", - "json_schema": { - "properties": { - "featureid": { - "type": ["string", "null"] - }, - "rateplanid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "name": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "user", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "createddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "createddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "taxationitem", - "json_schema": { - "properties": { - "accountingcode": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "creditamount": { - "type": ["number", "null"] - }, - "paymentamount": { - "type": ["number", "null"] - }, - "name": { - "type": ["string", "null"] - }, - "exemptamount": { - "type": ["number", "null"] - }, - "salestaxpayableaccountingcodeid": { - "type": ["string", "null"] - }, - "taxamount": { - "type": ["number", "null"] - }, - "taxcodedescription": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "taxcode": { - "type": ["string", "null"] - }, - "taxdate": { - "type": ["string", "null"] - }, - "taxrate": { - "type": ["number", "null"] - }, - "journalentryid": { - "type": ["string", "null"] - }, - "taxratetype": { - "type": ["string", "null"] - }, - "taxmode": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "invoiceitemid": { - "type": ["string", "null"] - }, - "locationcode": { - "type": ["string", "null"] - }, - "jurisdiction": { - "type": ["string", "null"] - }, - "taxratedescription": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "balance": { - "type": ["number", "null"] - }, - "taxableitemsnapshotid": { - "type": ["string", "null"] - }, - "accountreceivableaccountingcodeid": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "workflow", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "usage", - "json_schema": { - "properties": { - "rbestatus": { - "type": ["string", "null"] - }, - "accountid": { - "type": ["string", "null"] - }, - "description": { - "type": ["string", "null"] - }, - "rateplanchargeid": { - "type": ["string", "null"] - }, - "updateddate": { - "type": ["string", "null"] - }, - "updatedbyid": { - "type": ["string", "null"] - }, - "sourcetype": { - "type": ["string", "null"] - }, - "quantity": { - "type": ["number", "null"] - }, - "importid": { - "type": ["string", "null"] - }, - "accountnumber": { - "type": ["string", "null"] - }, - "submissiondatetime": { - "type": ["string", "null"] - }, - "uom": { - "type": ["string", "null"] - }, - "startdatetime": { - "type": ["string", "null"] - }, - "subscriptionid": { - "type": ["string", "null"] - }, - "createdbyid": { - "type": ["string", "null"] - }, - "enddatetime": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "workflow_definition", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["updateddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["updateddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" }, { "stream": { - "name": "user", - "json_schema": { - "properties": { - "email": { - "type": ["string", "null"] - }, - "username": { - "type": ["string", "null"] - }, - "firstname": { - "type": ["string", "null"] - }, - "createddate": { - "type": ["string", "null"] - }, - "id": { - "type": ["string", "null"] - }, - "lastname": { - "type": ["string", "null"] - } - } - }, - "supported_sync_modes": ["full_refresh", "incremental"], + "name": "workflow_task", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], "source_defined_cursor": true, - "default_cursor_field": ["createddate"], - "source_defined_primary_key": [["id"]] + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] }, "sync_mode": "incremental", - "cursor_field": ["createddate"], + "cursor_field": [ + "updateddate" + ], "destination_sync_mode": "append" } ] diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py b/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py index b67285fae1b63..184b6761ea612 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py @@ -122,9 +122,11 @@ def test_query(self): # Making example query using input example_query = f""" - select * from {self.test_stream} where + select * + from {self.test_stream} where {self.test_cursor_field} >= TIMESTAMP '{test_date_slice.get("start_date")}' and {self.test_cursor_field} <= TIMESTAMP '{test_date_slice.get("end_date")}' + order by {self.test_cursor_field} asc """ # Making test query using query() method @@ -135,6 +137,22 @@ def test_query(self): # If the query is correctly build using connector class return True assert example_query == test_query + def test_query_full_object(self): + """ + The ZuoraObjectsBase.query() works with streams that doesn't support any of the cursor available, + such as `UpdatedDate` or `CreatedDate`. In this case, we cannot filter the object by date, + so we pull the whole object. + """ + + # Making example query using input + example_query = f"""select * from {self.test_stream}""" + + # Making test query using query() method + test_query = ZuoraObjectsBase.query(self, stream_name=self.test_stream, full_object=True) + + # If the query is correctly build using connector class return True + assert example_query == test_query + def test_submit_job(self): """ Test submits the job to the server and returns the `job_id` as confirmation that the job was submitted successfully. diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json b/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json index 1647a28a17f6c..d49a313c3b0a0 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json @@ -3,5 +3,5 @@ "window_in_days": 0, "client_id": "some_client_id", "client_secret": "some_client_secret", - "is_sandbox": true -} + "tenant_endpoint": "US Cloud API Sandbox" +} \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt b/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt index d1ee3f1ad99c6..13cc5534687a1 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt @@ -1,5 +1,8 @@ -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": "1cd8ba65f2d372d72dd7f02f8c3123df", "totaldebitmemobalance": 0.0, "updateddate": "2018-06-14T11:40:51-07:00", "name": "Veronica Dicki", "createdbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": "1cd8ba65e5fa6aeb66ec90111f53929f", "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": null, "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2018-05-24T13:55:42-07:00", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "1cd8ba651bd8e9f0bcc77b86cb45a9c6", "balance": 395.63, "soldtoid": "1cd8ba655775b3b648291763df36567d", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": null, "mrr": 0.0, "taxexemptexpirationdate": null, "incollections__c": null, "totalinvoicebalance": 395.63, "taxexemptentityusecode": null, "batch": "Batch14", "paymentgateway": null, "billcycleday": 1, "billtoid": "1cd8ba65820715eb94ab0e14b89063cd", "notes": "Demo test data run on 2018-05-24 17:55:39", "vatid": null, "parentid": null, "purchaseordernumber": null, "updatedbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "creditbalance": 0.0, "autopay": false, "customerservicerepname": null, "paymentterm": "Due Upon Receipt", "entity__c": null, "lastinvoicedate": "2018-05-16", "accountnumber": "A00000315", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": null, "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1627649407000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": "1cd8ba65f2d372d72dd7f02f8c3123df", "totaldebitmemobalance": 0.0, "updateddate": "2018-06-14T11:40:51-07:00", "name": "Arthur Jones (Grandfather)", "createdbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "taxexemptissuingjurisdiction": "", "currency": "USD", "taxexemptcertificateid": "", "crmid": "001E0000016QOV2IAO", "defaultpaymentmethodid": "1cd8ba65974dc49b340d4f4972086d22", "status": "Active", "creditmemotemplateid": "1cd8ba65e6ce570e99f8f490617f902a", "debitmemotemplateid": "1cd8ba655ca4904fc7b02b9023ca0f56", "communicationprofileid": "1cd8ba65669cc46f138154fc89b1902b", "invoicedeliveryprefsemail": true, "bcdsettingoption": "AutoSet", "createddate": "2018-05-16T07:02:50-07:00", "unappliedcreditmemoamount": 0.0, "taxcompanycode": "", "id": "1cd8ba6522fb1371b19698acd1d77c85", "balance": 0.0, "soldtoid": "1cd8ba65112d8c4465ec3cd69720fe00", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 0.0, "taxexemptexpirationdate": null, "incollections__c": "False", "totalinvoicebalance": 0.0, "taxexemptentityusecode": "", "batch": "Batch50", "paymentgateway": null, "billcycleday": 25, "billtoid": "1cd8ba65112d8c4465ec3cd69720fe00", "notes": "", "vatid": "", "parentid": null, "purchaseordernumber": "", "updatedbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "creditbalance": 0.0, "autopay": true, "customerservicerepname": "", "paymentterm": "Due Upon Receipt", "entity__c": "North America", "lastinvoicedate": "2017-12-25", "accountnumber": "A00000195", "taxexemptstatus": "No", "taxexemptcertificatetype": "", "salesrepname": "", "taxexemptdescription": "", "allowinvoiceedit": false}, "emitted_at": 1627649407000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": "1cd8ba65f2d372d72dd7f02f8c3123df", "totaldebitmemobalance": 0.0, "updateddate": "2018-06-14T11:40:51-07:00", "name": "Ray Gaylord", "createdbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": "1cd8ba651cbd0c21cd7b16f9bf9c9e3d", "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": null, "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2018-05-24T13:55:20-07:00", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "1cd8ba6523c80feee415398fb754cb96", "balance": 394.88, "soldtoid": "1cd8ba65e4960d2ee727c4c622bfbec5", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": null, "mrr": 0.0, "taxexemptexpirationdate": null, "incollections__c": null, "totalinvoicebalance": 394.88, "taxexemptentityusecode": null, "batch": "Batch14", "paymentgateway": null, "billcycleday": 1, "billtoid": "1cd8ba657eefdc61b74c7d8119caa4fc", "notes": "Demo test data run on 2018-05-24 17:55:19", "vatid": null, "parentid": null, "purchaseordernumber": null, "updatedbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "creditbalance": 0.0, "autopay": false, "customerservicerepname": null, "paymentterm": "Due Upon Receipt", "entity__c": null, "lastinvoicedate": "2016-05-27", "accountnumber": "A00000313", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": null, "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1627649407000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": "1cd8ba65f2d372d72dd7f02f8c3123df", "totaldebitmemobalance": 0.0, "updateddate": "2018-06-14T11:40:51-07:00", "name": "Millennium Oncology", "createdbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "taxexemptissuingjurisdiction": "", "currency": "USD", "taxexemptcertificateid": "", "crmid": "001E0000017FMBwIAO", "defaultpaymentmethodid": "1cd8ba657011cea5ab66cfcdc33e0d4e", "status": "Active", "creditmemotemplateid": "1cd8ba65e6ce570e99f8f490617f902a", "debitmemotemplateid": "1cd8ba655ca4904fc7b02b9023ca0f56", "communicationprofileid": "1cd8ba65669cc46f138154fc89b1902b", "invoicedeliveryprefsemail": false, "bcdsettingoption": "AutoSet", "createddate": "2018-05-16T07:41:25-07:00", "unappliedcreditmemoamount": 0.0, "taxcompanycode": "", "id": "1cd8ba654a629b66f2df6336e5ed5c15", "balance": 0.0, "soldtoid": "1cd8ba6566b075fa9e2f94883bf780fa", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 233.33, "taxexemptexpirationdate": null, "incollections__c": "False", "totalinvoicebalance": 0.0, "taxexemptentityusecode": "", "batch": "Batch1", "paymentgateway": null, "billcycleday": 0, "billtoid": "1cd8ba6566b075fa9e2f94883bf780fa", "notes": "", "vatid": "", "parentid": "1cd8ba65d4f59d109232b9452f8aba02", "purchaseordernumber": "", "updatedbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "creditbalance": 0.0, "autopay": true, "customerservicerepname": "", "paymentterm": "Net 30", "entity__c": "North America", "lastinvoicedate": null, "accountnumber": "A00000203", "taxexemptstatus": "No", "taxexemptcertificatetype": "", "salesrepname": "", "taxexemptdescription": "", "allowinvoiceedit": false}, "emitted_at": 1627649407000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": "1cd8ba65f2d372d72dd7f02f8c3123df", "totaldebitmemobalance": 0.0, "updateddate": "2018-06-14T11:40:51-07:00", "name": "UTK", "createdbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "taxexemptissuingjurisdiction": "", "currency": "USD", "taxexemptcertificateid": "", "crmid": "001E0000016PJT7IAO", "defaultpaymentmethodid": "1cd8ba65c6f2876a13aacb3df55d8250", "status": "Active", "creditmemotemplateid": "1cd8ba65e6ce570e99f8f490617f902a", "debitmemotemplateid": "1cd8ba655ca4904fc7b02b9023ca0f56", "communicationprofileid": "1cd8ba65669cc46f138154fc89b1902b", "invoicedeliveryprefsemail": false, "bcdsettingoption": "AutoSet", "createddate": "2018-05-16T07:36:41-07:00", "unappliedcreditmemoamount": 0.0, "taxcompanycode": "", "id": "1cd8ba654fcf7bd871d38aaaf1b14628", "balance": 0.0, "soldtoid": "1cd8ba659caa07643cc302304180ad7f", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 3041.67, "taxexemptexpirationdate": null, "incollections__c": "False", "totalinvoicebalance": 0.0, "taxexemptentityusecode": "", "batch": "Batch1", "paymentgateway": null, "billcycleday": 0, "billtoid": "1cd8ba659caa07643cc302304180ad7f", "notes": "", "vatid": "", "parentid": "1cd8ba65d4f59d109232b9452f8aba02", "purchaseordernumber": "", "updatedbyid": "1cd8ba65e26c895bc55a03e83b2c120e", "creditbalance": 0.0, "autopay": true, "customerservicerepname": "", "paymentterm": "Net 30", "entity__c": "North America", "lastinvoicedate": null, "accountnumber": "A00000201", "taxexemptstatus": "No", "taxexemptcertificatetype": "", "salesrepname": "", "taxexemptdescription": "", "allowinvoiceedit": false}, "emitted_at": 1627649407000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-09-30T15:07:12Z", "name": "It Smart Group", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:15:19Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30d6402a24c2", "balance": 197.02, "soldtoid": "8ac691a07c3006a6017c30d6405a24c3", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 15.5, "taxexemptexpirationdate": null, "totalinvoicebalance": 197.02, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30d6405a24c3", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000003", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198640000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T07:43:20Z", "name": "Boeing", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:21:23Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30dbcd302538", "balance": -450.0, "soldtoid": "8ac691a07c3006a6017c30dbcd552539", "unappliedbalance": 450.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 0.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30dbcd552539", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000004", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": null, "updateddate": "2021-09-29T09:24:20Z", "name": "Biolife Grup", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:24:20Z", "unappliedcreditmemoamount": null, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30de7fab256a", "balance": 0.0, "soldtoid": "8ac691a07c3006a6017c30de7fb1256b", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": null, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30de7fb1256b", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000005", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T07:01:43Z", "name": "Amazon.com", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:25:11Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30df48e12577", "balance": -20.0, "soldtoid": "8ac691a07c3006a6017c30df48e72578", "unappliedbalance": 20.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 327.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30df48e72578", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000006", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T08:01:53Z", "name": "Coca-Cola Company", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:26:21Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30e0582e258a", "balance": -1335.0, "soldtoid": "8ac691a07c3006a6017c30e0583a258b", "unappliedbalance": 1335.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 0.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30e0583a258b", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000007", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": null, "updateddate": "2021-09-29T09:27:26Z", "name": "CarMax", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:27:26Z", "unappliedcreditmemoamount": null, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30e1578925a4", "balance": 0.0, "soldtoid": "8ac691a07c3006a6017c30e157ac25a5", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": null, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30e157ac25a5", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000008", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 16.0, "updateddate": "2021-10-01T12:27:37Z", "name": "Coca-Cola Company", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:28:35Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691da7c3006a5017c30e2659326a5", "balance": 16.0, "soldtoid": "8ac691da7c3006a5017c30e265c026a6", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 475.5, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691da7c3006a5017c30e265c026a6", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000009", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} +{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T08:18:02Z", "name": "Demaco", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:29:39Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac680067c2ff49d017c30e35f6d2849", "balance": 0.0, "soldtoid": "8ac680067c2ff49d017c30e35f7d284a", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 84.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac680067c2ff49d017c30e35f7d284a", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000010", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py index c7a98316eab0b..efc1ae9c891bc 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py @@ -11,13 +11,18 @@ import pendulum import requests from airbyte_cdk import AirbyteLogger -from airbyte_cdk.models import AirbyteStream +from airbyte_cdk.models import AirbyteStream, SyncMode from airbyte_cdk.sources import AbstractSource from airbyte_cdk.sources.streams.http import HttpStream -from .zuora_endpoint import get_url_base from .zuora_auth import ZuoraAuthenticator -from .zuora_errors import ZOQLQueryCannotProcessObject, ZOQLQueryFailed, ZOQLQueryFieldCannotResolve +from .zuora_endpoint import get_url_base +from .zuora_errors import ( + ZOQLQueryCannotProcessObject, + ZOQLQueryFailed, + ZOQLQueryFieldCannotResolveAltCursor, + ZOQLQueryFieldCannotResolveCursor, +) class ZuoraStream(HttpStream, ABC): @@ -28,6 +33,7 @@ class ZuoraStream(HttpStream, ABC): # Define primary key primary_key = "id" + # Define possible cursor_fields cursor_field = "updateddate" alt_cursor_field = "createddate" @@ -74,7 +80,7 @@ def request_kwargs(self, stream_slice: Mapping[str, Any] = None, **kwargs) -> Ma """ return stream_slice if stream_slice else {} - def get_zuora_data(self, date_slice: Dict, config: Dict) -> Iterable[Mapping[str, Any]]: + def get_zuora_data(self, date_slice: Dict, config: Dict, full_object: bool = False) -> Iterable[Mapping[str, Any]]: """ This is the wrapper for 'Submit > Check > Get' operation. @@ -87,12 +93,17 @@ def get_zuora_data(self, date_slice: Dict, config: Dict) -> Iterable[Mapping[str for more information see: ZuoraJobStatusCheck :: ZuoraGetJobResult - reads the 'dataFile' URL and outputs the data records for completed job for more information see: ZuoraGetJobResult + :: full_object - boolean, indicates whether to fetch the whole object without any filtering, default `False` """ + if full_object: + # If the cursor is not available, we fetch whole object + job_query = self.query(stream_name=self.name, full_object=True) + else: + # Default prepared job with Cursor + job_query = self.query(stream_name=self.name, cursor_field=self.cursor_field, date_slice=date_slice) - job_id: List[str] = ZuoraSubmitJob( - self.query(stream_name=self.name, cursor_field=self.cursor_field, date_slice=date_slice), config - ).read_records(sync_mode=None) + job_id: List[str] = ZuoraSubmitJob(job_query, config).read_records(sync_mode=None) job_data_url: List = ZuoraJobStatusCheck(list(job_id)[0], config).read_records(sync_mode=None) yield from ZuoraGetJobResult(list(job_data_url)[0]).read_records(sync_mode=None) @@ -101,18 +112,34 @@ def _send_request(self, request: requests.PreparedRequest, request_kwargs: Mappi Override for _send_request CDK method to send HTTP request to the Zuora API """ try: + # try to fetch with default cursor_field = UpdatedDate yield from self.get_zuora_data(date_slice=request_kwargs, config=self._config) - except ZOQLQueryFieldCannotResolve: + except ZOQLQueryCannotProcessObject: + # do nothing if we cannot resolve the object + pass + except ZOQLQueryFieldCannotResolveCursor: """ The default cursor_field is "updateddate" sometimes it's not supported by certain streams. We need to swith the default cursor field to alternative one, and retry again the whole operation, submit the new job to the server. We also need to save the state in the end of the sync. So this switch is needed as fast and easy way of resolving the cursor_field for streams that support only the "createddate" """ - self.cursor_field = self.alt_cursor_field # cursor_field switch - yield from self.get_zuora_data(date_slice=request_kwargs, config=self._config) # retry the whole operation - except ZOQLQueryCannotProcessObject: - pass + # cursor_field switch to alternative = CreatedDate + self.cursor_field = self.alt_cursor_field + try: + """ + The alternative cursor_field is "createddate", it could be also not available for some custom objects. + In this case, we fetch the whole object without any filtering. + """ + # retry the whole operation with alternative cursor + yield from self.get_zuora_data(date_slice=request_kwargs, config=self._config) + except ZOQLQueryFieldCannotResolveAltCursor: + # if we fail to use the alternative cursor - fetch the whole object + # retry the whole operation + yield from self.get_zuora_data(date_slice=request_kwargs, config=self._config, full_object=True) + except ZOQLQueryCannotProcessObject: + # do nothing if we cannot resolve the object + pass def parse_response(self, response: requests.Response, **kwargs) -> str: yield from response @@ -141,15 +168,23 @@ def get_cursor_from_schema(self, schema: Dict) -> str: """ Get the cursor_field from the stream's schema rather that take it from the class attribute If the stream doesn't support 'updateddate', then we use 'createddate'. + If the stream doesn't support 'createddate', then stream is `full_refresh` only. """ - return self.cursor_field if self.cursor_field in schema else self.alt_cursor_field + if self.cursor_field in schema: + # when UpdatedDate is availalbe + return self.cursor_field + elif self.alt_cursor_field in schema: + # when CreatedDate is availalbe + return self.alt_cursor_field + else: + return None def get_json_schema(self) -> Mapping[str, Any]: """ Override get_json_schema CDK method to retrieve the schema information for Zuora Object dynamicaly. """ schema = list(ZuoraDescribeObject(self.name, config=self._config).read_records(sync_mode=None)) - return {"properties": {key: d[key] for d in schema for key in d}} + return {"type": "object", "properties": {key: d[key] for d in schema for key in d}} def as_airbyte_stream(self) -> AirbyteStream: """ @@ -158,7 +193,14 @@ def as_airbyte_stream(self) -> AirbyteStream: :: But we still need the default class attribute 'cursor_field' in order to CDK read_records works properly. """ stream = super().as_airbyte_stream() - stream.default_cursor_field = [self.get_cursor_from_schema(stream.json_schema["properties"])] + stream_cursor = self.get_cursor_from_schema(stream.json_schema["properties"]) + if stream_cursor: + stream.default_cursor_field = [stream_cursor] + else: + # When there is no cursor available in the stream, we do Full-Refresh only. + stream.supported_sync_modes = [SyncMode.full_refresh] + stream.source_defined_cursor = None + stream.default_cursor_field = None return stream def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: @@ -167,14 +209,19 @@ def get_updated_state(self, current_stream_state: MutableMapping[str, Any], late """ return {self.cursor_field: max(latest_record.get(self.cursor_field, ""), current_stream_state.get(self.cursor_field, ""))} - def query(self, stream_name: str, cursor_field: str, date_slice: Dict) -> str: + def query(self, stream_name: str, cursor_field: str = None, date_slice: Dict = None, full_object: bool = False) -> str: """ Custom method. Returns the SQL-like query in a way Zuora API endpoint accepts the jobs. """ + if full_object: + return f"""select * from {stream_name}""" + return f""" - select * from {stream_name} where + select * + from {stream_name} where {cursor_field} >= TIMESTAMP '{date_slice.get('start_date')}' and {cursor_field} <= TIMESTAMP '{date_slice.get('end_date')}' + order by {cursor_field} asc """ def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Iterable[Optional[Mapping[str, Any]]]: @@ -192,7 +239,8 @@ def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Ite # Determine stream_state, if no stream_state we use start_date if stream_state: - start_date = pendulum.parse(stream_state.get(self.cursor_field, stream_state.get(self.alt_cursor_field))) + state = stream_state.get(self.cursor_field, stream_state.get(self.alt_cursor_field)) + start_date = pendulum.parse(state) if state else self.start_date # use the lowest date between start_date and self.end_date, otherwise API fails if start_date is in future start_date = min(start_date, end_date) @@ -249,10 +297,13 @@ def parse_response(self, response: requests.Response, **kwargs) -> List[Dict]: type_mapping = { "decimal(22,9)": type_number, + "decimal": type_number, "integer": type_number, "int": type_number, "bigint": type_number, "smallint": type_number, + "double": type_number, + "float": type_number, "timestamp": type_number, "date": type_string, "datetime": type_string, @@ -369,6 +420,7 @@ def _send_request(self, request: requests.PreparedRequest, request_kwargs: Mappi errors = ["failed", "canceled", "aborted"] # Error msg: the cursor_field cannot be resolved cursor_error = f"Column '{self.cursor_field}' cannot be resolved" + alt_cursor_error = f"Column '{self.alt_cursor_field}' cannot be resolved" # Error msg: cannot process object obj_read_error = "failed to process object" @@ -381,13 +433,16 @@ def _send_request(self, request: requests.PreparedRequest, request_kwargs: Mappi the server will output the error with the corresponding message for the user in the output, by raising `ZOQLQueryFailed` exception. """ + response: requests.Response = self._session.send(request, **request_kwargs) job_check = response.json() status = job_check["data"]["queryStatus"] if status in errors and cursor_error in job_check["data"]["errorMessage"]: - raise ZOQLQueryFieldCannotResolve + raise ZOQLQueryFieldCannotResolveCursor elif status in errors and obj_read_error in job_check["data"]["errorMessage"]: raise ZOQLQueryCannotProcessObject + elif status in errors and alt_cursor_error in job_check["data"]["errorMessage"]: + raise ZOQLQueryFieldCannotResolveAltCursor elif status in errors: raise ZOQLQueryFailed(response) return response @@ -475,13 +530,13 @@ def streams(self, config: Mapping[str, Any]) -> List[ZuoraStream]: config["url_base"] = url_base # List available objects (streams) names from Zuora - # zuora_stream_names = ["account", "invoicehistory", "ratedusage"] + # Example: zuora_stream_names = ["account", "country", "user"] zuora_stream_names = ZuoraListObjects(config).read_records(sync_mode=None) streams: List[ZuoraStream] = [] for stream_name in zuora_stream_names: # construct ZuoraReadStreams sub-class for each stream_name - stream_class = type(stream_name, (ZuoraObjectsBase,), {"cursor_field": "updateddate"}) + stream_class = type(stream_name, (ZuoraObjectsBase,), {}) # instancetiate a stream with config stream_instance = stream_class(config) streams.append(stream_instance) diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json b/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json index c1d1c7264add1..4751dfeb4a973 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json @@ -4,8 +4,12 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Zuora Connector Configuration", "type": "object", - "required": ["start_date","client_id","client_secret","tenant_endpoint"], - "additionalProperties": false, + "required": [ + "start_date", + "client_id", + "client_secret", + "tenant_endpoint" + ], "properties": { "start_date": { "type": "string", @@ -15,7 +19,14 @@ "window_in_days": { "type": "integer", "description": "The amount of days for each data-chunk begining from start_date. Bigger the value - faster the fetch. (Min=1, as for a Day; Max=364, as for a Year).", - "examples": [30,60,90,120,200,364], + "examples": [ + 30, + 60, + 90, + 120, + 200, + 364 + ], "default": 90 }, "client_id": { @@ -29,47 +40,38 @@ "airbyte_secret": true }, "tenant_endpoint": { - "title": "Tenant Endpoint Type", - "type": "object", + "title": "Tenant Endpoint Location", + "type": "string", "description": "Please choose the right endpoint where your Tenant is located. More info by this Link", - "oneOf": [ - { - "title": "Production", - "description": "Choose between production endpoints", - "required": ["production"], - "properties": { - "production": { - "title": "Choose between production endpoints", - "type": "string", - "enum": ["US Production","US Cloud Production","EU Production"] - } - } - }, - { - "title": "Sandbox", - "description": "Choose between sandbox endpoints", - "required": ["sandbox"], - "properties": { - "sandbox": { - "title": "Choose between sandbox endpoints", - "type": "string", - "enum": ["US API Sandbox","US Cloud API Sandbox","US Central Sandbox","EU API Sandbox","EU Central Sandbox"] - } - } - }, - { - "title": "Custom", - "description": "Enter the URL link for your tenant.", - "required": ["custom"], - "properties": { - "custom": { - "title": "Enter your custom tenant URL", - "type": "string", - "description": "Specifies the URL for Zuora Tenant", - "examples": ["https://my.zuora.tenant.com/"] - } - } - } + "enum": [ + "US Production", + "US Cloud Production", + "US API Sandbox", + "US Cloud API Sandbox", + "US Central Sandbox", + "US Performance Test", + "EU Production", + "EU API Sandbox", + "EU Central Sandbox" + ] + } + }, + "authSpecification": { + "auth_type": "oauth2.0", + "oauth2Specification": { + "rootObject": [], + "oauthFlowInitParameters": [ + [ + "client_id" + ], + [ + "client_secret" + ] + ], + "oauthFlowOutputParameters": [ + [ + "access_token" + ] ] } } diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py index 8562d6da4f190..469a6a84947c9 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_endpoint.py @@ -6,26 +6,21 @@ from typing import Dict ZUORA_TENANT_ENDPOINT_MAP: Dict = { + # Production "US Production": "https://rest.zuora.com", - "US API Sandbox": "https://rest.apisandbox.zuora.com", - "US Performance Test": "https://rest.pt1.zuora.com", "US Cloud Production": "https://rest.na.zuora.com", + "EU Production": "https://rest.eu.zuora.com", + # Sandbox + "US API Sandbox": "https://rest.apisandbox.zuora.com", "US Cloud API Sandbox": "https://rest.sandbox.na.zuora.com", "US Central Sandbox": "https://rest.test.zuora.com", - "EU Production": "https://rest.eu.zuora.com", "EU API Sandbox": "https://rest.sandbox.eu.zuora.com", "EU Central Sandbox": "https://rest.test.eu.zuora.com", + # Performance Test + "US Performance Test": "https://rest.pt1.zuora.com", } + def get_url_base(tenant_endpoint: str) -> str: """ Define the URL Base from user's input with respect to the ZUORA_TENANT_ENDPOINT_MAP """ - - # map the tenant_type & endpoint from user's input - tenant_type, endpoint = list(tenant_endpoint.items())[0] - if tenant_type == "custom": - # case with custom tenant URL should return the entered URL as url_base - url_base = endpoint - else: - # all other cases should be handled by the tenant map - url_base = ZUORA_TENANT_ENDPOINT_MAP.get(endpoint) - return url_base \ No newline at end of file + return ZUORA_TENANT_ENDPOINT_MAP.get(tenant_endpoint) diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_errors.py b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_errors.py index e82d422f77d81..190e397b6e3aa 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_errors.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_errors.py @@ -33,7 +33,7 @@ class ZOQLQueryFailed(ZOQLQueryError): """ Failed to execute query on the server side """ -class ZOQLQueryFieldCannotResolve(Error): +class ZOQLQueryFieldCannotResolveCursor(Error): """ Failed to execute query on the server side because of the certain field could not be resolved This exception is used to switch the default cursor_field inside the query. @@ -43,6 +43,16 @@ def __init__(self, message: str = "Cursor 'UpdatedDate' is not available. Switch super().__init__(self.logger.info(message)) +class ZOQLQueryFieldCannotResolveAltCursor(Error): + """ + Failed to execute query on the server side because of the certain field could not be resolved + This exception is used to switch the default cursor_field inside the query. + """ + + def __init__(self, message: str = "Cursor 'CreatedDate' is not available. Fetching whole object"): + super().__init__(self.logger.info(message)) + + class ZOQLQueryCannotProcessObject(Error): """ The error raises when the user doesn't have the right permissions to read certain Zuora Object, @@ -52,6 +62,7 @@ class ZOQLQueryCannotProcessObject(Error): def __init__( self, - message: str = "The stream cannot be processed, check Zuora Object's Permissions / Subscription Plan. This warning is not critical, and could be ignored.", + message: str = "The stream cannot be processed, check Zuora Object's Permissions / Subscription Plan / API User Permissions, etc. This warning is not critical, and could be ignored.", ): super().__init__(self.logger.warn(message)) + pass From 76a6faab10e5fd8fc0aa6b191c91cb4ab6a70b87 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Mon, 4 Oct 2021 17:03:58 +0300 Subject: [PATCH 04/10] added miliseconds to parsed datetime string --- .../integration_tests/abnormal_state.json | 3 +++ .../integration_tests/configured_catalog.json | 24 +++++++++++++++++++ .../some_expected_records.txt | 8 ------- .../source-zuora/source_zuora/source.py | 4 ++-- 4 files changed, 29 insertions(+), 10 deletions(-) delete mode 100644 airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json index 87549787d55d0..917064f681752 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/abnormal_state.json @@ -164,6 +164,9 @@ "workflow_definition": { "updateddate": "2025-10-01T12:36:16.36Z" }, + "workflow_linkage": { + "updateddate": "2025-10-01T12:36:16.459Z" + }, "workflow_task": { "updateddate": "2025-10-01T12:36:16.487Z" } diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json index c7d60803f4688..adc4debe05764 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/configured_catalog.json @@ -1304,6 +1304,30 @@ ], "destination_sync_mode": "append" }, + { + "stream": { + "name": "workflow_linkage", + "json_schema": {}, + "supported_sync_modes": [ + "full_refresh", + "incremental" + ], + "source_defined_cursor": true, + "default_cursor_field": [ + "updateddate" + ], + "source_defined_primary_key": [ + [ + "id" + ] + ] + }, + "sync_mode": "incremental", + "cursor_field": [ + "updateddate" + ], + "destination_sync_mode": "append" + }, { "stream": { "name": "workflow_task", diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt b/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt deleted file mode 100644 index 13cc5534687a1..0000000000000 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/some_expected_records.txt +++ /dev/null @@ -1,8 +0,0 @@ -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-09-30T15:07:12Z", "name": "It Smart Group", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:15:19Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30d6402a24c2", "balance": 197.02, "soldtoid": "8ac691a07c3006a6017c30d6405a24c3", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 15.5, "taxexemptexpirationdate": null, "totalinvoicebalance": 197.02, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30d6405a24c3", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000003", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198640000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T07:43:20Z", "name": "Boeing", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:21:23Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30dbcd302538", "balance": -450.0, "soldtoid": "8ac691a07c3006a6017c30dbcd552539", "unappliedbalance": 450.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 0.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30dbcd552539", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000004", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": null, "updateddate": "2021-09-29T09:24:20Z", "name": "Biolife Grup", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:24:20Z", "unappliedcreditmemoamount": null, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30de7fab256a", "balance": 0.0, "soldtoid": "8ac691a07c3006a6017c30de7fb1256b", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": null, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30de7fb1256b", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000005", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T07:01:43Z", "name": "Amazon.com", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:25:11Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30df48e12577", "balance": -20.0, "soldtoid": "8ac691a07c3006a6017c30df48e72578", "unappliedbalance": 20.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 327.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30df48e72578", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000006", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T08:01:53Z", "name": "Coca-Cola Company", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:26:21Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30e0582e258a", "balance": -1335.0, "soldtoid": "8ac691a07c3006a6017c30e0583a258b", "unappliedbalance": 1335.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 0.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30e0583a258b", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000007", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": null, "updateddate": "2021-09-29T09:27:26Z", "name": "CarMax", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:27:26Z", "unappliedcreditmemoamount": null, "taxcompanycode": null, "id": "8ac691a07c3006a6017c30e1578925a4", "balance": 0.0, "soldtoid": "8ac691a07c3006a6017c30e157ac25a5", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": null, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691a07c3006a6017c30e157ac25a5", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": null, "accountnumber": "A00000008", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 16.0, "updateddate": "2021-10-01T12:27:37Z", "name": "Coca-Cola Company", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:28:35Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac691da7c3006a5017c30e2659326a5", "balance": 16.0, "soldtoid": "8ac691da7c3006a5017c30e265c026a6", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 475.5, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac691da7c3006a5017c30e265c026a6", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000009", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} -{"stream": "account", "data": {"taxexempteffectivedate": null, "invoicetemplateid": null, "totaldebitmemobalance": 0.0, "updateddate": "2021-10-01T08:18:02Z", "name": "Demaco", "createdbyid": "8ac680067bd58b79017be1b0558e7b36", "taxexemptissuingjurisdiction": null, "currency": "USD", "taxexemptcertificateid": null, "crmid": "", "defaultpaymentmethodid": null, "status": "Active", "creditmemotemplateid": null, "debitmemotemplateid": null, "communicationprofileid": "8ac681e77bd58b6f017bddba377c3b26", "invoicedeliveryprefsemail": false, "bcdsettingoption": "ManualSet", "createddate": "2021-09-29T09:29:39Z", "unappliedcreditmemoamount": 0.0, "taxcompanycode": null, "id": "8ac680067c2ff49d017c30e35f6d2849", "balance": 0.0, "soldtoid": "8ac680067c2ff49d017c30e35f7d284a", "unappliedbalance": 0.0, "invoicedeliveryprefsprint": false, "sequencesetid": null, "additionalemailaddresses": "", "mrr": 84.0, "taxexemptexpirationdate": null, "totalinvoicebalance": 0.0, "taxexemptentityusecode": null, "batch": "Batch1", "paymentgateway": null, "billcycleday": 1, "billtoid": "8ac680067c2ff49d017c30e35f7d284a", "notes": "", "vatid": null, "parentid": null, "purchaseordernumber": "", "updatedbyid": "8ac680067bd58b79017be1b0558e7b36", "creditbalance": 0.0, "autopay": false, "customerservicerepname": "", "paymentterm": "Net 30", "lastinvoicedate": "2021-12-23", "accountnumber": "A00000010", "taxexemptstatus": null, "taxexemptcertificatetype": null, "salesrepname": "", "taxexemptdescription": null, "allowinvoiceedit": false}, "emitted_at": 1633198643000} diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py index efc1ae9c891bc..17068d1a80a93 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py @@ -160,9 +160,9 @@ def to_datetime_str(date: datetime) -> str: """ Custom method. Returns the formated datetime string in a way Zuora API endpoint recognises it as timestamp. - :: Output example: '2021-07-15 07:45:55 -07:00' FROMAT : "%Y-%m-%d %H:%M:%S %Z" + :: Output example: '2021-07-15 07:45:55 -07:00' FROMAT : "%Y-%m-%d %H:%M:%S.%f %Z" """ - return date.strftime("%Y-%m-%d %H:%M:%S %Z") + return date.strftime("%Y-%m-%d %H:%M:%S.%f %Z") def get_cursor_from_schema(self, schema: Dict) -> str: """ From 39d9c96d5c336b2977a240bf8f38567ce6d507f8 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Mon, 4 Oct 2021 17:33:43 +0300 Subject: [PATCH 05/10] removed expected_records test --- .../connectors/source-zuora/acceptance-test-config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml b/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml index e9a1ffe8c0976..eb3614e19c670 100644 --- a/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-zuora/acceptance-test-config.yml @@ -15,8 +15,6 @@ tests: basic_read: - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/configured_catalog.json" - expect_records: - path: "integration_tests/some_expected_records.txt" timeout_seconds: 3600 full_refresh: - config_path: "secrets/config.json" From 7a99d52fc6210be30c3fb1cea6c91d575fbfa7d5 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 5 Oct 2021 14:48:20 +0300 Subject: [PATCH 06/10] added excluded streams + integration test for this --- .../integration_tests/integration_test.py | 23 +++++++++++++++++++ .../source-zuora/source_zuora/source.py | 14 ++++++----- .../source_zuora/zuora_excluded_streams.py | 16 +++++++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 airbyte-integrations/connectors/source-zuora/source_zuora/zuora_excluded_streams.py diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py b/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py index 184b6761ea612..885c4a21b5bc5 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/integration_test.py @@ -6,7 +6,9 @@ from typing import Any, Dict, Mapping import pendulum +from airbyte_cdk import AirbyteLogger from source_zuora.source import ( + SourceZuora, ZuoraDescribeObject, ZuoraGetJobResult, ZuoraJobStatusCheck, @@ -16,6 +18,7 @@ ) from source_zuora.zuora_auth import ZuoraAuthenticator from source_zuora.zuora_endpoint import get_url_base +from source_zuora.zuora_excluded_streams import ZUORA_EXCLUDED_STREAMS def get_config(config_path: str) -> Mapping[str, Any]: @@ -92,6 +95,13 @@ def _prepare_date_slice(self): test_date_slice = {"start_date": start_date, "end_date": end_date} return test_date_slice + def test_zuora_connection(self): + """ + Test checks the connection to the Zuora API. + """ + connection = SourceZuora.check_connection(self, logger=AirbyteLogger, config=self.config) + assert connection == (True, None) + def test_list_all_zuora_objects(self): """ Test retrieves all the objects (streams) available from Zuora Account and checks if test_stream is in the list. @@ -99,6 +109,19 @@ def test_list_all_zuora_objects(self): zuora_objects_list = ZuoraListObjects(self.config).read_records(sync_mode=None) assert self.test_stream in zuora_objects_list + def test_excluded_streams_are_not_in_the_list(self): + """ + Test retrieves all the objects (streams) available from Zuora Account and checks if excluded streams are not in the list. + """ + zuora_streams_list = SourceZuora.streams(self, config=self.config) + # extract stream names from auto-generated stream class + generated_stream_class_names = [] + for stream in zuora_streams_list: + generated_stream_class_names.append(stream.__class__.__name__) + # check if excluded streams are not in the final list of stream classes + for excluded_stream in ZUORA_EXCLUDED_STREAMS: + assert False if excluded_stream in generated_stream_class_names else True + def test_get_json_schema(self): """ Test of getting schema from Zuora endpoint, check converted JsonSchema Types are correct diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py index 17068d1a80a93..671517789bd82 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py @@ -23,6 +23,7 @@ ZOQLQueryFieldCannotResolveAltCursor, ZOQLQueryFieldCannotResolveCursor, ) +from .zuora_excluded_streams import ZUORA_EXCLUDED_STREAMS class ZuoraStream(HttpStream, ABC): @@ -515,6 +516,7 @@ def streams(self, config: Mapping[str, Any]) -> List[ZuoraStream]: Mapping a input config of the user input configuration as defined in the connector spec. Defining streams to run by building stream classes dynamically. """ + # Define the endpoint from user's config url_base = get_url_base(config["tenant_endpoint"]) @@ -535,10 +537,10 @@ def streams(self, config: Mapping[str, Any]) -> List[ZuoraStream]: streams: List[ZuoraStream] = [] for stream_name in zuora_stream_names: - # construct ZuoraReadStreams sub-class for each stream_name - stream_class = type(stream_name, (ZuoraObjectsBase,), {}) - # instancetiate a stream with config - stream_instance = stream_class(config) - streams.append(stream_instance) - + if stream_name not in ZUORA_EXCLUDED_STREAMS: + # construct ZuoraReadStreams sub-class for each stream_name + stream_class = type(stream_name, (ZuoraObjectsBase,), {}) + # instancetiate a stream with config + stream_instance = stream_class(config) + streams.append(stream_instance) return streams diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_excluded_streams.py b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_excluded_streams.py new file mode 100644 index 0000000000000..0b0a5fc4a938b --- /dev/null +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/zuora_excluded_streams.py @@ -0,0 +1,16 @@ +# +# Copyright (c) 2021 Airbyte, Inc., all rights reserved. +# + + +from typing import List + +""" +This list holds the Zuora Object names (API object names) that could not be processed or +plays the service role for other objects and doesn't hold the actual data, while being called using API call. +Extend this list if needed. +""" + +ZUORA_EXCLUDED_STREAMS: List = [ + "aggregatedataqueryslowdata", +] From 0c3561c0320c543420a19a0249e179ca9ba5e04a Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 5 Oct 2021 21:04:45 +0300 Subject: [PATCH 07/10] fixed full_refresh stream edge cases, removed updating of state from full_refresh streams --- .../connectors/source-zuora/source_zuora/source.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py index 671517789bd82..d8cdfab3abf66 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py @@ -200,15 +200,16 @@ def as_airbyte_stream(self) -> AirbyteStream: else: # When there is no cursor available in the stream, we do Full-Refresh only. stream.supported_sync_modes = [SyncMode.full_refresh] - stream.source_defined_cursor = None - stream.default_cursor_field = None + stream.source_defined_cursor = True # default CDK for full-refresh + stream.default_cursor_field = [] # default CDK for full-refresh return stream def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: """ Update the state value, default CDK method. """ - return {self.cursor_field: max(latest_record.get(self.cursor_field, ""), current_stream_state.get(self.cursor_field, ""))} + updated_state = max(latest_record.get(self.cursor_field, ""), current_stream_state.get(self.cursor_field, "")) + return {self.cursor_field: updated_state} if updated_state else {} def query(self, stream_name: str, cursor_field: str = None, date_slice: Dict = None, full_object: bool = False) -> str: """ From 58b37444dbd8161a087fe6dc772eb5f4d52ab36b Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 5 Oct 2021 21:06:43 +0300 Subject: [PATCH 08/10] updated after review --- .../connectors/source-zuora/source_zuora/spec.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json b/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json index 4751dfeb4a973..06f70944f816f 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/spec.json @@ -27,7 +27,9 @@ 200, 364 ], - "default": 90 + "default": 90, + "minimum": 30, + "maximum": 364 }, "client_id": { "type": "string", From f175372008c2eeec297c078af69ccf45005b67b0 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Wed, 6 Oct 2021 11:11:40 +0300 Subject: [PATCH 09/10] fixed invalid config validation --- .../source-zuora/integration_tests/invalid_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json b/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json index d49a313c3b0a0..6be07bb4721e6 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/invalid_config.json @@ -1,6 +1,6 @@ { "start_date": "2020-01-01", - "window_in_days": 0, + "window_in_days": 30, "client_id": "some_client_id", "client_secret": "some_client_secret", "tenant_endpoint": "US Cloud API Sandbox" From f88df8c014a9fef2c74840e811d7b4716f7d6efc Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Wed, 6 Oct 2021 12:15:30 +0300 Subject: [PATCH 10/10] formated, added environements to documentation .md --- .../source-zuora/source_zuora/source.py | 4 +-- docs/integrations/sources/zuora.md | 27 +++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py index d8cdfab3abf66..2dcdb4798629e 100644 --- a/airbyte-integrations/connectors/source-zuora/source_zuora/source.py +++ b/airbyte-integrations/connectors/source-zuora/source_zuora/source.py @@ -200,8 +200,8 @@ def as_airbyte_stream(self) -> AirbyteStream: else: # When there is no cursor available in the stream, we do Full-Refresh only. stream.supported_sync_modes = [SyncMode.full_refresh] - stream.source_defined_cursor = True # default CDK for full-refresh - stream.default_cursor_field = [] # default CDK for full-refresh + stream.source_defined_cursor = True # default CDK for full-refresh + stream.default_cursor_field = [] # default CDK for full-refresh return stream def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: diff --git a/docs/integrations/sources/zuora.md b/docs/integrations/sources/zuora.md index 39d1ee0673646..464908c78798c 100644 --- a/docs/integrations/sources/zuora.md +++ b/docs/integrations/sources/zuora.md @@ -28,6 +28,9 @@ For details refer to the [Availability of Data Source Objects](https://knowledge | Integration Type | Airbyte Type | Notes | | :--- | :--- | :--- | | `decimal(22,9)` | `number` | float number | +| `decimal` | `number` | float number | +| `float` | `number` | float number | +| `double` | `number` | float number | | `integer` | `number` | | | `int` | `number` | | | `bigint` | `number` | | @@ -64,8 +67,28 @@ Any other data type not listed in the table above will be treated as `string`. ## Supported Environments for Zuora | Environment | Supported?\(Yes/No\) | Notes | | :--- | :--- | :--- | -| Production | Yes | Default setting for the connector| -| Sandbox | Yes | Enable the `is_sandbox` toggle inside connector settings | +| Production | Yes | Select from exising options while setup| +| Sandbox | Yes | Select from exising options while setup | + +## List of Supported Environments for Zuora +### Production +| Environment | Endpoint | +| :--- | :--- | +| US Production | https://rest.zuora.com | +| US Cloud Production | https://rest.na.zuora.com | +| EU Production | https://rest.eu.zuora.com | +### Sandbox +| Environment | Endpoint | +| :--- | :--- | +| US API Sandbox | https://rest.apisandbox.zuora.com | +| US Cloud API Sandbox | https://rest.sandbox.na.zuora.com | +| US Central Sandbox | https://rest.test.zuora.com | +| EU API Sandbox | https://rest.sandbox.eu.zuora.com | +| EU Central Sandbox | https://rest.test.eu.zuora.com | +### Other +| Environment | Endpoint | +| :--- | :--- | +| US Performance Test | https://rest.pt1.zuora.com | For more information about available environments, please visit [this page](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/D_Zuora_Environments)