diff --git a/sync-for-commerce/README.md b/sync-for-commerce/README.md
index 07dcd598c..c8f8f8cb7 100755
--- a/sync-for-commerce/README.md
+++ b/sync-for-commerce/README.md
@@ -3,15 +3,78 @@
Embedded accounting integrations for POS and eCommerce platforms.
-replace me
+## SDK Installation
+
+```bash
+pip install codat-sync-for-commerce
+```
## Example Usage
-replace me
+
+
+```python
+import codatsynccommerce
+from codatsynccommerce.models import shared
+
+s = codatsynccommerce.CodatSyncCommerce(
+ security=shared.Security(
+ auth_header="Basic BASE_64_ENCODED(API_KEY)",
+ ),
+)
+
+req = shared.CreateCompany(
+ description='Requested early access to the new financing scheme.',
+ name='Bank of Dave',
+)
+
+res = s.advanced_controls.create_company(req)
+
+if res.company is not None:
+ # handle response
+```
-replace me
+## Available Resources and Operations
+
+
+### [advanced_controls](docs/sdks/advancedcontrols/README.md)
+
+* [create_company](docs/sdks/advancedcontrols/README.md#create_company) - Create company
+* [get_configuration](docs/sdks/advancedcontrols/README.md#get_configuration) - Get company configuration
+* [list_companies](docs/sdks/advancedcontrols/README.md#list_companies) - List companies
+* [set_configuration](docs/sdks/advancedcontrols/README.md#set_configuration) - Set configuration
+
+### [connections](docs/sdks/connections/README.md)
+
+* [create](docs/sdks/connections/README.md#create) - Create connection
+* [get_sync_flow_url](docs/sdks/connections/README.md#get_sync_flow_url) - Start new sync flow
+* [list](docs/sdks/connections/README.md#list) - List connections
+* [update_authorization](docs/sdks/connections/README.md#update_authorization) - Update authorization
+* [update_connection](docs/sdks/connections/README.md#update_connection) - Update connection
+
+### [integrations](docs/sdks/integrations/README.md)
+
+* [get_branding](docs/sdks/integrations/README.md#get_branding) - Get branding for an integration
+* [list](docs/sdks/integrations/README.md#list) - List integrations
+
+### [sync](docs/sdks/sync/README.md)
+
+* [get](docs/sdks/sync/README.md#get) - Get sync status
+* [get_last_successful_sync](docs/sdks/sync/README.md#get_last_successful_sync) - Last successful sync
+* [get_latest_sync](docs/sdks/sync/README.md#get_latest_sync) - Latest sync status
+* [get_status](docs/sdks/sync/README.md#get_status) - Get sync status
+* [list](docs/sdks/sync/README.md#list) - List sync statuses
+* [request](docs/sdks/sync/README.md#request) - Initiate new sync
+* [request_for_date_range](docs/sdks/sync/README.md#request_for_date_range) - Initiate sync for specific range
+
+### [sync_flow_settings](docs/sdks/syncflowsettings/README.md)
+
+* [get_config_text_sync_flow](docs/sdks/syncflowsettings/README.md#get_config_text_sync_flow) - Get preferences for text fields
+* [get_visible_accounts](docs/sdks/syncflowsettings/README.md#get_visible_accounts) - List visible accounts
+* [update_config_text_sync_flow](docs/sdks/syncflowsettings/README.md#update_config_text_sync_flow) - Update preferences for text fields
+* [update_visible_accounts_sync_flow](docs/sdks/syncflowsettings/README.md#update_visible_accounts_sync_flow) - Update visible accounts
### Library generated by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
diff --git a/sync-for-commerce/RELEASES.md b/sync-for-commerce/RELEASES.md
index e670121dc..51b0c6edb 100644
--- a/sync-for-commerce/RELEASES.md
+++ b/sync-for-commerce/RELEASES.md
@@ -528,4 +528,14 @@ Based on:
### Generated
- [python v0.31.0] sync-for-commerce
### Releases
-- [PyPI v0.31.0] https://pypi.org/project/codat-sync-for-commerce/0.31.0 - sync-for-commerce
\ No newline at end of file
+- [PyPI v0.31.0] https://pypi.org/project/codat-sync-for-commerce/0.31.0 - sync-for-commerce
+
+## 2023-09-13 11:30:50
+### Changes
+Based on:
+- OpenAPI Doc 1.1 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Sync-Commerce.yaml
+- Speakeasy CLI 1.82.5 (2.108.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.1.0] sync-for-commerce
+### Releases
+- [PyPI v1.1.0] https://pypi.org/project/codat-sync-for-commerce/1.1.0 - sync-for-commerce
\ No newline at end of file
diff --git a/sync-for-commerce/USAGE.md b/sync-for-commerce/USAGE.md
index 089fb8ddf..4e20f38d9 100755
--- a/sync-for-commerce/USAGE.md
+++ b/sync-for-commerce/USAGE.md
@@ -12,7 +12,8 @@ s = codatsynccommerce.CodatSyncCommerce(
)
req = shared.CreateCompany(
- name='Bob's Burgers',
+ description='Requested early access to the new financing scheme.',
+ name='Bank of Dave',
)
res = s.advanced_controls.create_company(req)
diff --git a/sync-for-commerce/docs/models/operations/getsyncstatusresponse.md b/sync-for-commerce/docs/models/operations/getsyncstatusresponse.md
index 0c96de63b..c58550527 100755
--- a/sync-for-commerce/docs/models/operations/getsyncstatusresponse.md
+++ b/sync-for-commerce/docs/models/operations/getsyncstatusresponse.md
@@ -5,6 +5,9 @@
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `bad_request` | *Optional[Any]* | :heavy_minus_sign: | Bad Request |
| `content_type` | *str* | :heavy_check_mark: | N/A |
+| `not_found` | *Optional[Any]* | :heavy_minus_sign: | Not Found |
| `status_code` | *int* | :heavy_check_mark: | N/A |
-| `raw_response` | [requests.Response](https://requests.readthedocs.io/en/latest/api/#requests.Response) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `raw_response` | [requests.Response](https://requests.readthedocs.io/en/latest/api/#requests.Response) | :heavy_minus_sign: | N/A |
+| `sync_status` | [Optional[shared.SyncStatus]](../../models/shared/syncstatus.md) | :heavy_minus_sign: | Success |
\ No newline at end of file
diff --git a/sync-for-commerce/docs/models/shared/branding.md b/sync-for-commerce/docs/models/shared/branding.md
index ba283ef04..095582187 100755
--- a/sync-for-commerce/docs/models/shared/branding.md
+++ b/sync-for-commerce/docs/models/shared/branding.md
@@ -1,7 +1,5 @@
# Branding
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/companies.md b/sync-for-commerce/docs/models/shared/companies.md
index b70aa8beb..c4c6e0399 100755
--- a/sync-for-commerce/docs/models/shared/companies.md
+++ b/sync-for-commerce/docs/models/shared/companies.md
@@ -1,7 +1,5 @@
# Companies
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/companysyncstatus.md b/sync-for-commerce/docs/models/shared/companysyncstatus.md
index a3d6dcb4b..564dc44df 100755
--- a/sync-for-commerce/docs/models/shared/companysyncstatus.md
+++ b/sync-for-commerce/docs/models/shared/companysyncstatus.md
@@ -1,7 +1,5 @@
# CompanySyncStatus
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/configuration.md b/sync-for-commerce/docs/models/shared/configuration.md
index c2ea069aa..75b69a0ec 100755
--- a/sync-for-commerce/docs/models/shared/configuration.md
+++ b/sync-for-commerce/docs/models/shared/configuration.md
@@ -1,7 +1,5 @@
# Configuration
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/connections.md b/sync-for-commerce/docs/models/shared/connections.md
index ba1135508..d9a1a748e 100755
--- a/sync-for-commerce/docs/models/shared/connections.md
+++ b/sync-for-commerce/docs/models/shared/connections.md
@@ -1,7 +1,5 @@
# Connections
-OK
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/createcompany.md b/sync-for-commerce/docs/models/shared/createcompany.md
index 352f29589..df2d37bfe 100755
--- a/sync-for-commerce/docs/models/shared/createcompany.md
+++ b/sync-for-commerce/docs/models/shared/createcompany.md
@@ -3,6 +3,7 @@
## Fields
-| Field | Type | Required | Description | Example |
-| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
-| `name` | *str* | :heavy_check_mark: | Name of the company in Codat with a partner-commerce data connection. | Bob's Burgers |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `description` | *Optional[str]* | :heavy_minus_sign: | Additional information about the company. This can be used to store foreign IDs, references, etc. | Requested early access to the new financing scheme. |
+| `name` | *str* | :heavy_check_mark: | Name of company being connected. | Bank of Dave |
\ No newline at end of file
diff --git a/sync-for-commerce/docs/models/shared/datatypefeature.md b/sync-for-commerce/docs/models/shared/datatypefeature.md
index d35bba1df..aefc53b2d 100755
--- a/sync-for-commerce/docs/models/shared/datatypefeature.md
+++ b/sync-for-commerce/docs/models/shared/datatypefeature.md
@@ -5,7 +5,7 @@ Describes support for a given datatype and associated operations
## Fields
-| Field | Type | Required | Description | Example |
-| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `data_type` | [Optional[DataTypeFeatureDataType]](../../models/shared/datatypefeaturedatatype.md) | :heavy_minus_sign: | Available Data types | invoices |
-| `supported_features` | list[[SupportedFeature](../../models/shared/supportedfeature.md)] | :heavy_check_mark: | N/A | |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `data_type` | [Optional[DataTypeFeatureDataTypes]](../../models/shared/datatypefeaturedatatypes.md) | :heavy_minus_sign: | Available Data types | invoices |
+| `supported_features` | list[[SupportedFeature](../../models/shared/supportedfeature.md)] | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/sync-for-commerce/docs/models/shared/datatypefeaturedatatype.md b/sync-for-commerce/docs/models/shared/datatypefeaturedatatypes.md
similarity index 99%
rename from sync-for-commerce/docs/models/shared/datatypefeaturedatatype.md
rename to sync-for-commerce/docs/models/shared/datatypefeaturedatatypes.md
index 510c9deba..7fccfb6fa 100755
--- a/sync-for-commerce/docs/models/shared/datatypefeaturedatatype.md
+++ b/sync-for-commerce/docs/models/shared/datatypefeaturedatatypes.md
@@ -1,4 +1,4 @@
-# DataTypeFeatureDataType
+# DataTypeFeatureDataTypes
Available Data types
diff --git a/sync-for-commerce/docs/models/shared/errormessage.md b/sync-for-commerce/docs/models/shared/errormessage.md
index b32400646..4f34c9a64 100755
--- a/sync-for-commerce/docs/models/shared/errormessage.md
+++ b/sync-for-commerce/docs/models/shared/errormessage.md
@@ -1,7 +1,5 @@
# ErrorMessage
-Your `query` parameter was not correctly formed
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/integrations.md b/sync-for-commerce/docs/models/shared/integrations.md
index c3fa6846d..31ab0315a 100755
--- a/sync-for-commerce/docs/models/shared/integrations.md
+++ b/sync-for-commerce/docs/models/shared/integrations.md
@@ -1,7 +1,5 @@
# Integrations
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/syncflowurl.md b/sync-for-commerce/docs/models/shared/syncflowurl.md
index 96bfbda50..d7628e7c5 100755
--- a/sync-for-commerce/docs/models/shared/syncflowurl.md
+++ b/sync-for-commerce/docs/models/shared/syncflowurl.md
@@ -1,7 +1,5 @@
# SyncFlowURL
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/models/shared/syncstatus.md b/sync-for-commerce/docs/models/shared/syncstatus.md
new file mode 100755
index 000000000..a74ece611
--- /dev/null
+++ b/sync-for-commerce/docs/models/shared/syncstatus.md
@@ -0,0 +1,19 @@
+# SyncStatus
+
+The status of syncing for a company and its connections.
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `commerce_sync_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the sync in Codat. | 8d0a044e-b683-4fc9-bd0d-bfb2ca5731b7 |
+| `company_id` | *Optional[Any]* | :heavy_minus_sign: | N/A | |
+| `data_connections` | list[[Connection](../../models/shared/connection.md)] | :heavy_minus_sign: | Array of containing objects data connection information for the company. | |
+| `data_pushed` | *Optional[bool]* | :heavy_minus_sign: | Boolean indicator for data being pushed during a sync operation. | true |
+| `error_message` | *Optional[str]* | :heavy_minus_sign: | Friendly error message for the sync operation. | Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived) |
+| `sync_exception_message` | *Optional[str]* | :heavy_minus_sign: | Exception message for the sync operation. | Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived) |
+| `sync_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the sync in Codat. | 730dcf2e-3afc-4d83-bb90-9f4b95dddf68 |
+| `sync_status` | *Optional[str]* | :heavy_minus_sign: | Status of the sync of the company data. This is linked to status code. | ValidateError, Pending |
+| `sync_status_code` | *Optional[int]* | :heavy_minus_sign: | Numerical status code sync of the company data. | 4000 |
+| `sync_utc` | *Optional[str]* | :heavy_minus_sign: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```
When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`
> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23T00:00:00.000Z |
\ No newline at end of file
diff --git a/sync-for-commerce/docs/models/shared/syncsummary.md b/sync-for-commerce/docs/models/shared/syncsummary.md
index f89e70491..ec742700b 100755
--- a/sync-for-commerce/docs/models/shared/syncsummary.md
+++ b/sync-for-commerce/docs/models/shared/syncsummary.md
@@ -1,7 +1,5 @@
# SyncSummary
-Success
-
## Fields
@@ -12,7 +10,7 @@ Success
| `data_connections` | list[[Connection](../../models/shared/connection.md)] | :heavy_minus_sign: | Array of containing objects data connection information for the company. | |
| `data_pushed` | *Optional[bool]* | :heavy_minus_sign: | Boolean indicator for data being pushed during a sync operation. | true |
| `error_message` | *Optional[str]* | :heavy_minus_sign: | Friendly error message for the sync operation. | Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived) |
-| `sync_date_range_utc` | [Optional[DateRange]](../../models/shared/daterange.md) | :heavy_minus_sign: | N/A | |
+| `sync_date_range_utc` | [Optional[SyncSummarySyncDateRangeUtc]](../../models/shared/syncsummarysyncdaterangeutc.md) | :heavy_minus_sign: | N/A | |
| `sync_exception_message` | *Optional[str]* | :heavy_minus_sign: | Exception message for the sync operation. | Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived) |
| `sync_status` | *Optional[str]* | :heavy_minus_sign: | Status of the sync of the company data. This is linked to status code. | ValidateError, Pending |
| `sync_status_code` | *Optional[int]* | :heavy_minus_sign: | Numerical status code sync of the company data. | 4000 |
diff --git a/sync-for-commerce/docs/models/shared/daterange.md b/sync-for-commerce/docs/models/shared/syncsummarysyncdaterangeutc.md
similarity index 99%
rename from sync-for-commerce/docs/models/shared/daterange.md
rename to sync-for-commerce/docs/models/shared/syncsummarysyncdaterangeutc.md
index 6935d711b..61b8ce4db 100755
--- a/sync-for-commerce/docs/models/shared/daterange.md
+++ b/sync-for-commerce/docs/models/shared/syncsummarysyncdaterangeutc.md
@@ -1,4 +1,4 @@
-# DateRange
+# SyncSummarySyncDateRangeUtc
## Fields
diff --git a/sync-for-commerce/docs/models/shared/updateconnection.md b/sync-for-commerce/docs/models/shared/updateconnection.md
index 3b8e4f2c5..44e203f02 100755
--- a/sync-for-commerce/docs/models/shared/updateconnection.md
+++ b/sync-for-commerce/docs/models/shared/updateconnection.md
@@ -3,6 +3,6 @@
## Fields
-| Field | Type | Required | Description | Example |
-| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
-| `status` | *Optional[str]* | :heavy_minus_sign: | The current authorization status of the data connection. | Linked |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `status` | [Optional[DataConnectionStatus]](../../models/shared/dataconnectionstatus.md) | :heavy_minus_sign: | The current authorization status of the data connection. |
\ No newline at end of file
diff --git a/sync-for-commerce/docs/models/shared/visibleaccounts.md b/sync-for-commerce/docs/models/shared/visibleaccounts.md
index 9b37f0489..e0c6f9690 100755
--- a/sync-for-commerce/docs/models/shared/visibleaccounts.md
+++ b/sync-for-commerce/docs/models/shared/visibleaccounts.md
@@ -1,7 +1,5 @@
# VisibleAccounts
-Success
-
## Fields
diff --git a/sync-for-commerce/docs/sdks/advancedcontrols/README.md b/sync-for-commerce/docs/sdks/advancedcontrols/README.md
index 134c724d6..7e2c893ad 100755
--- a/sync-for-commerce/docs/sdks/advancedcontrols/README.md
+++ b/sync-for-commerce/docs/sdks/advancedcontrols/README.md
@@ -28,7 +28,8 @@ s = codatsynccommerce.CodatSyncCommerce(
)
req = shared.CreateCompany(
- name='Bob's Burgers',
+ description='Requested early access to the new financing scheme.',
+ name='Bank of Dave',
)
res = s.advanced_controls.create_company(req)
diff --git a/sync-for-commerce/docs/sdks/codatsynccommerce/README.md b/sync-for-commerce/docs/sdks/codatsynccommerce/README.md
index ce3d585fa..e347f08d2 100755
--- a/sync-for-commerce/docs/sdks/codatsynccommerce/README.md
+++ b/sync-for-commerce/docs/sdks/codatsynccommerce/README.md
@@ -4,11 +4,11 @@
Sync for Commerce: The API for Sync for Commerce.
-Sync for Commerce is an API and a set of supporting tools built to enable e-commerce and point of sale platforms to provide high-quality integrations with numerous accounting platform through standardized API, seamlessly transforming business sale's data into accounting artefacts.
+Sync for Commerce automatically replicates and reconciles sales data from a merchant’s source PoS, Payments, and eCommerce systems into their accounting software. This eliminates manual processing by merchants and transforms their ability to run and grow their business.
[Read More...](https://docs.codat.io/commerce/overview)
-
+Not seeing the endpoints you're expecting? We've [reorganized our products](https://docs.codat.io/updates/230901-new-products), and you may be using a [different version of Sync for Commerce](https://docs.codat.io/sync-for-commerce-v1-api#/).
### Available Operations
diff --git a/sync-for-commerce/docs/sdks/connections/README.md b/sync-for-commerce/docs/sdks/connections/README.md
index 8b6ac499f..3566d1c59 100755
--- a/sync-for-commerce/docs/sdks/connections/README.md
+++ b/sync-for-commerce/docs/sdks/connections/README.md
@@ -2,12 +2,12 @@
## Overview
-Create new and manage existing Sync for Commerce companies using the Sync flow UI.
+Create new and manage existing Sync for Commerce connections using the Sync flow UI.
### Available Operations
* [create](#create) - Create connection
-* [get_sync_flow_url](#get_sync_flow_url) - Retrieve sync flow url
+* [get_sync_flow_url](#get_sync_flow_url) - Start new sync flow
* [list](#list) - List connections
* [update_authorization](#update_authorization) - Update authorization
* [update_connection](#update_connection) - Update connection
@@ -58,7 +58,7 @@ if res.connection is not None:
## get_sync_flow_url
-Get a URL for Sync Flow including a one time passcode.
+Create a new company and connections. Get a URL for Sync Flow, including a one time passcode.
### Example Usage
@@ -158,9 +158,7 @@ s = codatsynccommerce.CodatSyncCommerce(
req = operations.UpdateConnectionAuthorizationRequest(
request_body={
- "illum": 'vel',
- "error": 'deserunt',
- "suscipit": 'iure',
+ "corrupti": 'illum',
},
company_id='8a210b68-6988-11ed-a1eb-0242ac120002',
connection_id='2e9d2c44-f675-40ba-8049-353bfcb5e171',
@@ -203,7 +201,7 @@ s = codatsynccommerce.CodatSyncCommerce(
req = operations.UpdateConnectionRequest(
update_connection=shared.UpdateConnection(
- status='Linked',
+ status=shared.DataConnectionStatus.LINKED,
),
company_id='8a210b68-6988-11ed-a1eb-0242ac120002',
connection_id='2e9d2c44-f675-40ba-8049-353bfcb5e171',
diff --git a/sync-for-commerce/docs/sdks/integrations/README.md b/sync-for-commerce/docs/sdks/integrations/README.md
index b6dd8d03c..b74e8e3fb 100755
--- a/sync-for-commerce/docs/sdks/integrations/README.md
+++ b/sync-for-commerce/docs/sdks/integrations/README.md
@@ -26,7 +26,7 @@ s = codatsynccommerce.CodatSyncCommerce(
)
req = operations.GetIntegrationBrandingRequest(
- platform_key='magnam',
+ platform_key='error',
)
res = s.integrations.get_branding(req)
@@ -68,7 +68,7 @@ req = operations.ListIntegrationsRequest(
order_by='-modifiedDate',
page=1,
page_size=100,
- query='debitis',
+ query='deserunt',
)
res = s.integrations.list(req)
diff --git a/sync-for-commerce/docs/sdks/sync/README.md b/sync-for-commerce/docs/sdks/sync/README.md
index 8b012e6dc..e49bad5d5 100755
--- a/sync-for-commerce/docs/sdks/sync/README.md
+++ b/sync-for-commerce/docs/sdks/sync/README.md
@@ -6,7 +6,7 @@ Initiate and monitor the sync of company data into accounting software.
### Available Operations
-* [get](#get) - Get Sync status
+* [get](#get) - Get sync status
* [get_last_successful_sync](#get_last_successful_sync) - Last successful sync
* [get_latest_sync](#get_latest_sync) - Latest sync status
* [get_status](#get_status) - Get sync status
@@ -154,7 +154,7 @@ req = operations.GetSyncStatusRequest(
res = s.sync.get_status(req)
-if res.status_code == 200:
+if res.sync_status is not None:
# handle response
```
diff --git a/sync-for-commerce/docs/sdks/syncflowpreferences/README.md b/sync-for-commerce/docs/sdks/syncflowsettings/README.md
similarity index 93%
rename from sync-for-commerce/docs/sdks/syncflowpreferences/README.md
rename to sync-for-commerce/docs/sdks/syncflowsettings/README.md
index 591bc7e85..67e54cdc7 100755
--- a/sync-for-commerce/docs/sdks/syncflowpreferences/README.md
+++ b/sync-for-commerce/docs/sdks/syncflowsettings/README.md
@@ -1,4 +1,4 @@
-# sync_flow_preferences
+# sync_flow_settings
## Overview
@@ -28,7 +28,7 @@ s = codatsynccommerce.CodatSyncCommerce(
)
-res = s.sync_flow_preferences.get_config_text_sync_flow()
+res = s.sync_flow_settings.get_config_text_sync_flow()
if res.localization_info is not None:
# handle response
@@ -63,11 +63,11 @@ s = codatsynccommerce.CodatSyncCommerce(
)
req = operations.GetVisibleAccountsRequest(
- client_id='67cc8796-ed15-41a0-9dfc-2ddf7cc78ca1',
- platform_key='ba928fc8-1674-42cb-b392-05929396fea7',
+ client_id='e0f467cc-8796-4ed1-91a0-5dfc2ddf7cc7',
+ platform_key='8ca1ba92-8fc8-4167-82cb-739205929396',
)
-res = s.sync_flow_preferences.get_visible_accounts(req)
+res = s.sync_flow_settings.get_visible_accounts(req)
if res.visible_accounts is not None:
# handle response
@@ -103,17 +103,13 @@ s = codatsynccommerce.CodatSyncCommerce(
)
req = {
- "iste": shared.Localization(
+ "hic": shared.Localization(
required=False,
- text='iure',
- ),
- "saepe": shared.Localization(
- required=False,
- text='quidem',
+ text='saepe',
),
}
-res = s.sync_flow_preferences.update_config_text_sync_flow(req)
+res = s.sync_flow_settings.update_config_text_sync_flow(req)
if res.localization_info is not None:
# handle response
@@ -151,13 +147,13 @@ s = codatsynccommerce.CodatSyncCommerce(
req = operations.UpdateVisibleAccountsSyncFlowRequest(
visible_accounts=shared.VisibleAccounts(
visible_accounts=[
- 'ipsa',
+ 'fuga',
],
),
- platform_key='faaa2352-c595-4590-baff-1a3a2fa94677',
+ platform_key='7596eb10-faaa-4235-ac59-55907aff1a3a',
)
-res = s.sync_flow_preferences.update_visible_accounts_sync_flow(req)
+res = s.sync_flow_settings.update_visible_accounts_sync_flow(req)
if res.visible_accounts is not None:
# handle response
diff --git a/sync-for-commerce/files.gen b/sync-for-commerce/files.gen
index 2266a939d..d60e4dcee 100755
--- a/sync-for-commerce/files.gen
+++ b/sync-for-commerce/files.gen
@@ -3,7 +3,7 @@ src/codatsynccommerce/advanced_controls.py
src/codatsynccommerce/connections.py
src/codatsynccommerce/integrations.py
src/codatsynccommerce/sync.py
-src/codatsynccommerce/sync_flow_preferences.py
+src/codatsynccommerce/sync_flow_settings.py
src/codatsynccommerce/sdk.py
pylintrc
setup.py
@@ -80,8 +80,8 @@ src/codatsynccommerce/models/shared/supportedfeature.py
src/codatsynccommerce/models/shared/featuretype.py
src/codatsynccommerce/models/shared/featurestate.py
src/codatsynccommerce/models/shared/companysyncstatus.py
+src/codatsynccommerce/models/shared/syncstatus.py
src/codatsynccommerce/models/shared/syncsummary.py
-src/codatsynccommerce/models/shared/daterange.py
src/codatsynccommerce/models/shared/synctolatestargs.py
src/codatsynccommerce/models/shared/syncrange.py
src/codatsynccommerce/models/shared/localization.py
@@ -95,7 +95,7 @@ docs/sdks/advancedcontrols/README.md
docs/sdks/connections/README.md
docs/sdks/integrations/README.md
docs/sdks/sync/README.md
-docs/sdks/syncflowpreferences/README.md
+docs/sdks/syncflowsettings/README.md
USAGE.md
docs/models/operations/createcompanyresponse.md
docs/models/operations/getconfigurationrequest.md
@@ -179,14 +179,15 @@ docs/models/shared/brandingbutton.md
docs/models/shared/integrations.md
docs/models/shared/integration.md
docs/models/shared/sourcetype.md
-docs/models/shared/datatypefeaturedatatype.md
+docs/models/shared/datatypefeaturedatatypes.md
docs/models/shared/datatypefeature.md
docs/models/shared/supportedfeature.md
docs/models/shared/featuretype.md
docs/models/shared/featurestate.md
docs/models/shared/companysyncstatus.md
+docs/models/shared/syncstatus.md
+docs/models/shared/syncsummarysyncdaterangeutc.md
docs/models/shared/syncsummary.md
-docs/models/shared/daterange.md
docs/models/shared/synctolatestargs.md
docs/models/shared/syncrangedaterange.md
docs/models/shared/syncrange.md
diff --git a/sync-for-commerce/gen.yaml b/sync-for-commerce/gen.yaml
index 2ee356d81..c0b1ba89c 100644
--- a/sync-for-commerce/gen.yaml
+++ b/sync-for-commerce/gen.yaml
@@ -1,17 +1,25 @@
configVersion: 1.0.0
management:
- docChecksum: 853aebc76021ec17db9b1abb7a33f340
- docVersion: 2.1.0
- speakeasyVersion: 1.53.0
- generationVersion: 2.58.0
+ docChecksum: c0acc08add5921c52dad125db9a25813
+ docVersion: "1.1"
+ speakeasyVersion: 1.82.5
+ generationVersion: 2.108.3
generation:
sdkClassName: CodatSyncCommerce
singleTagPerOp: false
telemetryEnabled: true
+features:
+ python:
+ core: 2.85.4
+ deprecations: 2.81.1
+ examples: 2.81.2
+ globalSecurity: 2.81.1
+ globalServerURLs: 2.82.0
+ nameOverrides: 2.81.1
+ retries: 2.82.0
python:
- version: 1.0.0
+ version: 1.1.0
author: Codat
- description: Push merchants' data from your ecommerce or point-of-sale (POS) platform
- into your merchants' accounting platform.
+ description: Push merchants' data from your ecommerce or point-of-sale (POS) platform into your merchants' accounting platform.
maxMethodParams: 0
packageName: codat-sync-for-commerce
diff --git a/sync-for-commerce/setup.py b/sync-for-commerce/setup.py
index 4d9041d9f..33176971c 100755
--- a/sync-for-commerce/setup.py
+++ b/sync-for-commerce/setup.py
@@ -10,7 +10,7 @@
setuptools.setup(
name="codat-sync-for-commerce",
- version="0.31.0",
+ version="1.1.0",
author="Codat",
description="Push merchants' data from your ecommerce or point-of-sale (POS) platform into your merchants' accounting platform.",
long_description=long_description,
diff --git a/sync-for-commerce/src/codatsynccommerce/advanced_controls.py b/sync-for-commerce/src/codatsynccommerce/advanced_controls.py
index aa62d822a..6fba7bdea 100755
--- a/sync-for-commerce/src/codatsynccommerce/advanced_controls.py
+++ b/sync-for-commerce/src/codatsynccommerce/advanced_controls.py
@@ -29,9 +29,13 @@ def create_company(self, request: shared.CreateCompany, retries: Optional[utils.
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('POST', url, data=data, files=form, headers=headers)
@@ -68,9 +72,13 @@ def get_configuration(self, request: operations.GetConfigurationRequest, retries
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -108,9 +116,13 @@ def list_companies(self, request: operations.ListCompaniesRequest, retries: Opti
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, params=query_params, headers=headers)
@@ -147,9 +159,13 @@ def set_configuration(self, request: operations.SetConfigurationRequest, retries
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('POST', url, headers=headers)
diff --git a/sync-for-commerce/src/codatsynccommerce/connections.py b/sync-for-commerce/src/codatsynccommerce/connections.py
index c5e5bb115..2fe538470 100755
--- a/sync-for-commerce/src/codatsynccommerce/connections.py
+++ b/sync-for-commerce/src/codatsynccommerce/connections.py
@@ -6,7 +6,7 @@
from typing import Optional
class Connections:
- r"""Create new and manage existing Sync for Commerce companies using the Sync flow UI."""
+ r"""Create new and manage existing Sync for Commerce connections using the Sync flow UI."""
sdk_configuration: SDKConfiguration
def __init__(self, sdk_config: SDKConfiguration) -> None:
@@ -31,9 +31,13 @@ def create(self, request: operations.CreateConnectionRequest, retries: Optional[
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('POST', url, data=data, files=form, headers=headers)
@@ -64,8 +68,8 @@ def do_request():
def get_sync_flow_url(self, request: operations.GetSyncFlowURLRequest, retries: Optional[utils.RetryConfig] = None) -> operations.GetSyncFlowURLResponse:
- r"""Retrieve sync flow url
- Get a URL for Sync Flow including a one time passcode.
+ r"""Start new sync flow
+ Create a new company and connections. Get a URL for Sync Flow, including a one time passcode.
"""
base_url = utils.template_url(*self.sdk_configuration.get_server_details())
@@ -77,9 +81,13 @@ def get_sync_flow_url(self, request: operations.GetSyncFlowURLRequest, retries:
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, params=query_params, headers=headers)
@@ -117,9 +125,13 @@ def list(self, request: operations.ListConnectionsRequest, retries: Optional[uti
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, params=query_params, headers=headers)
@@ -165,9 +177,13 @@ def update_authorization(self, request: operations.UpdateConnectionAuthorization
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('PUT', url, data=data, files=form, headers=headers)
@@ -207,9 +223,13 @@ def update_connection(self, request: operations.UpdateConnectionRequest, retries
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('PATCH', url, data=data, files=form, headers=headers)
diff --git a/sync-for-commerce/src/codatsynccommerce/integrations.py b/sync-for-commerce/src/codatsynccommerce/integrations.py
index 5a0fe493b..d3906d4bf 100755
--- a/sync-for-commerce/src/codatsynccommerce/integrations.py
+++ b/sync-for-commerce/src/codatsynccommerce/integrations.py
@@ -26,9 +26,13 @@ def get_branding(self, request: operations.GetIntegrationBrandingRequest, retrie
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -66,9 +70,13 @@ def list(self, request: operations.ListIntegrationsRequest, retries: Optional[ut
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, params=query_params, headers=headers)
diff --git a/sync-for-commerce/src/codatsynccommerce/models/operations/get_sync_status.py b/sync-for-commerce/src/codatsynccommerce/models/operations/get_sync_status.py
index ee6e48d51..fb32446a2 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/operations/get_sync_status.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/operations/get_sync_status.py
@@ -3,7 +3,8 @@
from __future__ import annotations
import dataclasses
import requests as requests_http
-from typing import Optional
+from ..shared import syncstatus as shared_syncstatus
+from typing import Any, Optional
@@ -19,6 +20,12 @@ class GetSyncStatusRequest:
class GetSyncStatusResponse:
content_type: str = dataclasses.field()
status_code: int = dataclasses.field()
+ bad_request: Optional[Any] = dataclasses.field(default=None)
+ r"""Bad Request"""
+ not_found: Optional[Any] = dataclasses.field(default=None)
+ r"""Not Found"""
raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
+ sync_status: Optional[shared_syncstatus.SyncStatus] = dataclasses.field(default=None)
+ r"""Success"""
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/__init__.py b/sync-for-commerce/src/codatsynccommerce/models/shared/__init__.py
index 92dde9134..c3ad58330 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/__init__.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/__init__.py
@@ -17,7 +17,6 @@
from .dataconnectionerror import *
from .dataconnectionstatus import *
from .datatypefeature import *
-from .daterange import *
from .errormessage import *
from .featurestate import *
from .featuretype import *
@@ -45,6 +44,7 @@
from .supportedfeature import *
from .syncflowurl import *
from .syncrange import *
+from .syncstatus import *
from .syncsummary import *
from .synctolatestargs import *
from .taxrateamount import *
@@ -52,4 +52,4 @@
from .updateconnection import *
from .visibleaccounts import *
-__all__ = ["AccountOption","Branding","BrandingButton","BrandingImage","BrandingLogo","Companies","Company","CompanySyncStatus","ConfigAccount","Configuration","Connection","ConnectionSourceType","Connections","CreateCompany","Customer","DataConnectionError","DataConnectionStatus","DataTypeFeature","DataTypeFeatureDataType","DateRange","ErrorMessage","FeatureState","FeatureType","Fees","FeesSupplier","Grouping","GroupingLevels","GroupingPeriod","HalRef","ImageReference","Integration","Integrations","InvoiceLevelSelection","InvoiceLineLevelSelection","InvoiceStatus","Links","Localization","NewPayments","NewTaxRates","Option","Payments","Sales","Security","SourceType","SupportedFeature","SyncFlowURL","SyncRange","SyncRangeDateRange","SyncSummary","SyncToLatestArgs","TaxRateAmount","TaxRateMapping","UpdateConnection","VisibleAccounts"]
+__all__ = ["AccountOption","Branding","BrandingButton","BrandingImage","BrandingLogo","Companies","Company","CompanySyncStatus","ConfigAccount","Configuration","Connection","ConnectionSourceType","Connections","CreateCompany","Customer","DataConnectionError","DataConnectionStatus","DataTypeFeature","DataTypeFeatureDataTypes","ErrorMessage","FeatureState","FeatureType","Fees","FeesSupplier","Grouping","GroupingLevels","GroupingPeriod","HalRef","ImageReference","Integration","Integrations","InvoiceLevelSelection","InvoiceLineLevelSelection","InvoiceStatus","Links","Localization","NewPayments","NewTaxRates","Option","Payments","Sales","Security","SourceType","SupportedFeature","SyncFlowURL","SyncRange","SyncRangeDateRange","SyncStatus","SyncSummary","SyncSummarySyncDateRangeUtc","SyncToLatestArgs","TaxRateAmount","TaxRateMapping","UpdateConnection","VisibleAccounts"]
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/branding.py b/sync-for-commerce/src/codatsynccommerce/models/shared/branding.py
index afc39ec11..0231d9446 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/branding.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/branding.py
@@ -13,7 +13,6 @@
@dataclasses.dataclass
class Branding:
- r"""Success"""
button: Optional[shared_brandingbutton.BrandingButton] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('button'), 'exclude': lambda f: f is None }})
r"""Button branding references."""
logo: Optional[shared_brandinglogo.BrandingLogo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('logo'), 'exclude': lambda f: f is None }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/companies.py b/sync-for-commerce/src/codatsynccommerce/models/shared/companies.py
index 64bc8dbd1..9eb74e0da 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/companies.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/companies.py
@@ -13,7 +13,6 @@
@dataclasses.dataclass
class Companies:
- r"""Success"""
links: shared_links.Links = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('_links') }})
page_number: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageNumber') }})
page_size: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageSize') }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/companysyncstatus.py b/sync-for-commerce/src/codatsynccommerce/models/shared/companysyncstatus.py
index 4408ec369..d2a9ddb37 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/companysyncstatus.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/companysyncstatus.py
@@ -11,7 +11,6 @@
@dataclasses.dataclass
class CompanySyncStatus:
- r"""Success"""
company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }})
r"""Unique identifier for your SMB in Codat."""
data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataPushed'), 'exclude': lambda f: f is None }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/configuration.py b/sync-for-commerce/src/codatsynccommerce/models/shared/configuration.py
index c891e2d09..a6841359a 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/configuration.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/configuration.py
@@ -15,7 +15,6 @@
@dataclasses.dataclass
class Configuration:
- r"""Success"""
fees: Optional[shared_fees.Fees] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('fees'), 'exclude': lambda f: f is None }})
new_payments: Optional[shared_newpayments.NewPayments] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('newPayments'), 'exclude': lambda f: f is None }})
payments: Optional[shared_payments.Payments] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('payments'), 'exclude': lambda f: f is None }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/connections.py b/sync-for-commerce/src/codatsynccommerce/models/shared/connections.py
index da2dc2774..a0b61c196 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/connections.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/connections.py
@@ -13,7 +13,6 @@
@dataclasses.dataclass
class Connections:
- r"""OK"""
links: shared_links.Links = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('_links') }})
page_number: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageNumber') }})
page_size: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageSize') }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/createcompany.py b/sync-for-commerce/src/codatsynccommerce/models/shared/createcompany.py
index 2b688faec..105191212 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/createcompany.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/createcompany.py
@@ -4,6 +4,7 @@
import dataclasses
from codatsynccommerce import utils
from dataclasses_json import Undefined, dataclass_json
+from typing import Optional
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -11,6 +12,8 @@
@dataclasses.dataclass
class CreateCompany:
name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name') }})
- r"""Name of the company in Codat with a partner-commerce data connection."""
+ r"""Name of company being connected."""
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ r"""Additional information about the company. This can be used to store foreign IDs, references, etc."""
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/datatypefeature.py b/sync-for-commerce/src/codatsynccommerce/models/shared/datatypefeature.py
index e245cd348..712bec761 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/datatypefeature.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/datatypefeature.py
@@ -8,7 +8,7 @@
from enum import Enum
from typing import Optional
-class DataTypeFeatureDataType(str, Enum):
+class DataTypeFeatureDataTypes(str, Enum):
r"""Available Data types"""
ACCOUNT_TRANSACTIONS = 'accountTransactions'
BALANCE_SHEET = 'balanceSheet'
@@ -60,7 +60,7 @@ class DataTypeFeatureDataType(str, Enum):
class DataTypeFeature:
r"""Describes support for a given datatype and associated operations"""
supported_features: list[shared_supportedfeature.SupportedFeature] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('supportedFeatures') }})
- data_type: Optional[DataTypeFeatureDataType] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataType'), 'exclude': lambda f: f is None }})
+ data_type: Optional[DataTypeFeatureDataTypes] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataType'), 'exclude': lambda f: f is None }})
r"""Available Data types"""
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/daterange.py b/sync-for-commerce/src/codatsynccommerce/models/shared/daterange.py
deleted file mode 100755
index d67187afe..000000000
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/daterange.py
+++ /dev/null
@@ -1,57 +0,0 @@
-"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
-
-from __future__ import annotations
-import dataclasses
-from codatsynccommerce import utils
-from dataclasses_json import Undefined, dataclass_json
-from typing import Optional
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-
-@dataclasses.dataclass
-class DateRange:
- finish: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('finish'), 'exclude': lambda f: f is None }})
- r"""In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
-
- ```
- 2020-10-08T22:40:50Z
- 2021-01-01T00:00:00
- ```
-
-
-
- When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
-
- - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- - Unqualified local time: `2021-11-15T01:00:00`
- - UTC time offsets: `2021-11-15T01:00:00-05:00`
-
- > Time zones
- >
- > Not all dates from Codat will contain information about time zones.
- > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
- """
- start: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('start'), 'exclude': lambda f: f is None }})
- r"""In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
-
- ```
- 2020-10-08T22:40:50Z
- 2021-01-01T00:00:00
- ```
-
-
-
- When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
-
- - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- - Unqualified local time: `2021-11-15T01:00:00`
- - UTC time offsets: `2021-11-15T01:00:00-05:00`
-
- > Time zones
- >
- > Not all dates from Codat will contain information about time zones.
- > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
- """
-
-
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/errormessage.py b/sync-for-commerce/src/codatsynccommerce/models/shared/errormessage.py
index 73593c1f2..93e9f616e 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/errormessage.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/errormessage.py
@@ -11,7 +11,6 @@
@dataclasses.dataclass
class ErrorMessage:
- r"""Your `query` parameter was not correctly formed"""
can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('canBeRetried'), 'exclude': lambda f: f is None }})
correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('correlationId'), 'exclude': lambda f: f is None }})
detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('detailedErrorCode'), 'exclude': lambda f: f is None }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/integrations.py b/sync-for-commerce/src/codatsynccommerce/models/shared/integrations.py
index 4bb861a4f..eaab607a0 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/integrations.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/integrations.py
@@ -13,7 +13,6 @@
@dataclasses.dataclass
class Integrations:
- r"""Success"""
links: shared_links.Links = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('_links') }})
page_number: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageNumber') }})
page_size: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageSize') }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/syncflowurl.py b/sync-for-commerce/src/codatsynccommerce/models/shared/syncflowurl.py
index 5f45ad00c..9ad763321 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/syncflowurl.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/syncflowurl.py
@@ -11,7 +11,6 @@
@dataclasses.dataclass
class SyncFlowURL:
- r"""Success"""
url: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('url'), 'exclude': lambda f: f is None }})
r"""Sync flow URL."""
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/syncstatus.py b/sync-for-commerce/src/codatsynccommerce/models/shared/syncstatus.py
new file mode 100755
index 000000000..bb842ec24
--- /dev/null
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/syncstatus.py
@@ -0,0 +1,55 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from ..shared import connection as shared_connection
+from codatsynccommerce import utils
+from dataclasses_json import Undefined, dataclass_json
+from typing import Any, Optional
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+
+@dataclasses.dataclass
+class SyncStatus:
+ r"""The status of syncing for a company and its connections."""
+ commerce_sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('commerceSyncId'), 'exclude': lambda f: f is None }})
+ r"""Unique identifier for the sync in Codat."""
+ company_id: Optional[Any] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }})
+ data_connections: Optional[list[shared_connection.Connection]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataConnections'), 'exclude': lambda f: f is None }})
+ r"""Array of containing objects data connection information for the company."""
+ data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataPushed'), 'exclude': lambda f: f is None }})
+ r"""Boolean indicator for data being pushed during a sync operation."""
+ error_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errorMessage'), 'exclude': lambda f: f is None }})
+ r"""Friendly error message for the sync operation."""
+ sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }})
+ r"""Exception message for the sync operation."""
+ sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncId'), 'exclude': lambda f: f is None }})
+ r"""Unique identifier for the sync in Codat."""
+ sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatus'), 'exclude': lambda f: f is None }})
+ r"""Status of the sync of the company data. This is linked to status code."""
+ sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatusCode'), 'exclude': lambda f: f is None }})
+ r"""Numerical status code sync of the company data."""
+ sync_utc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncUtc'), 'exclude': lambda f: f is None }})
+ r"""In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
+
+ ```
+ 2020-10-08T22:40:50Z
+ 2021-01-01T00:00:00
+ ```
+
+
+
+ When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
+
+ - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
+ - Unqualified local time: `2021-11-15T01:00:00`
+ - UTC time offsets: `2021-11-15T01:00:00-05:00`
+
+ > Time zones
+ >
+ > Not all dates from Codat will contain information about time zones.
+ > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
+ """
+
+
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/syncsummary.py b/sync-for-commerce/src/codatsynccommerce/models/shared/syncsummary.py
index 86c1567ac..26d5069ba 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/syncsummary.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/syncsummary.py
@@ -3,17 +3,65 @@
from __future__ import annotations
import dataclasses
from ..shared import connection as shared_connection
-from ..shared import daterange as shared_daterange
from codatsynccommerce import utils
from dataclasses_json import Undefined, dataclass_json
from typing import Optional
+@dataclass_json(undefined=Undefined.EXCLUDE)
+
+@dataclasses.dataclass
+class SyncSummarySyncDateRangeUtc:
+ finish: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('finish'), 'exclude': lambda f: f is None }})
+ r"""In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
+
+ ```
+ 2020-10-08T22:40:50Z
+ 2021-01-01T00:00:00
+ ```
+
+
+
+ When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
+
+ - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
+ - Unqualified local time: `2021-11-15T01:00:00`
+ - UTC time offsets: `2021-11-15T01:00:00-05:00`
+
+ > Time zones
+ >
+ > Not all dates from Codat will contain information about time zones.
+ > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
+ """
+ start: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('start'), 'exclude': lambda f: f is None }})
+ r"""In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
+
+ ```
+ 2020-10-08T22:40:50Z
+ 2021-01-01T00:00:00
+ ```
+
+
+
+ When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
+
+ - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
+ - Unqualified local time: `2021-11-15T01:00:00`
+ - UTC time offsets: `2021-11-15T01:00:00-05:00`
+
+ > Time zones
+ >
+ > Not all dates from Codat will contain information about time zones.
+ > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
+ """
+
+
+
+
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class SyncSummary:
- r"""Success"""
commerce_sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('commerceSyncId'), 'exclude': lambda f: f is None }})
r"""Unique identifier for the sync in Codat."""
company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }})
@@ -24,7 +72,7 @@ class SyncSummary:
r"""Boolean indicator for data being pushed during a sync operation."""
error_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errorMessage'), 'exclude': lambda f: f is None }})
r"""Friendly error message for the sync operation."""
- sync_date_range_utc: Optional[shared_daterange.DateRange] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncDateRangeUtc'), 'exclude': lambda f: f is None }})
+ sync_date_range_utc: Optional[SyncSummarySyncDateRangeUtc] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncDateRangeUtc'), 'exclude': lambda f: f is None }})
sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }})
r"""Exception message for the sync operation."""
sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatus'), 'exclude': lambda f: f is None }})
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/updateconnection.py b/sync-for-commerce/src/codatsynccommerce/models/shared/updateconnection.py
index 4b7002256..77b5b6edb 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/updateconnection.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/updateconnection.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ..shared import dataconnectionstatus as shared_dataconnectionstatus
from codatsynccommerce import utils
from dataclasses_json import Undefined, dataclass_json
from typing import Optional
@@ -11,7 +12,7 @@
@dataclasses.dataclass
class UpdateConnection:
- status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
+ status: Optional[shared_dataconnectionstatus.DataConnectionStatus] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
r"""The current authorization status of the data connection."""
diff --git a/sync-for-commerce/src/codatsynccommerce/models/shared/visibleaccounts.py b/sync-for-commerce/src/codatsynccommerce/models/shared/visibleaccounts.py
index 90a08d8f6..2f1edbd15 100755
--- a/sync-for-commerce/src/codatsynccommerce/models/shared/visibleaccounts.py
+++ b/sync-for-commerce/src/codatsynccommerce/models/shared/visibleaccounts.py
@@ -11,7 +11,6 @@
@dataclasses.dataclass
class VisibleAccounts:
- r"""Success"""
visible_accounts: Optional[list[str]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('visibleAccounts'), 'exclude': lambda f: f is None }})
r"""Visible accounts on sync flow."""
diff --git a/sync-for-commerce/src/codatsynccommerce/sdk.py b/sync-for-commerce/src/codatsynccommerce/sdk.py
index 970a99fcd..cd6f2d4b1 100755
--- a/sync-for-commerce/src/codatsynccommerce/sdk.py
+++ b/sync-for-commerce/src/codatsynccommerce/sdk.py
@@ -6,28 +6,28 @@
from .integrations import Integrations
from .sdkconfiguration import SDKConfiguration
from .sync import Sync
-from .sync_flow_preferences import SyncFlowPreferences
+from .sync_flow_settings import SyncFlowSettings
from codatsynccommerce import utils
from codatsynccommerce.models import shared
class CodatSyncCommerce:
r"""Sync for Commerce: The API for Sync for Commerce.
- Sync for Commerce is an API and a set of supporting tools built to enable e-commerce and point of sale platforms to provide high-quality integrations with numerous accounting platform through standardized API, seamlessly transforming business sale's data into accounting artefacts.
+ Sync for Commerce automatically replicates and reconciles sales data from a merchant’s source PoS, Payments, and eCommerce systems into their accounting software. This eliminates manual processing by merchants and transforms their ability to run and grow their business.
[Read More...](https://docs.codat.io/commerce/overview)
-
+ Not seeing the endpoints you're expecting? We've [reorganized our products](https://docs.codat.io/updates/230901-new-products), and you may be using a [different version of Sync for Commerce](https://docs.codat.io/sync-for-commerce-v1-api#/).
"""
advanced_controls: AdvancedControls
r"""Advanced company management and sync preferences."""
connections: Connections
- r"""Create new and manage existing Sync for Commerce companies using the Sync flow UI."""
+ r"""Create new and manage existing Sync for Commerce connections using the Sync flow UI."""
integrations: Integrations
r"""View useful information about codat's integrations."""
sync: Sync
r"""Initiate and monitor the sync of company data into accounting software."""
- sync_flow_preferences: SyncFlowPreferences
+ sync_flow_settings: SyncFlowSettings
r"""Configure preferences for any given Sync for Commerce company using sync flow."""
sdk_configuration: SDKConfiguration
@@ -37,7 +37,8 @@ def __init__(self,
server_idx: int = None,
server_url: str = None,
url_params: dict[str, str] = None,
- client: requests_http.Session = None
+ client: requests_http.Session = None,
+ retry_config: utils.RetryConfig = None
) -> None:
"""Instantiates the SDK configuring it with the provided parameters.
@@ -50,7 +51,9 @@ def __init__(self,
:param url_params: Parameters to optionally template the server URL with
:type url_params: dict[str, str]
:param client: The requests.Session HTTP client to use for all operations
- :type client: requests_http.Session
+ :type client: requests_http.Session
+ :param retry_config: The utils.RetryConfig to use globally
+ :type retry_config: utils.RetryConfig
"""
if client is None:
client = requests_http.Session()
@@ -61,7 +64,7 @@ def __init__(self,
if url_params is not None:
server_url = utils.template_url(server_url, url_params)
- self.sdk_configuration = SDKConfiguration(client, security_client, server_url, server_idx)
+ self.sdk_configuration = SDKConfiguration(client, security_client, server_url, server_idx, retry_config=retry_config)
self._init_sdks()
@@ -70,5 +73,5 @@ def _init_sdks(self):
self.connections = Connections(self.sdk_configuration)
self.integrations = Integrations(self.sdk_configuration)
self.sync = Sync(self.sdk_configuration)
- self.sync_flow_preferences = SyncFlowPreferences(self.sdk_configuration)
+ self.sync_flow_settings = SyncFlowSettings(self.sdk_configuration)
\ No newline at end of file
diff --git a/sync-for-commerce/src/codatsynccommerce/sdkconfiguration.py b/sync-for-commerce/src/codatsynccommerce/sdkconfiguration.py
index f7810edd4..c9557f9b6 100755
--- a/sync-for-commerce/src/codatsynccommerce/sdkconfiguration.py
+++ b/sync-for-commerce/src/codatsynccommerce/sdkconfiguration.py
@@ -3,6 +3,8 @@
import requests
from dataclasses import dataclass
+from .utils.retries import RetryConfig
+
SERVERS = [
'https://api.codat.io',
@@ -18,8 +20,9 @@ class SDKConfiguration:
server_idx: int = 0
language: str = 'python'
openapi_doc_version: str = '1.1'
- sdk_version: str = '0.31.0'
- gen_version: str = '2.91.4'
+ sdk_version: str = '1.1.0'
+ gen_version: str = '2.108.3'
+ retry_config: RetryConfig = None
def get_server_details(self) -> tuple[str, dict[str, str]]:
if self.server_url:
diff --git a/sync-for-commerce/src/codatsynccommerce/sync.py b/sync-for-commerce/src/codatsynccommerce/sync.py
index 970a1dd5c..2b8e8e9c2 100755
--- a/sync-for-commerce/src/codatsynccommerce/sync.py
+++ b/sync-for-commerce/src/codatsynccommerce/sync.py
@@ -3,7 +3,7 @@
from .sdkconfiguration import SDKConfiguration
from codatsynccommerce import utils
from codatsynccommerce.models import errors, operations, shared
-from typing import Optional
+from typing import Any, Optional
class Sync:
r"""Initiate and monitor the sync of company data into accounting software."""
@@ -14,21 +14,25 @@ def __init__(self, sdk_config: SDKConfiguration) -> None:
def get(self, request: operations.GetSyncByIDRequest, retries: Optional[utils.RetryConfig] = None) -> operations.GetSyncByIDResponse:
- r"""Get Sync status
+ r"""Get sync status
Get the sync status for a specified sync
"""
base_url = utils.template_url(*self.sdk_configuration.get_server_details())
- url = utils.generate_url(operations.GetSyncByIDRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/status', request)
+ url = utils.generate_url(operations.GetSyncByIDRequest, base_url, '/companies/{companyId}/sync/commerce/syncs/{syncId}/status', request)
headers = {}
headers['Accept'] = 'application/json'
headers['user-agent'] = f'speakeasy-sdk/{self.sdk_configuration.language} {self.sdk_configuration.sdk_version} {self.sdk_configuration.gen_version} {self.sdk_configuration.openapi_doc_version}'
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -71,9 +75,13 @@ def get_last_successful_sync(self, request: operations.GetLastSuccessfulSyncRequ
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -116,9 +124,13 @@ def get_latest_sync(self, request: operations.GetLatestSyncRequest, retries: Opt
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -156,14 +168,18 @@ def get_status(self, request: operations.GetSyncStatusRequest, retries: Optional
url = utils.generate_url(operations.GetSyncStatusRequest, base_url, '/meta/companies/{companyId}/sync/commerce/status', request)
headers = {}
- headers['Accept'] = '*/*'
+ headers['Accept'] = 'application/json'
headers['user-agent'] = f'speakeasy-sdk/{self.sdk_configuration.language} {self.sdk_configuration.sdk_version} {self.sdk_configuration.gen_version} {self.sdk_configuration.openapi_doc_version}'
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -177,6 +193,24 @@ def do_request():
res = operations.GetSyncStatusResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[shared.SyncStatus])
+ res.sync_status = out
+ else:
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 400:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[Any])
+ res.bad_request = out
+ else:
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 404:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[Any])
+ res.not_found = out
+ else:
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
return res
@@ -194,9 +228,13 @@ def list(self, request: operations.ListSyncsRequest, retries: Optional[utils.Ret
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -242,9 +280,13 @@ def request(self, request: operations.RequestSyncRequest, retries: Optional[util
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('POST', url, data=data, files=form, headers=headers)
@@ -284,9 +326,13 @@ def request_for_date_range(self, request: operations.RequestSyncForDateRangeRequ
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('POST', url, data=data, files=form, headers=headers)
diff --git a/sync-for-commerce/src/codatsynccommerce/sync_flow_preferences.py b/sync-for-commerce/src/codatsynccommerce/sync_flow_settings.py
similarity index 87%
rename from sync-for-commerce/src/codatsynccommerce/sync_flow_preferences.py
rename to sync-for-commerce/src/codatsynccommerce/sync_flow_settings.py
index a5b903b92..e9e36ce25 100755
--- a/sync-for-commerce/src/codatsynccommerce/sync_flow_preferences.py
+++ b/sync-for-commerce/src/codatsynccommerce/sync_flow_settings.py
@@ -5,7 +5,7 @@
from codatsynccommerce.models import errors, operations, shared
from typing import Optional
-class SyncFlowPreferences:
+class SyncFlowSettings:
r"""Configure preferences for any given Sync for Commerce company using sync flow."""
sdk_configuration: SDKConfiguration
@@ -26,9 +26,13 @@ def get_config_text_sync_flow(self, retries: Optional[utils.RetryConfig] = None)
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -65,9 +69,13 @@ def get_visible_accounts(self, request: operations.GetVisibleAccountsRequest, re
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('GET', url, headers=headers)
@@ -107,9 +115,13 @@ def update_config_text_sync_flow(self, request: dict[str, shared.Localization],
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('PATCH', url, data=data, files=form, headers=headers)
@@ -149,9 +161,13 @@ def update_visible_accounts_sync_flow(self, request: operations.UpdateVisibleAcc
client = self.sdk_configuration.security_client
+ global_retry_config = self.sdk_configuration.retry_config
retry_config = retries
if retry_config is None:
- retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
+ if global_retry_config:
+ retry_config = global_retry_config
+ else:
+ retry_config = utils.RetryConfig('backoff', utils.BackoffStrategy(500, 60000, 1.5, 3600000), True)
def do_request():
return client.request('POST', url, data=data, files=form, headers=headers)
diff --git a/sync-for-commerce/src/codatsynccommerce/utils/utils.py b/sync-for-commerce/src/codatsynccommerce/utils/utils.py
index ea9792d0d..05eafba6c 100755
--- a/sync-for-commerce/src/codatsynccommerce/utils/utils.py
+++ b/sync-for-commerce/src/codatsynccommerce/utils/utils.py
@@ -5,6 +5,7 @@
import re
from dataclasses import Field, dataclass, fields, is_dataclass, make_dataclass
from datetime import date, datetime
+from decimal import Decimal
from email.message import Message
from enum import Enum
from typing import Any, Callable, Optional, Tuple, Union, get_args, get_origin
@@ -112,7 +113,8 @@ def _parse_security_scheme_value(client: SecurityClient, scheme_metadata: dict,
client.client.headers[header_name] = value
elif scheme_type == 'http':
if sub_type == 'bearer':
- client.client.headers[header_name] = value.lower().startswith('bearer ') and value or f'Bearer {value}'
+ client.client.headers[header_name] = value.lower().startswith(
+ 'bearer ') and value or f'Bearer {value}'
else:
raise Exception('not supported')
else:
@@ -192,7 +194,7 @@ def generate_url(clazz: type, server_url: str, path: str, path_params: dataclass
f"{pp_key},{_val_to_string(param[pp_key])}")
path = path.replace(
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
- elif not isinstance(param, (str, int, float, complex, bool)):
+ elif not isinstance(param, (str, int, float, complex, bool, Decimal)):
pp_vals: list[str] = []
param_fields: Tuple[Field, ...] = fields(param)
for param_field in param_fields:
@@ -235,7 +237,7 @@ def template_url(url_with_params: str, params: dict[str, str]) -> str:
def get_query_params(clazz: type, query_params: dataclass, gbls: dict[str, dict[str, dict[str, Any]]] = None) -> dict[
- str, list[str]]:
+ str, list[str]]:
params: dict[str, list[str]] = {}
param_fields: Tuple[Field, ...] = fields(clazz)
@@ -377,7 +379,7 @@ def _get_query_param_field_name(obj_field: Field) -> str:
def _get_delimited_query_params(metadata: dict, field_name: str, obj: any, delimiter: str) -> dict[
- str, list[str]]:
+ str, list[str]]:
return _populate_form(field_name, metadata.get("explode", True), obj, _get_query_param_field_name, delimiter)
@@ -391,9 +393,9 @@ def _get_delimited_query_params(metadata: dict, field_name: str, obj: any, delim
def serialize_request_body(request: dataclass, request_field_name: str, serialization_method: str) -> Tuple[
- str, any, any]:
+ str, any, any]:
if request is None:
- return None, None, None, None
+ return None, None, None
if not is_dataclass(request) or not hasattr(request, request_field_name):
return serialize_content_type(request_field_name, SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method],
@@ -486,7 +488,7 @@ def serialize_multipart_form(media_type: str, request: dataclass) -> Tuple[str,
def serialize_dict(original: dict, explode: bool, field_name, existing: Optional[dict[str, list[str]]]) -> dict[
- str, list[str]]:
+ str, list[str]]:
if existing is None:
existing = []
@@ -604,7 +606,8 @@ def _populate_form(field_name: str, explode: boolean, obj: any, get_field_name_f
items.append(_val_to_string(value))
if len(items) > 0:
- params[field_name] = [delimiter.join([str(item) for item in items])]
+ params[field_name] = [delimiter.join(
+ [str(item) for item in items])]
else:
params[field_name] = [_val_to_string(obj)]
@@ -681,7 +684,8 @@ def unmarshal_json(data, typ):
try:
out = unmarshal.from_dict({"res": json_dict})
except AttributeError as attr_err:
- raise AttributeError(f'unable to unmarshal {data} as {typ}') from attr_err
+ raise AttributeError(
+ f'unable to unmarshal {data} as {typ}') from attr_err
return out.res
@@ -734,6 +738,36 @@ def datefromisoformat(date_str: str):
return dateutil.parser.parse(date_str).date()
+def bigintencoder(optional: bool):
+ def bigintencode(val: int):
+ if optional and val is None:
+ return None
+ return str(val)
+
+ return bigintencode
+
+
+def bigintdecoder(val):
+ return int(val)
+
+
+def decimalencoder(optional: bool, as_str: bool):
+ def decimalencode(val: Decimal):
+ if optional and val is None:
+ return None
+
+ if as_str:
+ return str(val)
+
+ return float(val)
+
+ return decimalencode
+
+
+def decimaldecoder(val):
+ return Decimal(str(val))
+
+
def get_field_name(name):
def override(_, _field_name=name):
return _field_name