diff --git a/airbyte-integrations/connectors/source-kyriba/Dockerfile b/airbyte-integrations/connectors/source-kyriba/Dockerfile
deleted file mode 100644
index cf89dabee191..000000000000
--- a/airbyte-integrations/connectors/source-kyriba/Dockerfile
+++ /dev/null
@@ -1,38 +0,0 @@
-FROM python:3.7.11-alpine3.14 as base
-
-# 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 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 source_kyriba ./source_kyriba
-
-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-kyriba
diff --git a/airbyte-integrations/connectors/source-kyriba/README.md b/airbyte-integrations/connectors/source-kyriba/README.md
index 5fc9f63ccd96..ba9253537574 100644
--- a/airbyte-integrations/connectors/source-kyriba/README.md
+++ b/airbyte-integrations/connectors/source-kyriba/README.md
@@ -8,7 +8,7 @@ For information about how to use this connector within Airbyte, see [the documen
### Prerequisites
**To iterate on this connector, make sure to complete this prerequisites section.**
-#### Minimum Python version required `= 3.7.0`
+#### Minimum Python version required `= 3.10.0`
#### Build & Activate Virtual Environment and install dependencies
From this connector directory, create a virtual environment:
@@ -50,19 +50,70 @@ python main.py read --config secrets/config.json --catalog integration_tests/con
### Locally running the connector docker image
-#### Build
-**Via [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md) (recommended):**
+
+
+#### Use `airbyte-ci` to build your connector
+The Airbyte way of building this connector is to use our `airbyte-ci` tool.
+You can follow install instructions [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md#L1).
+Then running the following command will build your connector:
+
```bash
-airbyte-ci connectors --name=source-kyriba build
+airbyte-ci connectors --name source-kyriba build
+```
+Once the command is done, you will find your connector image in your local docker registry: `airbyte/source-kyriba:dev`.
+
+##### Customizing our build process
+When contributing on our connector you might need to customize the build process to add a system dependency or set an env var.
+You can customize our build process by adding a `build_customization.py` module to your connector.
+This module should contain a `pre_connector_install` and `post_connector_install` async function that will mutate the base image and the connector container respectively.
+It will be imported at runtime by our build process and the functions will be called if they exist.
+
+Here is an example of a `build_customization.py` module:
+```python
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ # Feel free to check the dagger documentation for more information on the Container object and its methods.
+ # https://dagger-io.readthedocs.io/en/sdk-python-v0.6.4/
+ from dagger import Container
+
+
+async def pre_connector_install(base_image_container: Container) -> Container:
+ return await base_image_container.with_env_variable("MY_PRE_BUILD_ENV_VAR", "my_pre_build_env_var_value")
+
+async def post_connector_install(connector_container: Container) -> Container:
+ return await connector_container.with_env_variable("MY_POST_BUILD_ENV_VAR", "my_post_build_env_var_value")
```
-An image will be built with the tag `airbyte/source-kyriba:dev`.
+#### Build your own connector image
+This connector is built using our dynamic built process in `airbyte-ci`.
+The base image used to build it is defined within the metadata.yaml file under the `connectorBuildOptions`.
+The build logic is defined using [Dagger](https://dagger.io/) [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/pipelines/builds/python_connectors.py).
+It does not rely on a Dockerfile.
+
+If you would like to patch our connector and build your own a simple approach would be to:
+
+1. Create your own Dockerfile based on the latest version of the connector image.
+```Dockerfile
+FROM airbyte/source-kyriba:latest
+
+COPY . ./airbyte/integration_code
+RUN pip install ./airbyte/integration_code
-**Via `docker build`:**
+# The entrypoint and default env vars are already set in the base image
+# ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
+# ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
+```
+Please use this as an example. This is not optimized.
+
+2. Build your image:
```bash
docker build -t airbyte/source-kyriba:dev .
+# Running the spec command against your patched connector
+docker run airbyte/source-kyriba:dev spec
```
-
#### Run
Then run any of the connector commands as follows:
```
@@ -97,4 +148,3 @@ You've checked out the repo, implemented a million dollar feature, and you're re
5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention).
6. Pat yourself on the back for being an awesome contributor.
7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
-
diff --git a/airbyte-integrations/connectors/source-kyriba/acceptance-test-config.yml b/airbyte-integrations/connectors/source-kyriba/acceptance-test-config.yml
index 2c1a1e1d9718..fa8d8c88fc81 100644
--- a/airbyte-integrations/connectors/source-kyriba/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-kyriba/acceptance-test-config.yml
@@ -1,30 +1,38 @@
# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
# for more information about how to configure these tests
connector_image: airbyte/source-kyriba:dev
-tests:
+acceptance_tests:
spec:
- - spec_path: "source_kyriba/spec.json"
+ tests:
+ - spec_path: "source_kyriba/spec.json"
connection:
- - config_path: "secrets/config.json"
- status: "succeed"
- - config_path: "integration_tests/invalid_config.json"
- status: "failed"
+ tests:
+ - config_path: "secrets/config.json"
+ status: "succeed"
+ - config_path: "integration_tests/invalid_config.json"
+ status: "failed"
discovery:
- - config_path: "secrets/config.json"
+ tests:
+ - config_path: "secrets/config.json"
basic_read:
- - config_path: "secrets/config.json"
- configured_catalog_path: "integration_tests/configured_catalog.json"
- empty_streams: []
- # TODO uncomment this block to specify that the tests should assert the connector outputs the records provided in the input file a file
- # expect_records:
- # path: "integration_tests/expected_records.jsonl"
- # extra_fields: no
- # exact_order: no
- # extra_records: yes
- incremental: # TODO if your connector does not implement incremental sync, remove this block
- - config_path: "secrets/config.json"
- configured_catalog_path: "integration_tests/configured_catalog.json"
- future_state_path: "integration_tests/abnormal_state.json"
+ tests:
+ - config_path: "secrets/config.json"
+ timeout_seconds: 1200
+ expect_records:
+ path: "integration_tests/expected_records.jsonl"
+ extra_fields: no
+ exact_order: no
+ extra_records: yes
+ fail_on_extra_columns: true
+ incremental:
+ tests:
+ - config_path: "secrets/config.json"
+ timeout_seconds: 2400
+ configured_catalog_path: "integration_tests/configured_catalog.json"
+ future_state:
+ future_state_path: "integration_tests/abnormal_state.json"
full_refresh:
- - config_path: "secrets/config.json"
- configured_catalog_path: "integration_tests/configured_catalog.json"
+ tests:
+ - config_path: "secrets/config.json"
+ timeout_seconds: 2400
+ configured_catalog_path: "integration_tests/configured_catalog.json"
diff --git a/airbyte-integrations/connectors/source-kyriba/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-kyriba/integration_tests/expected_records.jsonl
new file mode 100644
index 000000000000..404df43027ff
--- /dev/null
+++ b/airbyte-integrations/connectors/source-kyriba/integration_tests/expected_records.jsonl
@@ -0,0 +1,30 @@
+{"stream": "accounts", "data": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "description": "Company 012 Citi AUD a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "a8ab2150-a094-4b1a-b7a0-e21749e7b60c", "code": "AUD"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479986}
+{"stream": "accounts", "data": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "description": "Company 012 Citi CHF a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "3def955d-cee5-441c-81d2-514c9acaec49", "code": "CHF"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": true, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": true, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479986}
+{"stream": "accounts", "data": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "description": "Company 012 Citi DKK a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "ede48ce3-991f-41fc-86ff-23f859efde58", "code": "DKK"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479987}
+{"stream": "accounts", "data": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "description": "Company 012 Citi GBP a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "b790622e-5fc7-4a05-aa4b-879c5a9613a6", "code": "GBP"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479987}
+{"stream": "accounts", "data": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "description": "Company 012 Citi HKD a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "4d0966be-c684-41b5-9782-a671391ef8b3", "code": "HKD"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479988}
+{"stream": "cash_flows", "data": {"uuid": "03740dec-d26b-4860-9e94-c3ff812a01cd", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 146", "origin": "CA/COPY/24 01 010000057", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL000949", "userZone4": "20210420 05 48 51 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495950}
+{"stream": "cash_flows", "data": {"uuid": "f74f0cef-4555-47f7-9d30-324666600870", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 207", "origin": "CA/COPY/24 01 010000096", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL001010", "userZone4": "20210420 05 48 55 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495951}
+{"stream": "cash_flows", "data": {"uuid": "e82cd190-a922-4f79-8bf2-7818cc0e8d55", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 155", "origin": "CA/COPY/24 01 010000046", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL000958", "userZone4": "20210420 05 48 51 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495951}
+{"stream": "cash_flows", "data": {"uuid": "18bacf36-f8fd-459d-bd8b-f62277ec7ba1", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 145", "origin": "CA/COPY/24 01 010000079", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL000948", "userZone4": "20210420 05 48 51 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495951}
+{"stream": "cash_flows", "data": {"uuid": "e2f0a797-9233-4888-a65e-933bb7abb30b", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 243", "origin": "CA/COPY/24 01 010000137", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL001046", "userZone4": "20210420 05 48 58 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495952}
+{"stream": "bank_balances_eod", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "AUD"}}, "emitted_at": 1706211527093}
+{"stream": "bank_balances_eod", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "CHF"}}, "emitted_at": 1706211527234}
+{"stream": "bank_balances_eod", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "DKK"}}, "emitted_at": 1706211527377}
+{"stream": "bank_balances_eod", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "GBP"}}, "emitted_at": 1706211527515}
+{"stream": "bank_balances_eod", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "HKD"}}, "emitted_at": 1706211527741}
+{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "AUD"}}, "emitted_at": 1706211626413}
+{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "CHF"}}, "emitted_at": 1706211626557}
+{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "DKK"}}, "emitted_at": 1706211626702}
+{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "GBP"}}, "emitted_at": 1706211626891}
+{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "HKD"}}, "emitted_at": 1706211627036}
+{"stream": "cash_balances_eod", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "AUD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "AUD"}]}, "emitted_at": 1706211790985}
+{"stream": "cash_balances_eod", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "CHF"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "CHF"}]}, "emitted_at": 1706211791131}
+{"stream": "cash_balances_eod", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "DKK"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "DKK"}]}, "emitted_at": 1706211791278}
+{"stream": "cash_balances_eod", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "GBP"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "GBP"}]}, "emitted_at": 1706211791422}
+{"stream": "cash_balances_eod", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "HKD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "HKD"}]}, "emitted_at": 1706211791566}
+{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "AUD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "AUD"}]}, "emitted_at": 1706211865338}
+{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "CHF"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "CHF"}]}, "emitted_at": 1706211865475}
+{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "DKK"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "DKK"}]}, "emitted_at": 1706211865614}
+{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "GBP"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "GBP"}]}, "emitted_at": 1706211865762}
+{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "HKD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "HKD"}]}, "emitted_at": 1706211865899}
diff --git a/airbyte-integrations/connectors/source-kyriba/metadata.yaml b/airbyte-integrations/connectors/source-kyriba/metadata.yaml
index bed9c52b8527..49bfb45ac7e3 100644
--- a/airbyte-integrations/connectors/source-kyriba/metadata.yaml
+++ b/airbyte-integrations/connectors/source-kyriba/metadata.yaml
@@ -1,9 +1,15 @@
data:
+ ab_internal:
+ ql: 100
+ sl: 100
+ connectorBuildOptions:
+ baseImage: docker.io/airbyte/python-connector-base:1.2.0@sha256:c22a9d97464b69d6ef01898edf3f8612dc11614f05a84984451dde195f337db9
connectorSubtype: api
connectorType: source
definitionId: 547dc08e-ab51-421d-953b-8f3745201a8c
- dockerImageTag: 0.1.0
+ dockerImageTag: 0.1.1
dockerRepository: airbyte/source-kyriba
+ documentationUrl: https://docs.airbyte.com/integrations/sources/kyriba
githubIssueLabel: source-kyriba
icon: kyriba.svg
license: MIT
@@ -18,11 +24,7 @@ data:
oss:
enabled: true
releaseStage: alpha
- documentationUrl: https://docs.airbyte.com/integrations/sources/kyriba
+ supportLevel: community
tags:
- language:python
- ab_internal:
- sl: 100
- ql: 100
- supportLevel: community
metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-kyriba/sample_files/configured_catalog.json b/airbyte-integrations/connectors/source-kyriba/sample_files/configured_catalog.json
deleted file mode 100644
index 4375ab4a8946..000000000000
--- a/airbyte-integrations/connectors/source-kyriba/sample_files/configured_catalog.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "streams": [
- {
- "stream": {
- "name": "bank_balances_intraday",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "cash_balances_intraday",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "accounts",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "source_defined_primary_key": [["uuid"], ["code"]],
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "cash_flows",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh", "incremental"],
- "source_defined_cursor": true,
- "default_cursor_field": ["updateDateTime"]
- },
- "sync_mode": "incremental",
- "source_defined_primary_key": [["uuid"]],
- "destination_sync_mode": "append"
- },
- {
- "stream": {
- "name": "cash_balances_eod",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "bank_balances_eod",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh", "incremental"],
- "source_defined_cursor": true,
- "default_cursor_field": ["updateDateTime"]
- },
- "sync_mode": "incremental",
- "destination_sync_mode": "append"
- },
- {
- "stream": {
- "name": "cash_balances_eod",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh", "incremental"],
- "source_defined_cursor": true,
- "default_cursor_field": ["date"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "bank_balances_eod",
- "json_schema": {
- "$schema": "http://json-schema.org/draft-04/schema"
- },
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- }
- ]
-}
diff --git a/airbyte-integrations/connectors/source-kyriba/setup.py b/airbyte-integrations/connectors/source-kyriba/setup.py
index fe8f94c888d0..541552d2fbf1 100644
--- a/airbyte-integrations/connectors/source-kyriba/setup.py
+++ b/airbyte-integrations/connectors/source-kyriba/setup.py
@@ -6,7 +6,7 @@
from setuptools import find_packages, setup
MAIN_REQUIREMENTS = [
- "airbyte-cdk~=0.1",
+ "airbyte-cdk",
]
TEST_REQUIREMENTS = [
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/accounts.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/accounts.json
index 9eaf67af886a..617951e2767d 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/accounts.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/accounts.json
@@ -1,461 +1,270 @@
{
- "type": "object",
- "required": [
- "bank",
- "branch",
- "calendar",
- "code",
- "company",
- "countryCode",
- "currency",
- "uuid"
- ],
+ "type": ["object", "null"],
+ "title": "AccountSearchModel",
+ "description": "Account search",
+ "$schema": "http://json-schema.org/schema#",
"properties": {
"accountCategory1": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory2": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory3": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory4": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory5": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory6": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory7": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory8": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory9": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountCategory10": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"accountAvailableForPayments": {
- "type": "boolean",
- "example": true,
- "description": "Flag to show if account is available for payments (true) or no (false)."
+ "type": ["boolean", "null"]
},
"accountType": {
- "type": "string",
- "example": "BANK_ACCOUNT",
- "description": "Account type",
- "enum": [
- "BANK_ACCOUNT",
- "INTERCOMPANY_ACCOUNT",
- "OTHER_ACCOUNT",
- "SHARED_ACCOUNT"
- ]
+ "type": ["string", "null"]
},
"activeStatus": {
- "type": "string",
- "example": "OPENED",
- "description": "Account status.",
- "enum": ["OPENED", "CLOSED"]
+ "type": ["string", "null"]
},
"attachments": {
- "type": "boolean",
- "description": "Attachments"
+ "type": ["boolean", "null"]
},
"banCode": {
- "type": "string",
- "description": "Account BAN code"
+ "type": ["string", "null"]
},
"bank": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["string", "null"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["string", "null"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"branch": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["string", "null"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["string", "null"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"branchDescription": {
- "type": ["null", "string"],
- "description": "Account branch description"
+ "type": ["null", "string"]
},
"calendar": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["string", "null"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["string", "null"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"closedAccount": {
- "type": "boolean",
- "example": false,
- "description": "Is account closed. Default value false"
+ "type": ["boolean", "null"]
},
"closingDate": {
- "type": ["null", "string"],
- "format": "date",
- "example": "2020-06-23",
- "description": "Closing date"
+ "type": ["null", "string"]
},
"code": {
- "type": "string",
- "example": "COMPANYCODE",
- "description": "Account code."
+ "type": ["string", "null"]
},
"company": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["string", "null"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["string", "null"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"countryCode": {
- "type": "string",
- "description": "Account country code"
+ "type": ["string", "null"]
},
"creationDate": {
- "type": "string",
- "format": "date",
- "example": "2020-06-21",
- "description": "Creation date"
+ "type": ["string", "null"]
},
"currency": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["string", "null"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["string", "null"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"defaultGroup": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"description": {
- "type": ["null", "string"],
- "example": "Some description",
- "description": "Account description."
+ "type": ["null", "string"]
},
"description2": {
- "type": ["null", "string"],
- "example": "Some description2",
- "description": "Account description2."
+ "type": ["null", "string"]
},
"documents": {
- "type": "boolean",
- "description": "Documents."
+ "type": ["boolean", "null"]
},
"glAccount": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": ["null", "string"],
- "example": "CODE_ID",
- "description": "Code identifier."
+ "type": ["null", "string"]
},
"uuid": {
- "type": ["null", "string"],
- "format": "uuid",
- "example": "123e4567-e89b-12d3-a456-426655440001",
- "description": "UUID identifier. Has priority over the code"
+ "type": ["null", "string"]
}
- },
- "title": "ReferenceModel",
- "description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
+ }
},
"ibanCode": {
- "type": ["null", "string"],
- "description": "Account IBAN code"
+ "type": ["null", "string"]
},
"internalAccountCode": {
- "type": ["null", "string"],
- "description": "Internal account code"
+ "type": ["null", "string"]
},
"marker1": {
- "type": "boolean",
- "example": false,
- "description": "Marker1."
+ "type": ["boolean", "null"]
},
"marker2": {
- "type": "boolean",
- "example": false,
- "description": "Marker2."
+ "type": ["boolean", "null"]
},
"marker3": {
- "type": "boolean",
- "example": false,
- "description": "Marker3."
+ "type": ["boolean", "null"]
},
"signatoryUsers": {
- "type": "integer",
- "format": "int64",
- "description": "Signatory users."
+ "type": ["integer", "null"]
},
"statementIdentifier": {
- "type": ["null", "string"],
- "description": "Account statement identifier"
+ "type": ["null", "string"]
},
"status": {
- "type": "string",
- "example": "CREATION_TO_VALIDATE",
- "description": "Account status",
- "enum": [
- "STANDARD",
- "CREATION_TO_VALIDATE",
- "CREATION_VALIDATED",
- "AVAILABLE_FOR_BANK_INTEGRATION",
- "CLOSURE_REQUESTED",
- "CLOSURE_VALIDATE",
- "BANK_CONTRACT_TO_INACTIVATE",
- "CLOSED"
- ]
+ "type": ["string", "null"]
},
"updateDate": {
- "type": ["null", "string"],
- "format": "date",
- "example": "2020-06-22",
- "description": "Update date"
+ "type": ["null", "string"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "description": "UUID of the account."
+ "type": ["string", "null"]
},
"zbaIdentifier": {
- "type": ["null", "string"],
- "description": "Account ZBA identifier"
+ "type": ["null", "string"]
}
- },
- "title": "AccountSearchModel",
- "description": "Account search",
- "$schema": "http://json-schema.org/schema#"
+ }
}
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_eod.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_eod.json
index 06dbe17767f1..f17fe8e24f47 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_eod.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_eod.json
@@ -1,63 +1,36 @@
{
"type": "object",
- "required": ["account", "bankBalance"],
"properties": {
"account": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "ACCOUNT001",
- "description": "Code that represents the account.",
- "minLength": 1,
- "maxLength": 12
+ "type": ["string", "null"]
},
"statementIdentifier": {
- "type": ["null", "string"],
- "example": "Statement identifier",
- "description": "Account Statement Identifier of the account.",
- "minLength": 0,
- "maxLength": 50
+ "type": ["null", "string"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "description": "Unique internal identifier that represents the account."
+ "type": ["string", "null"]
}
- },
- "title": "BK-BankAccountModel"
+ }
},
"bankBalance": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"amount": {
- "type": "number",
- "format": "double",
- "example": 1.123,
- "description": "End of day balance value."
+ "type": ["number", "null"]
},
"balanceDate": {
- "type": "string",
- "format": "date",
- "example": "2019-11-11",
- "description": "Date of the end of day balance."
+ "type": ["string", "null"]
},
"currencyCode": {
- "type": "string",
- "example": "EUR",
- "description": "Account currency code.",
- "minLength": 1,
- "maxLength": 3
+ "type": ["string", "null"]
},
"lastKnownBalanceDate": {
- "type": ["null", "string"],
- "format": "date",
- "example": "2019-11-11",
- "description": "Date of last known balance within the last 365 days."
+ "type": ["null", "string"]
}
- },
- "title": "BK-BalanceModel"
+ }
}
},
"title": "BK-BankStatementBalanceModel",
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_intraday.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_intraday.json
index 446b0322f8e8..fe05c9ecf299 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_intraday.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/bank_balances_intraday.json
@@ -1,54 +1,34 @@
{
"type": "object",
- "required": ["account", "bankBalance"],
"properties": {
"account": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "ACCOUNT001",
- "description": "Code that represents the account.",
- "minLength": 1,
- "maxLength": 12
+ "type": ["string", "null"]
},
"statementIdentifier": {
- "type": ["null", "string"],
- "example": "Statement identifier",
- "description": "Account Statement Identifier of the account.",
- "minLength": 0,
- "maxLength": 50
+ "type": ["null", "string"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "description": "Unique internal identifier that represents the account."
+ "type": ["string", "null"]
}
- },
- "title": "BK-BankAccountModel"
+ }
},
"bankBalance": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"amount": {
- "type": "number",
- "format": "double",
- "example": 1.123,
- "description": "End of day balance value."
+ "type": ["number", "null"]
},
"balanceDate": {
- "type": "string",
- "format": "date",
- "example": "2019-11-11",
- "description": "Date of the end of day balance."
+ "type": ["string", "null"]
},
"currencyCode": {
- "type": "string",
- "example": "EUR",
- "description": "Account currency code.",
- "minLength": 1,
- "maxLength": 3
+ "type": ["string", "null"]
+ },
+ "lastKnownBalanceDate": {
+ "type": ["string", "null"]
}
},
"title": "BK-BalanceModel"
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_eod.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_eod.json
index b311f38ce9df..809cc9429d0e 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_eod.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_eod.json
@@ -2,98 +2,60 @@
"type": "object",
"properties": {
"account": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "ACCOUNT001",
- "description": "Code that represents the account.",
- "minLength": 1,
- "maxLength": 12
+ "type": ["string", "null"]
},
"statementIdentifier": {
- "type": ["null", "string"],
- "example": "Statement identifier",
- "description": "Account Statement Identifier of the account.",
- "minLength": 0,
- "maxLength": 50
+ "type": ["null", "string"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "description": "Unique internal identifier that represents the account."
+ "type": ["string", "null"]
}
- },
- "title": "BK-BankAccountModel"
+ }
},
"cashBalance": {
- "type": "array",
- "description": "Cash balance.",
+ "type": ["array", "null"],
"items": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"amount": {
- "type": "number",
- "format": "double",
- "example": -50000.0,
- "description": "Cash balance amount of the selected date, Amount can be positive and negative."
+ "type": ["number", "null"]
},
"balanceDate": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"date": {
- "type": "string",
- "format": "date",
- "example": "2020-05-25",
- "description": "The date based on which the cash balance is calculated."
+ "type": ["string", "null"]
},
"dateType": {
- "type": "string",
- "example": "TRANSACTION",
- "description": "The date type based on which the cash balance is calculated.",
- "enum": ["TRANSACTION", "VALUE"]
+ "type": ["string", "null"]
}
- },
- "title": "BK-BalanceDateModel"
+ }
},
"currencyCode": {
- "type": "string",
- "example": "EUR",
- "description": "Currency code.",
- "minLength": 1,
- "maxLength": 3
+ "type": ["string", "null"]
}
- },
- "title": "BK-CashBalanceModel"
+ }
}
},
"cashFlowStatus": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"actual": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Actual to calculate the cash balance."
+ "type": ["boolean", "null"]
},
"confirmedForecasts": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Confirmed forecast to calculate the cash balance."
+ "type": ["boolean", "null"]
},
"estimatedForecasts": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Estimated forecast to calculate the cash balance."
+ "type": ["boolean", "null"]
},
"intraday": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Intraday to calculate the cash balance."
+ "type": ["boolean", "null"]
}
- },
- "title": "BK-CashFlowStatusModel",
- "description": "Cash flow status."
+ }
}
},
"title": "BK-AccountCashBalanceModel",
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_intraday.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_intraday.json
index b311f38ce9df..4ffbdf43f695 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_intraday.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_balances_intraday.json
@@ -2,98 +2,61 @@
"type": "object",
"properties": {
"account": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
- "example": "ACCOUNT001",
- "description": "Code that represents the account.",
- "minLength": 1,
- "maxLength": 12
+ "type": ["string", "null"]
},
"statementIdentifier": {
- "type": ["null", "string"],
- "example": "Statement identifier",
- "description": "Account Statement Identifier of the account.",
- "minLength": 0,
- "maxLength": 50
+ "type": ["null", "string"]
},
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "description": "Unique internal identifier that represents the account."
+ "type": ["string", "null"]
}
- },
- "title": "BK-BankAccountModel"
+ }
},
"cashBalance": {
- "type": "array",
+ "type": ["array", "null"],
"description": "Cash balance.",
"items": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"amount": {
- "type": "number",
- "format": "double",
- "example": -50000.0,
- "description": "Cash balance amount of the selected date, Amount can be positive and negative."
+ "type": ["number", "null"]
},
"balanceDate": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"date": {
- "type": "string",
- "format": "date",
- "example": "2020-05-25",
- "description": "The date based on which the cash balance is calculated."
+ "type": ["string", "null"]
},
"dateType": {
- "type": "string",
- "example": "TRANSACTION",
- "description": "The date type based on which the cash balance is calculated.",
- "enum": ["TRANSACTION", "VALUE"]
+ "type": ["string", "null"]
}
- },
- "title": "BK-BalanceDateModel"
+ }
},
"currencyCode": {
- "type": "string",
- "example": "EUR",
- "description": "Currency code.",
- "minLength": 1,
- "maxLength": 3
+ "type": ["string", "null"]
}
- },
- "title": "BK-CashBalanceModel"
+ }
}
},
"cashFlowStatus": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"actual": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Actual to calculate the cash balance."
+ "type": ["boolean", "null"]
},
"confirmedForecasts": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Confirmed forecast to calculate the cash balance."
+ "type": ["boolean", "null"]
},
"estimatedForecasts": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Estimated forecast to calculate the cash balance."
+ "type": ["boolean", "null"]
},
"intraday": {
- "type": "boolean",
- "example": false,
- "description": "Select the status Intraday to calculate the cash balance."
+ "type": ["boolean", "null"]
}
- },
- "title": "BK-CashFlowStatusModel",
- "description": "Cash flow status."
+ }
}
},
"title": "BK-AccountCashBalanceModel",
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_flows.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_flows.json
index a16b1e884e9e..68194b1ce435 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_flows.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/cash_flows.json
@@ -3,37 +3,21 @@
"required": ["uuid", "account", "flowAmount", "flowCode", "status"],
"properties": {
"uuid": {
- "type": "string",
- "format": "uuid",
- "example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "description": "UUID of the cash flow."
+ "type": ["string", "null"]
},
"transactionDate": {
- "type": "string",
- "format": "date",
- "example": "2021-04-01",
- "description": "Transaction date"
+ "type": ["string", "null"]
},
"valueDate": {
- "type": "string",
- "format": "date",
- "example": "2021-04-02",
- "description": "Value date"
+ "type": ["string", "null"]
},
"accountingDate": {
- "type": "string",
- "format": "date",
- "example": "2021-04-03",
- "description": "Accounting date"
+ "type": ["string", "null"]
},
"updateDateTime": {
- "type": "string",
- "format": "date-time",
- "example": "2020-01-02T13:04:35Z",
- "description": "Update date time"
+ "type": ["string", "null"]
},
"account": {
- "description": "Bank account",
"$ref": "_definitions.json#/definitions/ReferenceModel"
},
"flowCode": {
@@ -45,9 +29,7 @@
"$ref": "_definitions.json#/definitions/ReferenceModel"
},
"status": {
- "type": "string",
- "example": "CONFIRMED",
- "description": "Cash flow status"
+ "type": ["string", "null"]
},
"flowAmount": {
"description": "Flow amount",
@@ -58,43 +40,26 @@
"$ref": "_definitions.json#/definitions/AmountModel"
},
"description": {
- "type": ["null", "string"],
- "description": "Cash flow's description",
- "minLength": 0,
- "maxLength": 2500
+ "type": ["null", "string"]
},
"reference": {
- "type": ["null", "string"],
- "description": "Cash flow's reference",
- "minLength": 0,
- "maxLength": 250
+ "type": ["null", "string"]
},
"origin": {
- "type": "string",
- "description": "Cash flow's origin",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"]
},
"number": {
- "type": "integer",
- "format": "int32",
- "description": "Cash flow's number",
- "minimum": 0,
- "maximum": 250
+ "type": ["integer", "null"]
},
"glStatus": {
- "type": "string",
- "example": "BALANCED",
- "description": "Cash flow GL status"
+ "type": ["string", "null"]
},
"userZones": {
"description": "User zones of the cash flow",
"$ref": "_definitions.json#/definitions/UserZonesModel"
},
"actualMode": {
- "type": "string",
- "example": "Manual",
- "description": "Cash flow actual mode"
+ "type": ["string", "null"]
}
},
"title": "CashFlowSearchModel",
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/shared/_definitions.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/shared/_definitions.json
index f2c720540145..a7486dbe06e1 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/shared/_definitions.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/schemas/shared/_definitions.json
@@ -1,15 +1,14 @@
{
"definitions": {
"AggregatedGroupDto": {
- "type": "object",
- "required": ["aggregation"],
+ "type": ["object", "null"],
"properties": {
"entity": {
"description": "Entity",
"$ref": "#/definitions/ReferenceModel"
},
"date": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"description": "Date"
},
@@ -25,16 +24,15 @@
"title": "AggregatedGroupDto"
},
"AggregationDto": {
- "type": "object",
- "required": ["amount"],
+ "type": ["object", "null"],
"properties": {
"amount": {
- "type": "number",
+ "type": ["number", "null"],
"example": 10580.123,
"description": "Calculated aggregation amount of the cash flows expressed in conversion currency"
},
"count": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32",
"description": "Count of the aggregated cash flows."
}
@@ -42,39 +40,21 @@
"title": "AggregationDto"
},
"AggregationLevelDto": {
- "type": "object",
- "required": ["groupingCriterion", "groups", "level"],
+ "type": ["object", "null"],
"properties": {
"level": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32",
"example": 1,
- "description": "The level of the aggregation",
- "enum": [1, 2, 3]
+ "description": "The level of the aggregation"
},
"groupingCriterion": {
- "type": "string",
+ "type": ["string", "null"],
"example": "BANK",
- "description": "The grouping criterion for this level",
- "enum": [
- "ACCOUNT",
- "ACCOUNT_GROUP",
- "BANK",
- "BANK_GROUP",
- "COMPANY",
- "COMPANY_GROUP",
- "CURRENCY",
- "COUNTRY",
- "COUNTRY_GROUP",
- "FLOW_CODE",
- "BUDGET_CODE",
- "TRANSACTION_DATE",
- "VALUE_DATE",
- "ACCOUNTING_DATE"
- ]
+ "description": "The grouping criterion for this level"
},
"groups": {
- "type": "array",
+ "type": ["array", "null"],
"description": "List of aggregated groups",
"items": {
"$ref": "#/definitions/AggregatedGroupDto"
@@ -84,7 +64,7 @@
"title": "AggregationLevelDto"
},
"AmountModel": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"currency": {
"example": "USD",
@@ -92,19 +72,22 @@
"$ref": "#/definitions/ReferenceModel"
},
"amount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Amount value"
+ },
+ "signedAmount": {
+ "type": ["number", "null"]
}
},
"title": "AmountModel"
},
"AmountResponseDTO": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"amount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Amount"
@@ -118,28 +101,28 @@
"title": "AmountResponseDTO"
},
"CashAmountModel": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"accountAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Account amount"
},
"feeAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Fee amount"
},
"interestAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Interest amount"
},
"commissionAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Commission amount"
@@ -148,16 +131,7 @@
"title": "CashAmountModel"
},
"CashAmountResponseDTO": {
- "type": "object",
- "required": [
- "account",
- "accountAmount",
- "date",
- "flowAmount",
- "flowCode",
- "number",
- "status"
- ],
+ "type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -176,10 +150,8 @@
"$ref": "#/definitions/CashFlowDateModel"
},
"description": {
- "type": "string",
- "description": "Cash flow's description",
- "minLength": 0,
- "maxLength": 2500
+ "type": ["string", "null"],
+ "description": "Cash flow's description"
},
"flowAmount": {
"description": "Flow amount",
@@ -190,41 +162,33 @@
"$ref": "#/definitions/AmountResponseDTO"
},
"status": {
- "type": "string",
+ "type": ["string", "null"],
"example": "CONFIRMED",
- "description": "Cash flow status",
- "minLength": 0,
- "maxLength": 2500
+ "description": "Cash flow status"
},
"reference": {
- "type": "string",
- "description": "Cash flow's reference",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's reference"
},
"origin": {
- "type": "string",
- "description": "Cash flow's origin",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's origin"
},
"number": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32",
"description": "Cash flow's number"
},
"glStatus": {
- "type": "string",
- "description": "Cash flow's GL status",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's GL status"
},
"userZones": {
"description": "User zones of the cash flow",
"$ref": "#/definitions/UserZonesModel"
},
"actualMode": {
- "type": "string",
+ "type": ["string", "null"],
"example": "Manual",
"description": "Cash flow actual mode"
}
@@ -232,20 +196,18 @@
"title": "CashAmountResponseDTO"
},
"CashFlowAggregationFilteringDto": {
- "type": "object",
- "required": ["entityFilters"],
+ "type": ["object", "null"],
"properties": {
"entityFilters": {
- "type": "array",
+ "type": ["array", "null"],
"description": "The list of the filters by entities",
"items": {
"$ref": "#/definitions/EntityFilterDto"
}
},
"accountType": {
- "type": "string",
- "description": "The account type selected to filter cash flows",
- "enum": ["ALL", "BANK", "INTERCO"]
+ "type": ["string", "null"],
+ "description": "The account type selected to filter cash flows"
},
"period": {
"description": "The period used to filter cash flows",
@@ -260,132 +222,53 @@
"$ref": "#/definitions/ReferenceModel"
},
"origin": {
- "type": "string",
- "description": "Origin of a cash flow",
- "enum": [
- "BANK",
- "BANK_FLOAT",
- "BANK_INTRADAY",
- "BANK_SHARE",
- "CASH_FLOW",
- "CASH_INTEGRATION",
- "CASH_LAW",
- "CASH_COPY",
- "CASH_FEE",
- "CASH_INTEREST",
- "CASH_BALANCE",
- "CASH_SCENARIO",
- "CASH_SERIES",
- "BALANCING",
- "BORROWING",
- "FX",
- "PAYMENT",
- "PAYMENT_CAMT054",
- "PAYMENT_ERP",
- "PAYABLE_DRAFTS",
- "RECEIVABLE_DRAFTS"
- ]
+ "type": ["string", "null"],
+ "description": "Origin of a cash flow"
},
"description": {
- "type": "string",
- "description": "Description of the cash flow",
- "minLength": 0,
- "maxLength": 100
+ "type": ["string", "null"],
+ "description": "Description of the cash flow"
},
"reference": {
- "type": "string",
+ "type": ["string", "null"],
"example": "123-ABC",
- "description": "Reference of the cash flow",
- "minLength": 0,
- "maxLength": 50
+ "description": "Reference of the cash flow"
},
"status": {
- "type": "string",
- "description": "Status of a cash flow",
- "enum": ["ESTIMATED", "CONFIRMED", "ACTUAL", "INTRADAY"]
+ "type": ["string", "null"],
+ "description": "Status of a cash flow"
},
"actualMode": {
- "type": "string",
- "description": "Select the actual mode to filter the cash flows",
- "enum": ["ALL", "CASHREC", "MANUAL"]
+ "type": ["string", "null"],
+ "description": "Select the actual mode to filter the cash flows"
},
"glStatus": {
- "type": "string",
- "description": "GL status",
- "enum": ["EMPTY", "NOT_BALANCED", "NOT_SENT_TO_GL", "SENT_TO_GL"]
+ "type": ["string", "null"],
+ "description": "GL status"
}
},
"title": "CashFlowAggregationFilteringDto"
},
"CashFlowAggregationLevelsDto": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"level1": {
- "type": "string",
- "description": "The first level of aggregation by the grouping criterion",
- "enum": [
- "ACCOUNT",
- "ACCOUNT_GROUP",
- "BANK",
- "BANK_GROUP",
- "COMPANY",
- "COMPANY_GROUP",
- "CURRENCY",
- "COUNTRY",
- "COUNTRY_GROUP",
- "FLOW_CODE",
- "BUDGET_CODE",
- "TRANSACTION_DATE",
- "VALUE_DATE",
- "ACCOUNTING_DATE"
- ]
+ "type": ["string", "null"],
+ "description": "The first level of aggregation by the grouping criterion"
},
"level2": {
- "type": "string",
- "description": "The second level of aggregation by the grouping criterion",
- "enum": [
- "ACCOUNT",
- "ACCOUNT_GROUP",
- "BANK",
- "BANK_GROUP",
- "COMPANY",
- "COMPANY_GROUP",
- "CURRENCY",
- "COUNTRY",
- "COUNTRY_GROUP",
- "FLOW_CODE",
- "BUDGET_CODE",
- "TRANSACTION_DATE",
- "VALUE_DATE",
- "ACCOUNTING_DATE"
- ]
+ "type": ["string", "null"],
+ "description": "The second level of aggregation by the grouping criterion"
},
"level3": {
- "type": "string",
- "description": "The third level of aggregation by the grouping criterion",
- "enum": [
- "ACCOUNT",
- "ACCOUNT_GROUP",
- "BANK",
- "BANK_GROUP",
- "COMPANY",
- "COMPANY_GROUP",
- "CURRENCY",
- "COUNTRY",
- "COUNTRY_GROUP",
- "FLOW_CODE",
- "BUDGET_CODE",
- "TRANSACTION_DATE",
- "VALUE_DATE",
- "ACCOUNTING_DATE"
- ]
+ "type": ["string", "null"],
+ "description": "The third level of aggregation by the grouping criterion"
}
},
"title": "CashFlowAggregationLevelsDto"
},
"CashFlowAggregationRequestDto": {
- "type": "object",
- "required": ["currencyConversion", "filtering"],
+ "type": ["object", "null"],
"properties": {
"filtering": {
"description": "Filtering",
@@ -403,8 +286,7 @@
"title": "CashFlowAggregationRequestDto"
},
"CashFlowAggregationResponseDto": {
- "type": "object",
- "required": ["accountAmountAggregationTotal", "currency"],
+ "type": ["object", "null"],
"properties": {
"accountAmountAggregationTotal": {
"description": "Calculated aggregation total of the cash flows",
@@ -422,28 +304,28 @@
"title": "CashFlowAggregationResponseDto"
},
"CashFlowDateModel": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"transactionDate": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"example": "2021-04-01",
"description": "Transaction date"
},
"valueDate": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"example": "2021-04-02",
"description": "Value date"
},
"accountingDate": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"example": "2021-04-03",
"description": "Accounting date"
},
"updateDateTime": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date-time",
"example": "2020-01-02T13:04:35Z",
"description": "Update date time"
@@ -452,8 +334,7 @@
"title": "CashFlowDateModel"
},
"CashFlowModel": {
- "type": "object",
- "required": ["account", "date", "flowAmount", "flowCode", "status"],
+ "type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -468,7 +349,7 @@
"$ref": "#/definitions/ReferenceModel"
},
"status": {
- "type": "string",
+ "type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status"
},
@@ -485,16 +366,12 @@
"$ref": "#/definitions/CashAmountModel"
},
"description": {
- "type": "string",
- "description": "Cash flow's description",
- "minLength": 0,
- "maxLength": 2500
+ "type": ["string", "null"],
+ "description": "Cash flow's description"
},
"reference": {
- "type": "string",
- "description": "Cash flow's reference",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's reference"
},
"userZones": {
"description": "User zones of the cash flow",
@@ -504,17 +381,7 @@
"title": "CashFlowModel"
},
"CashFlowResponseDetailed": {
- "type": "object",
- "required": [
- "account",
- "bank",
- "branch",
- "company",
- "companyGlAmount",
- "counterpartyFlow",
- "flowCode",
- "forecastGlCountervalue"
- ],
+ "type": ["object", "null"],
"properties": {
"currency": {
"example": "USD",
@@ -522,40 +389,36 @@
"$ref": "#/definitions/ReferenceModel"
},
"feeAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Fee amount"
},
"interestAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Interest amount"
},
"commissionAmount": {
- "type": "number",
+ "type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Commission amount"
},
"updateDateTime": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date-time",
"example": "2021-04-02T12:12:12Z",
"description": "Last update date of the cash flow."
},
"flowID": {
- "type": "string",
- "description": "Flow ID",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Flow ID"
},
"companyConsolidationCode": {
- "type": "string",
- "description": "Company consolidation code",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Company consolidation code"
},
"company": {
"description": "Company",
@@ -578,10 +441,8 @@
"$ref": "#/definitions/AmountResponseDTO"
},
"debitCreditType": {
- "type": "string",
- "description": "Type of GL",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Type of GL"
},
"counterpartyFlow": {
"description": "Counterparty flow",
@@ -599,8 +460,7 @@
"title": "CashFlowResponseDetailed"
},
"CashFlowSearchModel": {
- "type": "object",
- "required": ["account", "date", "flowAmount", "flowCode", "status"],
+ "type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -619,7 +479,7 @@
"$ref": "#/definitions/CashFlowDateModel"
},
"status": {
- "type": "string",
+ "type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status"
},
@@ -632,32 +492,24 @@
"$ref": "#/definitions/AmountModel"
},
"description": {
- "type": "string",
- "description": "Cash flow's description",
- "minLength": 0,
- "maxLength": 2500
+ "type": ["string", "null"],
+ "description": "Cash flow's description"
},
"reference": {
- "type": "string",
- "description": "Cash flow's reference",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's reference"
},
"origin": {
- "type": "string",
- "description": "Cash flow's origin",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's origin"
},
"number": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32",
- "description": "Cash flow's number",
- "minimum": 0,
- "maximum": 250
+ "description": "Cash flow's number"
},
"glStatus": {
- "type": "string",
+ "type": ["string", "null"],
"example": "BALANCED",
"description": "Cash flow GL status"
},
@@ -666,7 +518,7 @@
"$ref": "#/definitions/UserZonesModel"
},
"actualMode": {
- "type": "string",
+ "type": ["string", "null"],
"example": "Manual",
"description": "Cash flow actual mode"
}
@@ -674,8 +526,7 @@
"title": "CashFlowSearchModel"
},
"CashFlowUpdateModel": {
- "type": "object",
- "required": ["account", "date", "flowAmount", "flowCode", "status"],
+ "type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -690,7 +541,7 @@
"$ref": "#/definitions/ReferenceModel"
},
"status": {
- "type": "string",
+ "type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status"
},
@@ -707,16 +558,12 @@
"$ref": "#/definitions/CashAmountModel"
},
"description": {
- "type": "string",
- "description": "Cash flow's description",
- "minLength": 0,
- "maxLength": 2500
+ "type": ["string", "null"],
+ "description": "Cash flow's description"
},
"reference": {
- "type": "string",
- "description": "Cash flow's reference",
- "minLength": 0,
- "maxLength": 250
+ "type": ["string", "null"],
+ "description": "Cash flow's reference"
},
"userZones": {
"description": "User zones of the cash flow",
@@ -726,23 +573,21 @@
"title": "CashFlowUpdateModel"
},
"CounterpartyFlowModel": {
- "type": "object",
- "required": ["company", "consolidationCode"],
+ "type": ["object", "null"],
"properties": {
"company": {
"description": "Company",
"$ref": "#/definitions/ReferenceModel"
},
"consolidationCode": {
- "type": "string",
+ "type": ["string", "null"],
"description": "Consolidation code"
}
},
"title": "CounterpartyFlowModel"
},
"CurrencyConversionDto": {
- "type": "object",
- "required": ["currency", "currencyRate"],
+ "type": ["object", "null"],
"properties": {
"currency": {
"description": "Currency used for conversion",
@@ -756,24 +601,21 @@
"title": "CurrencyConversionDto"
},
"CurrencyConversionRateDto": {
- "type": "object",
- "required": ["mode"],
+ "type": ["object", "null"],
"properties": {
"mode": {
- "type": "string",
- "description": "Currency rate mode to use for currency conversion",
- "enum": ["FIXING", "HISTORICAL"]
+ "type": ["string", "null"],
+ "description": "Currency rate mode to use for currency conversion"
},
"fixingDate": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"example": "2020-02-01",
"description": "The date of the currency rate to be used if selected mode is FIXING."
},
"historicalDateType": {
- "type": "string",
- "description": "The dates of that type of the cash flows will be used as the currency rate datesif selected mode is HISTORICAL.",
- "enum": ["TRANSACTION", "VALUE", "ACCOUNTING"]
+ "type": ["string", "null"],
+ "description": "The dates of that type of the cash flows will be used as the currency rate datesif selected mode is HISTORICAL."
},
"type": {
"description": "Currency rate type",
@@ -783,26 +625,14 @@
"title": "CurrencyConversionRateDto"
},
"EntityFilterDto": {
- "type": "object",
- "required": ["entities", "entityType"],
+ "type": ["object", "null"],
"properties": {
"entityType": {
- "type": "string",
- "description": "The entity type to filter cash flows",
- "enum": [
- "ACCOUNT",
- "ACCOUNT_GROUP",
- "BANK",
- "BANK_GROUP",
- "COMPANY",
- "COMPANY_GROUP",
- "CURRENCY",
- "COUNTRY",
- "COUNTRY_GROUP"
- ]
+ "type": ["string", "null"],
+ "description": "The entity type to filter cash flows"
},
"entities": {
- "type": "array",
+ "type": ["array", "null"],
"description": "The entities to filter cash flows of the specified type",
"items": {
"$ref": "#/definitions/ReferenceModel"
@@ -812,22 +642,21 @@
"title": "EntityFilterDto"
},
"FilteringPeriodDto": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"dateType": {
- "type": "string",
+ "type": ["string", "null"],
"example": "TRANSACTION",
- "description": "The date type based on which the period is defined",
- "enum": ["TRANSACTION", "VALUE", "ACCOUNTING", "UPDATE", "CREATION"]
+ "description": "The date type based on which the period is defined"
},
"startDate": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"example": "2021-04-02",
"description": "The start date of the filtering period"
},
"endDate": {
- "type": "string",
+ "type": ["string", "null"],
"format": "date",
"example": "2021-04-03",
"description": "The end date of the filtering period"
@@ -836,10 +665,10 @@
"title": "FilteringPeriodDto"
},
"InnerError": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
+ "type": ["string", "null"],
"example": "Invalid",
"description": "One of a server-defined set of error codes."
},
@@ -852,7 +681,7 @@
"description": "An object containing more specific information than the current object about the error."
},
"ReferenceModel": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"],
@@ -870,11 +699,10 @@
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"ResponseUUIDModel": {
- "type": "object",
- "required": ["uuid"],
+ "type": ["object", "null"],
"properties": {
"uuid": {
- "type": "string",
+ "type": ["string", "null"],
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "UUID of the created resource."
@@ -883,16 +711,15 @@
"title": "ResponseUUIDModel"
},
"RestApiError": {
- "type": "object",
- "required": ["code", "message"],
+ "type": ["object", "null"],
"properties": {
"code": {
- "type": "string",
+ "type": ["string", "null"],
"example": "Invalid",
"description": "One of a server-defined set of error codes."
},
"details": {
- "type": "array",
+ "type": ["array", "null"],
"example": [
{
"code": "Invalid",
@@ -910,12 +737,12 @@
"$ref": "#/definitions/InnerError"
},
"message": {
- "type": "string",
+ "type": ["string", "null"],
"example": "The request failed because it contained invalid values",
"description": "A human-readable representation of the error."
},
"target": {
- "type": "string",
+ "type": ["string", "null"],
"example": "target",
"description": "The target of the error."
}
@@ -924,7 +751,7 @@
"description": "REST API Error."
},
"RestApiErrorResponse": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"error": {
"description": "The error object.",
@@ -939,52 +766,42 @@
"properties": {
"userZone1": {
"type": ["null", "string"],
- "description": "Free field whose type (Alphanumeric, Numeric, Date, List) is defined in the application setup. The imported value must be consistent with the field type. And the total length across all user zone values must be of 250 characters max",
- "minLength": 0,
- "maxLength": 100
+ "description": "Free field whose type (Alphanumeric, Numeric, Date, List) is defined in the application setup. The imported value must be consistent with the field type. And the total length across all user zone values must be of 250 characters max"
},
"userZone2": {
"type": ["null", "string"],
- "description": "Free field. Same behavior as field User zone 1",
- "minLength": 0,
- "maxLength": 100
+ "description": "Free field. Same behavior as field User zone 1"
},
"userZone3": {
"type": ["null", "string"],
- "description": "Free field. Same behavior as field User zone 1",
- "minLength": 0,
- "maxLength": 100
+ "description": "Free field. Same behavior as field User zone 1"
},
"userZone4": {
"type": ["null", "string"],
- "description": "Free field. Same behavior as field User zone 1",
- "minLength": 0,
- "maxLength": 100
+ "description": "Free field. Same behavior as field User zone 1"
},
"userZone5": {
"type": ["null", "string"],
- "description": "Free field. Same behavior as field User zone 1",
- "minLength": 0,
- "maxLength": 100
+ "description": "Free field. Same behavior as field User zone 1"
}
},
"title": "UserZonesModel"
},
"_links": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"current": {
- "type": "string",
+ "type": ["string", "null"],
"example": "https://host/gateway/api/resources?page.limit=10&page.offset=10",
"description": "Current page."
},
"next": {
- "type": "string",
+ "type": ["string", "null"],
"example": "https://host/gateway/api/resources?page.limit=10&page.offset=20",
"description": "Next page."
},
"prev": {
- "type": "string",
+ "type": ["string", "null"],
"example": "https://host/gateway/api/resources?page.limit=10&page.offset=0",
"description": "Previous page."
}
@@ -992,55 +809,51 @@
"title": "_links"
},
"_metadata": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"links": {
"description": "Links for pages.",
"$ref": "#/definitions/_links"
},
"numberOfTotalResults": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int64",
"example": 100,
"description": "The number of total records.",
- "minimum": 0.0,
"exclusiveMinimum": false
},
"pageLimit": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32",
"example": 100,
"description": "Limit the number of records per page. By default 100.",
- "minimum": 1.0,
"exclusiveMinimum": false
},
"pageOffset": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32",
"example": 0,
"description": "Page Offset means the number of records you want to skip before starting reading. By default 0.",
- "minimum": 0.0,
"exclusiveMinimum": false
},
"pageResults": {
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int64",
"example": 10,
"description": "The number of records in current page.",
- "minimum": 0.0,
"exclusiveMinimum": false
}
},
"title": "_metadata"
},
"_pageOfCashFlowSearchModel": {
- "type": "object",
+ "type": ["object", "null"],
"properties": {
"metadata": {
"$ref": "#/definitions/_metadata"
},
"results": {
- "type": "array",
+ "type": ["array", "null"],
"items": {
"$ref": "#/definitions/CashFlowSearchModel"
}
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/source.py b/airbyte-integrations/connectors/source-kyriba/source_kyriba/source.py
index 17ea43ac3414..cac3eb31f5cf 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/source.py
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/source.py
@@ -270,9 +270,15 @@ def gateway_url(self, config: Mapping[str, Any]) -> str:
return f"https://{config['domain']}/gateway"
def check_connection(self, logger, config) -> Tuple[bool, any]:
- client = KyribaClient(config["username"], config["password"], self.gateway_url(config))
- client.login()
- return True, None
+ try:
+ client = KyribaClient(config["username"], config["password"], self.gateway_url(config))
+ client.login()
+ return True, None
+ except Exception as e:
+ if isinstance(e, requests.exceptions.HTTPError) and e.response.status_code == 401:
+ err_message = f"Please check your `username` and `password`. Error: {repr(e)}"
+ return False, err_message
+ return False, repr(e)
def streams(self, config: Mapping[str, Any]) -> List[Stream]:
gateway_url = self.gateway_url(config)
diff --git a/airbyte-integrations/connectors/source-kyriba/source_kyriba/spec.json b/airbyte-integrations/connectors/source-kyriba/source_kyriba/spec.json
index 37050136e4c0..2d507d94a818 100644
--- a/airbyte-integrations/connectors/source-kyriba/source_kyriba/spec.json
+++ b/airbyte-integrations/connectors/source-kyriba/source_kyriba/spec.json
@@ -5,32 +5,36 @@
"title": "Kyriba Spec",
"type": "object",
"required": ["domain", "username", "password", "start_date"],
- "additionalProperties": false,
+ "additionalProperties": true,
"properties": {
"domain": {
"type": "string",
"description": "Kyriba domain",
"title": "Domain",
"examples": ["demo.kyriba.com"],
- "pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*"
+ "pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*",
+ "order": 2
},
"username": {
"type": "string",
"description": "Username to be used in basic auth",
- "title": "Username"
+ "title": "Username",
+ "order": 0
},
"password": {
"type": "string",
"description": "Password to be used in basic auth",
"title": "Password",
- "airbyte_secret": true
+ "airbyte_secret": true,
+ "order": 1
},
"start_date": {
"type": "string",
"description": "The date the sync should start from.",
"title": "Start Date",
"examples": ["2021-01-10"],
- "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$"
+ "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$",
+ "order": 3
},
"end_date": {
"type": "string",
diff --git a/airbyte-integrations/connectors/source-kyriba/unit_tests/test_bank_balances_stream.py b/airbyte-integrations/connectors/source-kyriba/unit_tests/test_bank_balances_stream.py
index c2e26c3eea7c..58ff037abc67 100644
--- a/airbyte-integrations/connectors/source-kyriba/unit_tests/test_bank_balances_stream.py
+++ b/airbyte-integrations/connectors/source-kyriba/unit_tests/test_bank_balances_stream.py
@@ -6,7 +6,7 @@
from unittest.mock import MagicMock
import pytest
-from source_kyriba.source import CashBalancesStream
+from source_kyriba.source import BankBalancesStream
from .test_streams import config
@@ -14,64 +14,58 @@
@pytest.fixture
def patch_base_class(mocker):
# Mock abstract methods to enable instantiating abstract class
- mocker.patch.object(CashBalancesStream, "primary_key", "test_primary_key")
- mocker.patch.object(CashBalancesStream, "__abstractmethods__", set())
+ mocker.patch.object(BankBalancesStream, "primary_key", "test_primary_key")
+ mocker.patch.object(BankBalancesStream, "__abstractmethods__", set())
def test_stream_slices(patch_base_class):
- stream = CashBalancesStream(**config())
- account_uuids = [{"account_uuid": "first"}, {"account_uuid": "second"}]
+ stream = BankBalancesStream(**config())
+ account_uuids = [
+ {"account_uuid": "first"},
+ {"account_uuid": "second"}
+ ]
stream.get_account_uuids = MagicMock(return_value=account_uuids)
stream.start_date = date(2022, 1, 1)
- stream.end_date = date(2022, 3, 1)
+ stream.end_date = date(2022, 1, 2)
expected = [
{
"account_uuid": "first",
- "startDate": "2022-01-01",
- "endDate": "2022-02-01",
+ "date": "2022-01-01",
},
{
"account_uuid": "second",
- "startDate": "2022-01-01",
- "endDate": "2022-02-01",
+ "date": "2022-01-01",
},
{
"account_uuid": "first",
- "startDate": "2022-02-02",
- "endDate": "2022-03-01",
+ "date": "2022-01-02",
},
{
"account_uuid": "second",
- "startDate": "2022-02-02",
- "endDate": "2022-03-01",
- },
+ "date": "2022-01-02",
+ }
]
slices = stream.stream_slices()
assert slices == expected
def test_path(patch_base_class):
- stream = CashBalancesStream(**config())
+ stream = BankBalancesStream(**config())
inputs = {"stream_slice": {"account_uuid": "uuid"}}
path = stream.path(**inputs)
- assert path == "cash-balances/accounts/uuid/balances"
+ assert path == "bank-balances/accounts/uuid/balances"
def test_request_params(patch_base_class):
- stream = CashBalancesStream(**config())
+ stream = BankBalancesStream(**config())
inputs = {
- "stream_slice": {"account_uuid": "uuid", "endDate": "2022-02-01", "startDate": "2022-01-01"},
+ "stream_slice": {"account_uuid": "uuid", "date": "2022-02-01"},
"stream_state": {},
}
- stream.intraday = False
+ stream.balance_type = "END_OF_DAY"
params = stream.request_params(**inputs)
expected = {
- "endDate": "2022-02-01",
- "startDate": "2022-01-01",
- "intraday": False,
- "actual": True,
- "estimatedForecasts": False,
- "confirmedForecasts": False,
- "dateType": "VALUE",
+ "date": inputs["stream_slice"]["date"],
+ "type": stream.balance_type,
}
assert params == expected
diff --git a/airbyte-integrations/connectors/source-kyriba/unit_tests/test_source.py b/airbyte-integrations/connectors/source-kyriba/unit_tests/test_source.py
index 0bb0d10f8a18..1bda3981cbd6 100644
--- a/airbyte-integrations/connectors/source-kyriba/unit_tests/test_source.py
+++ b/airbyte-integrations/connectors/source-kyriba/unit_tests/test_source.py
@@ -13,14 +13,6 @@
"start_date": "2022-01-01",
}
-config = {
- "username": "username",
- "password": "password",
- "domain": "demo.kyriba.com",
- "start_date": "2022-01-01",
-}
-
-
def test_check_connection(mocker):
source = SourceKyriba()
KyribaClient.login = MagicMock()
diff --git a/docs/integrations/sources/kyriba.md b/docs/integrations/sources/kyriba.md
index f5c8f221a3dc..4792928ce5d9 100644
--- a/docs/integrations/sources/kyriba.md
+++ b/docs/integrations/sources/kyriba.md
@@ -1,24 +1,69 @@
# Kyriba
+
+
+This page contains the setup guide and reference information for the [Kyriba](https://www.kyriba.com/) source connector.
+
+
+
## Overview
The Kyriba source retrieves data from [Kyriba](https://kyriba.com/) using their [JSON REST APIs](https://developer.kyriba.com/apiCatalog/).
-## Setup Guide
-
-### Requirements
+## Prerequisites
- Kyriba domain
-- Username
+- Username
- Password
-You have to reach out to Kyriba to get these.
+## Setup Guide
+
+### Set up the Kyriba source connector in Airbyte
+1. Log in to your [Airbyte Cloud](https://cloud.airbyte.com/workspaces) account or your Airbyte Open Source account.
+2. Navigate to **Sources** in the left sidebar and click **+ New source**. in the top-right corner.
+3. Choose **Kyriba** from the list of available sources.
+4. For **Source name**, enter a descriptive name to help you identify this source.
+5. For **Domain**, enter your Kyriba domain.
+6. Input your **Username** and **Password** for basic authentication.
+7. Specify the**Start Date**, from which data syncing will commence.
+8. (Optional) Specify an End Date to indicate the last date up to which data will be synced.
+
+
+
+## Supported Sync Modes
+
+The Kyriba source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts#connection-sync-modes):
+
+- Full Refresh
+- Incremental
## Supported Streams
- [Accounts](https://developer.kyriba.com/site/global/apis/accounts/index.gsp)
- [Bank Balances](https://developer.kyriba.com/site/global/apis/bank-statement-balances/index.gsp) - End of Day and Intraday
-- [Cash Balances](https://developer.kyriba.com/site/global/apis/cash-balances/index.gsp) - End of Day and Intraday
-- [Cash Flows](https://developer.kyriba.com/site/global/apis/cash-flows/index.gsp) (incremental)
+- [Cash Balances](https://developer.kyriba.com/site/global/apis/cash-balances/index.gsp) - End of Day and Intraday
+- [Cash Flows](https://developer.kyriba.com/site/global/apis/cash-flows/index.gsp)
+
+## Limitations & Troubleshooting
+
+
+
+Expand to see details about Kyriba connector limitations and troubleshooting.
+
+
+### Connector Limitations
+
+#### Rate Limiting
+
+The Kyriba connector should not run into API limitations under normal usage. [Create an issue](https://github.com/airbytehq/airbyte/issues) if you see any rate limit issues that are not automatically retried successfully.
+
+### Troubleshooting
+
+* Check out common troubleshooting issues for the Stripe source connector on our [Airbyte Forum](https://github.com/airbytehq/airbyte/discussions).
+
+
## Changelog
-| Version | Date | Pull Request | Subject |
-| :------ | :--------- | :------------------------------------------------------- | :-------------------------- |
+| Version | Date | Pull Request | Subject |
+| :------ | :--------- | :------------------------------------------------------- | :--------------------------- |
+| 0.1.1 | 2024-01-30 | [34545](https://github.com/airbytehq/airbyte/pull/34545) | Updates CDK, Base image migration: remove Dockerfile and use the python-connector-base image |
| 0.1.0 | 2022-07-13 | [12748](https://github.com/airbytehq/airbyte/pull/12748) | The Kyriba Source is created |
+
+