diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2986381fe..fe10556ce 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.465.1 +speakeasyVersion: 1.469.10 sources: accounting-source: sourceNamespace: accounting-source @@ -16,11 +16,11 @@ sources: - main bank-feeds-source: sourceNamespace: bank-feeds-source - sourceRevisionDigest: sha256:9eca815edc06e448a2aa35c52eef65c564c4433edc25bb0e40c24c1ab73782af - sourceBlobDigest: sha256:17e9963cca0e2088a998951d41b1bf78ea9574aebe1c9896caf253d88fd13d13 + sourceRevisionDigest: sha256:05a608be985dc9deb12eeb3a747ef0ae4cd1690b42852f97e61c7a43881748a7 + sourceBlobDigest: sha256:cffec1fdf5b4aa33774403da44fc8cfb24f5f59d507b1e83d73b1b28f8efa50e tags: - latest - - speakeasy-sdk-regen-1736353877 + - speakeasy-sdk-regen-1737391437 - 3.0.0 banking-source: sourceNamespace: banking-source @@ -111,10 +111,10 @@ targets: bank-feeds-library: source: bank-feeds-source sourceNamespace: bank-feeds-source - sourceRevisionDigest: sha256:9eca815edc06e448a2aa35c52eef65c564c4433edc25bb0e40c24c1ab73782af - sourceBlobDigest: sha256:17e9963cca0e2088a998951d41b1bf78ea9574aebe1c9896caf253d88fd13d13 + sourceRevisionDigest: sha256:05a608be985dc9deb12eeb3a747ef0ae4cd1690b42852f97e61c7a43881748a7 + sourceBlobDigest: sha256:cffec1fdf5b4aa33774403da44fc8cfb24f5f59d507b1e83d73b1b28f8efa50e codeSamplesNamespace: bank-feeds-source-python-code-samples - codeSamplesRevisionDigest: sha256:6636b9b97c29f9e69eb08701825b921d5aa86d7f1db1692dbe6b6ec443fe6e3f + codeSamplesRevisionDigest: sha256:769f019b1d6e0ca253780d1cec262d51ccd8297fa6a53d9bb1e28fd6b2ae11c1 banking-library: source: banking-source sourceNamespace: banking-source diff --git a/bank-feeds/.speakeasy/gen.lock b/bank-feeds/.speakeasy/gen.lock index c797c8b34..3c6497a69 100755 --- a/bank-feeds/.speakeasy/gen.lock +++ b/bank-feeds/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 07093ad1-99d8-4bbd-a29c-a624e1b0e25a management: - docChecksum: 79e809b480b4e698207c2d368071acb2 + docChecksum: 623669f3779bb61f52974a7b9e441353 docVersion: 3.0.0 - speakeasyVersion: 1.465.1 - generationVersion: 2.488.4 - releaseVersion: 10.1.1 - configChecksum: 86eab2ee09da4cd960ab0f925216ea6d + speakeasyVersion: 1.469.10 + generationVersion: 2.493.31 + releaseVersion: 10.2.0 + configChecksum: 96f1be907cafb97a8ad27c9831a5412e repoURL: https://github.com/codatio/client-sdk-python.git repoSubDirectory: bank-feeds installationURL: https://github.com/codatio/client-sdk-python.git#subdirectory=bank-feeds @@ -15,13 +15,13 @@ features: python: additionalDependencies: 1.0.0 constsAndDefaults: 1.0.5 - core: 5.7.6 + core: 5.10.3 decimal: 1.0.0 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 enumUnions: 0.1.0 envVarSecurityUsage: 0.3.2 - examples: 3.0.0 + examples: 3.0.1 globalSecurity: 3.0.2 globalSecurityCallbacks: 1.0.0 globalServerURLs: 3.1.0 @@ -40,7 +40,6 @@ generatedFiles: - .gitattributes - .python-version - .vscode/settings.json - - CONTRIBUTING.md - USAGE.md - docs/models/errors/errormessage.md - docs/models/operations/createbankaccountmappingrequest.md @@ -155,11 +154,13 @@ generatedFiles: - docs/models/shared/security.md - docs/models/shared/sourceaccount.md - docs/models/shared/sourceaccountbatchcreateresponse.md + - docs/models/shared/sourceaccountbatchcreateresult.md - docs/models/shared/sourceaccountbatcherrorresponse.md - docs/models/shared/sourceaccountprototype.md - docs/models/shared/sourceaccountv2.md - docs/models/shared/sourceaccountv2accounttype.md - docs/models/shared/sourceaccountv2batchcreateresponse.md + - docs/models/shared/sourceaccountv2batchcreateresult.md - docs/models/shared/sourceaccountv2prototype.md - docs/models/shared/sourceaccountv2status.md - docs/models/shared/sourceaccountwebhook.md @@ -299,10 +300,12 @@ generatedFiles: - src/codat_bankfeeds/models/shared/security.py - src/codat_bankfeeds/models/shared/sourceaccount.py - src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresponse.py + - src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresult.py - src/codat_bankfeeds/models/shared/sourceaccountbatcherrorresponse.py - src/codat_bankfeeds/models/shared/sourceaccountprototype.py - src/codat_bankfeeds/models/shared/sourceaccountv2.py - src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresponse.py + - src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresult.py - src/codat_bankfeeds/models/shared/sourceaccountv2prototype.py - src/codat_bankfeeds/models/shared/sourceaccountwebhook.py - src/codat_bankfeeds/models/shared/sourceaccountwebhookpayload.py @@ -336,40 +339,57 @@ generatedFiles: - src/codat_bankfeeds/utils/url.py - src/codat_bankfeeds/utils/values.py examples: + Client rate limit reached: + speakeasy-default-client-rate-limit-reached: + requestBody: + application/json: {"AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", "ClientName": "Bank of Dave", "Data": {"DailyQuota": 1000, "ExpiresUtc": "2022-10-23T00:00:00Z"}, "Message": "The current daily rate limit quota of 1000 requests for bae71d36-ff47-420a-b4a6-f8c9ddf41140 has been reached.", "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "RuleType": "Rate Limit Reached"} + Client rate limit reset: + speakeasy-default-client-rate-limit-reset: + requestBody: + application/json: {"AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", "ClientName": "Bank of Dave", "Data": {"DailyQuota": 1000, "ExpiresUtc": "2022-10-23T00:00:00Z", "QuotaRemaining": 1000, "ResetReason": "The quota was reset because it is a new day."}, "Message": "The current daily rate limit quota for client 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e has been reset to 1000 requests.", "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "RuleType": "Rate Limit Reset"} + bankFeeds.sourceAccount.connected: + Connected: + requestBody: + application/json: {"eventType": "bankFeeds.sourceAccount.connected", "generatedDate": "2022-10-23T00:00:00Z", "id": "ba29118f-5406-4e59-b05c-ba307ca38d01", "payload": {"connectionId": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "referenceCompany": {"description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "links": {"portal": "https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary"}, "name": "Toft stores"}, "sourceAccount": {"accountName": "account-081", "accountNumber": "12345678", "balance": 99.99, "currency": "GBP", "id": "acc-002", "modifiedDate": "2023-01-09T14:14:14.105Z", "sortCode": "040004", "status": "pending"}}} + bankFeeds.sourceAccount.disconnected: + Disconnected: + requestBody: + application/json: {"eventType": "bankFeeds.sourceAccount.disconnected", "generatedDate": "2022-10-23T00:00:00Z", "id": "ba29118f-5406-4e59-b05c-ba307ca38d01", "payload": {"connectionId": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "referenceCompany": {"description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "links": {"portal": "https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary"}, "name": "Toft stores"}, "sourceAccount": {"accountName": "account-081", "accountNumber": "12345678", "balance": 99.99, "currency": "GBP", "id": "acc-002", "modifiedDate": "2023-01-09T14:14:14.105Z", "sortCode": "040004", "status": "pending"}}} + client.rateLimit.reached: + Reached: + requestBody: + application/json: {"eventType": "client.rateLimit.reached", "generatedDate": "2024-09-01T00:00:00Z", "id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b", "payload": {"dailyQuota": 12000, "expiryDate": "2024-09-01T12:14:14Z", "quotaRemaining": 0}} + client.rateLimit.reset: + Reset: + requestBody: + application/json: {"eventType": "client.rateLimit.reset", "generatedDate": "2024-09-01T00:00:00Z", "id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b", "payload": {"dailyQuota": 12000, "expiryDate": "2024-09-01T23:59:99Z", "quotaRemaining": 11993}} create-company: With no description: requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "name": "Technicalium"} + application/json: {"name": "Technicalium"} responses: "200": - application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": []} - "400": {} + application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": []} With a description: requestBody: application/json: {"description": "Technology services, including web and app design and development", "name": "Technicalium"} responses: "200": - application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "Technology services, including web and app design and development", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": []} - "400": {} - With a group: + application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "Technology services, including web and app design and development", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": []} + With a tag: requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "groups": [{"id": "d7a6c4b4-dc87-45f6-b803-62f466398680"}], "name": "Technicalium"} + application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} responses: "200": - application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0"} - "400": {} + application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": [], "tags": {"region": "us"}} Malformed query: requestBody: application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} - With a tag: - requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} - responses: - "200": - application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": [], "tags": {"region": "us"}} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} delete-company: Unauthorized: parameters: @@ -378,6 +398,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} get-company: Simple company: parameters: @@ -385,14 +407,21 @@ examples: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" responses: "200": - application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Toft stores holdings", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": []} - With groups: + application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "name": "Toft stores holdings", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": []} + Parent multi-entity company: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" responses: "200": - application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "My First Company", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0"} + application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "name": "Toft stores", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": [{"id": "c8d3af58-7011-47ce-b3f2-89faf300ef6d", "links": {"portal": "https://app.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/summary"}, "name": "Toft stores UK"}, {"id": "db94eddc-9212-4568-9b5c-3eab0e325913", "links": {"portal": "https://app.codat.io/companies/db94eddc-9212-4568-9b5c-3eab0e325913/summary"}, "name": "Toft stores US"}]} + Subsidiary multi-entity company: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + responses: + "200": + application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "id": "d5ab61b7-1ad0-46fd-9f9f-b6761047941e", "integrationId": "cc750323-5a47-4f28-8d8e-30fbbf2ce137", "integrationKey": "akxx", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/connections/d5ab61b7-1ad0-46fd-9f9f-b6761047941e/start", "platformName": "Oracle NetSuite", "sourceId": "9815b998-024d-4415-a40b-89903b2cad6f", "sourceType": "Accounting", "status": "Linked"}], "description": "", "id": "c8d3af58-7011-47ce-b3f2-89faf300ef6d", "name": "Toft stores UK", "redirect": "https://link.codat.io/company/c8d3af58-7011-47ce-b3f2-89faf300ef6d", "referenceParentCompany": {"id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "links": {"portal": "https://app.codat.io/companies/ab12c58d-a678-4ebf-a159-ae99e1807bd0/summary"}, "name": "Toft stores"}, "referenceSubsidiaryCompanies": []} Unauthorized: parameters: path: @@ -400,20 +429,25 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} - Parent multi-entity company: + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + get-company-access-token: + Simple company: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" responses: "200": - application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "name": "Toft stores", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "referenceSubsidiaryCompanies": [{"id": "c8d3af58-7011-47ce-b3f2-89faf300ef6d", "links": {"portal": "https://app.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/summary"}, "name": "Toft stores UK"}, {"id": "db94eddc-9212-4568-9b5c-3eab0e325913", "links": {"portal": "https://app.codat.io/companies/db94eddc-9212-4568-9b5c-3eab0e325913/summary"}, "name": "Toft stores US"}]} - Subsidiary multi-entity company: + application/json: {"accessToken": "string", "expiresIn": 86400, "tokenType": "Bearer"} + Unauthorized: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" responses: - "200": - application/json: {"created": "2022-11-10T10:45:18Z", "createdByUserName": "Dan Tzabar", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "id": "d5ab61b7-1ad0-46fd-9f9f-b6761047941e", "integrationId": "cc750323-5a47-4f28-8d8e-30fbbf2ce137", "integrationKey": "akxx", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/connections/d5ab61b7-1ad0-46fd-9f9f-b6761047941e/start", "platformName": "Oracle NetSuite", "sourceId": "9815b998-024d-4415-a40b-89903b2cad6f", "sourceType": "Accounting", "status": "Linked"}], "description": "", "id": "c8d3af58-7011-47ce-b3f2-89faf300ef6d", "name": "Toft stores UK", "redirect": "https://link.codat.io/company/c8d3af58-7011-47ce-b3f2-89faf300ef6d", "referenceParentCompany": {"id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "links": {"portal": "https://app.codat.io/companies/ab12c58d-a678-4ebf-a159-ae99e1807bd0/summary"}, "name": "Toft stores"}, "referenceSubsidiaryCompanies": []} + "401": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} list-companies: "": parameters: @@ -425,8 +459,9 @@ examples: tags: "region=uk && team=invoice-finance" responses: "200": - application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "results": [{"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739"}], "totalResults": 1} + application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "totalResults": 1} "400": {} + "500": {} One company: parameters: query: @@ -460,6 +495,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} Unresolved property: parameters: query: @@ -471,17 +508,20 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} - update-company: + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} + replace-company: Update name: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "name": "New Name"} + application/json: {"name": "New Name"} responses: "200": - application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} + application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} "401": {} + "500": {} Update description: parameters: path: @@ -490,8 +530,9 @@ examples: application/json: {"description": "Additional documents required", "name": "Same name"} responses: "200": - application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} + application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} "401": {} + "500": {} Unauthorized: parameters: path: @@ -501,6 +542,9 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + update-company: Update tags: parameters: path: @@ -511,6 +555,29 @@ examples: "200": application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} "401": {} + "500": {} + Update name: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + requestBody: + application/json: {"name": "New Name"} + responses: + "200": + application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} + "401": {} + "500": {} + Unauthorized: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + requestBody: + application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} + responses: + "401": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} create-connection: Connection: parameters: @@ -520,7 +587,7 @@ examples: application/json: {"platformKey": "gbol"} responses: "200": - application/json: {"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"} + application/json: {"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"} Unauthorized: parameters: path: @@ -530,6 +597,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} delete-connection: Unauthorized: parameters: @@ -539,6 +608,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} get-connection: Connection: parameters: @@ -547,7 +618,7 @@ examples: connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" responses: "200": - application/json: {"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"} + application/json: {"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"} Unauthorized: parameters: path: @@ -556,6 +627,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} list-connections: "": parameters: @@ -568,8 +641,9 @@ examples: orderBy: "-modifiedDate" responses: "200": - application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "results": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "totalResults": 1} + application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "totalResults": 1} "400": {} + "500": {} Connections: parameters: path: @@ -594,6 +668,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} Unresolved property: parameters: path: @@ -606,6 +682,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} unlink-connection: Example: parameters: @@ -616,8 +694,9 @@ examples: application/json: {"status": "Unlinked"} responses: "200": - application/json: {"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"} + application/json: {"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"} "401": {} + "500": {} Unauthorized: parameters: path: @@ -626,17 +705,9 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} create-bank-account-mapping: - Malformed query: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - requestBody: - application/json: {"sourceAccountId": "acc-002", "targetAccountId": "account-081"} - responses: - "400": - application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} Example: parameters: path: @@ -648,15 +719,20 @@ examples: "200": application/json: {"error": "A feed connection already exists to this account", "sourceAccountId": "acc-002", "status": "Failed", "targetAccountId": "account-081"} "400": {} - get-bank-account-mapping: - Unauthorized: + "500": {} + Malformed query: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + requestBody: + application/json: {"sourceAccountId": "acc-002", "targetAccountId": "account-081"} responses: - "401": - application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "400": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + get-bank-account-mapping: Example: parameters: path: @@ -665,26 +741,28 @@ examples: responses: "200": application/json: [{"sourceAccountId": "account-001", "sourceAccountName": "account-001", "sourceAccountNumber": "12345670", "sourceBalance": 99.99, "sourceCurrency": "GBP", "status": "pending", "targetAccountOptions": [{"accountNumber": "789", "id": "d21e25d6-98c5-4bfb-b469-105833bea3c8", "name": "Money Bank account", "sortCode": "123456"}, {"accountNumber": "99887766", "id": "d06ff4b2-e4f2-4681-9841-014bd008cdab", "name": "Bank of Dave account", "sortCode": "998866"}, {"accountNumber": "123456789", "id": "c8f252fc-84f3-4a8b-ace8-ae99f41a81ae", "name": "LuxLend account", "sortCode": "123456"}]}] - get-company-information: - Malformed query: + Unauthorized: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" responses: - "400": - application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} - create-source-account: + "401": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + get-company-information: Malformed query: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - requestBody: - application/json: {"accountInfo": {"accountOpenDate": "2022-10-23"}, "currency": "GBP", "modifiedDate": "2022-10-23T00:00:00Z"} responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + create-source-account: Version 2: parameters: path: @@ -696,6 +774,7 @@ examples: "200": application/json: {"accountInfo": {"accountOpenDate": "2023-05-06T00:00:00Z", "availableBalance": 10, "description": "account description 1", "nickname": "account 123"}, "accountName": "account-081", "accountNumber": "12345670", "accountType": "checking", "balance": 99.99, "currency": "GBP", "feedStartDate": "2024-05-01T00:00:00Z", "id": "acc-001", "modifiedDate": "2024-08-02T00:00:00.000Z", "routingInfo": {"bankCode": "21001088", "type": "bankcode"}, "status": "pending"} "400": {} + "500": {} Version 1: parameters: path: @@ -707,6 +786,32 @@ examples: "200": application/json: {"accountName": "account-095", "accountNumber": "12345671", "accountType": "Credit", "balance": 0, "currency": "USD", "id": "acc-003", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"} "400": {} + "500": {} + Malformed query: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + requestBody: + application/json: {"accountInfo": {"accountOpenDate": "2022-10-23"}, "currency": "GBP", "modifiedDate": "2022-10-23T00:00:00Z"} + responses: + "400": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + create-batch-source-account: + Malformed query: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + requestBody: + application/json: [{"accountName": "account-081", "accountNumber": "12345670", "accountType": "Credit", "balance": 99.99, "currency": "GBP", "id": "acc-002", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"}, {"accountName": "account-095", "accountNumber": "12345671", "accountType": "Credit", "balance": 0, "currency": "USD", "id": "acc-003", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"}] + responses: + "400": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} delete-source-account: Unauthorized: parameters: @@ -717,6 +822,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} delete-bank-feed-credentials: Unauthorized: parameters: @@ -726,15 +833,21 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} generate-credentials: Unauthorized: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + requestBody: + application/json: "x-file: example.file" responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} list-source-accounts: Unauthorized: parameters: @@ -744,6 +857,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} update-source-account: Malformed query: parameters: @@ -752,10 +867,12 @@ examples: connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" accountId: "7110701885" requestBody: - application/json: {"accountName": "account-095", "accountNumber": "12345671", "accountType": "Credit", "balance": 0, "currency": "USD", "feedStartDate": "2022-10-23T00:00:00Z", "id": "acc-003", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"} + application/json: {"accountName": "account-095", "accountNumber": "12345671", "accountType": "Credit", "balance": 0, "currency": "USD", "id": "acc-003", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"} responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} create-bank-account: Malformed query: parameters: @@ -768,6 +885,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} get-create-bankAccounts-model: Dynamics 365 Business Central: parameters: @@ -849,6 +968,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} list-bank-accounts: "": parameters: @@ -862,8 +983,9 @@ examples: orderBy: "-modifiedDate" responses: "200": - application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "results": [], "totalResults": 1} + application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "totalResults": 1} "400": {} + "500": {} Dynamics 365 Business Central: parameters: path: @@ -1033,6 +1155,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} Unresolved property: parameters: path: @@ -1046,6 +1170,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} create-bank-transactions: Xero: parameters: @@ -1053,73 +1179,98 @@ examples: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" accountId: "9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2" - query: {} + query: + allowSyncOnPushComplete: true requestBody: application/json: {"accountId": "49cd5a42-b311-4750-9361-52e2ed1d4653", "transactions": [{"amount": 100, "balance": 100, "counterparty": "Bank of Example", "date": "2023-08-22T10:21:00Z", "description": "Repayment of Credit Card", "id": "716422529", "reconciled": true, "reference": "Ref-12345", "transactionType": "Credit"}, {"amount": -100, "balance": 0, "counterparty": "Amazon", "date": "2023-08-22T10:22:00Z", "description": "Amazon Purchase", "id": "716422530", "reconciled": false, "reference": "Ref-12346", "transactionType": "Debit"}, {"amount": -60, "balance": -60, "counterparty": "Office Mart", "date": "2023-08-22T10:23:00Z", "description": "Office Supplies", "id": "716422531", "reconciled": false, "reference": "Ref-12347", "transactionType": "Debit"}]} responses: "200": - application/json: {"changes": [], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "EILBDVJVNUAGVKRQ", "transactions": []}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "1fc6fe07-241b-4cdd-89dc-7fa504e08333", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Pending", "statusCode": 829142} + application/json: {"changes": [{"recordRef": {"dataType": "invoices"}}, {"recordRef": {"dataType": "invoices"}}], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "13d946f0-c5d5-42bc-b092-97ece17923ab", "transactions": []}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "cf021cd9-cf54-4033-a152-11a509a3080a", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Failed", "statusCode": 496323} "400": {} + "500": {} QuickBooks Online Bank Feeds: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - accountId: "7110701885" - query: {} + accountId: "9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2" + query: + allowSyncOnPushComplete: true requestBody: application/json: {"accountId": "49cd5a42-b311-4750-9361-52e2ed1d4653", "transactions": [{"amount": 100, "balance": 100, "date": "2023-08-22T10:21:00Z", "description": "Repayment of Credit Card", "id": "716422529", "transactionType": "Credit"}, {"amount": -100, "balance": 0, "date": "2023-08-22T10:22:00Z", "description": "Amazon Purchase", "id": "716422530", "transactionType": "Debit"}, {"amount": -60, "balance": -60, "date": "2023-08-22T10:23:00Z", "description": "Office Supplies", "id": "716422531", "transactionType": "Debit"}]} responses: "200": - application/json: {"changes": [], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "Checking 0202", "transactions": []}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "261915a2-5d0d-49ea-9320-e8504aa8ce67", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Failed", "statusCode": 775787} + application/json: {"changes": [{"recordRef": {"dataType": "invoices"}}, {"recordRef": {"dataType": "invoices"}}, {"recordRef": {"dataType": "invoices"}}], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "EILBDVJVNUAGVKRQ", "transactions": [{"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}, {"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}, {"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}]}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "7691775e-0249-4856-b13d-e0ee803d56a1", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Success", "statusCode": 295558} "400": {} + "500": {} FreeAgent: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - accountId: "9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2" - query: {} + accountId: "13d946f0-c5d5-42bc-b092-97ece17923ab" + query: + allowSyncOnPushComplete: true requestBody: application/json: {"accountId": "49cd5a42-b311-4750-9361-52e2ed1d4653", "transactions": [{"amount": 100, "date": "2023-08-22T10:21:00Z", "description": "Repayment of Credit Card", "id": "716422529", "transactionType": "Credit"}, {"amount": -100, "date": "2023-08-22T10:22:00Z", "description": "Amazon Purchase", "id": "716422530", "transactionType": "Debit"}, {"amount": -60, "date": "2023-08-22T10:23:00Z", "description": "Office Supplies", "id": "716422531", "transactionType": "Debit"}]} responses: "200": - application/json: {"changes": [], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "EILBDVJVNUAGVKRQ", "transactions": []}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "cf24bdeb-cfc2-43e7-96f9-415747251ef0", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Pending", "statusCode": 363328} + application/json: {"changes": [{"recordRef": {"dataType": "invoices"}}, {"recordRef": {"dataType": "invoices"}}], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "Checking 0202", "transactions": [{"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}, {"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}, {"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}]}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "94798bc1-9d4c-451e-a99d-ff42acbeff61", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Failed", "statusCode": 162135} "400": {} + "500": {} Sage: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - accountId: "13d946f0-c5d5-42bc-b092-97ece17923ab" - query: {} + accountId: "9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2" + query: + allowSyncOnPushComplete: true requestBody: application/json: {"accountId": "49cd5a42-b311-4750-9361-52e2ed1d4653", "transactions": [{"amount": 100, "balance": 100, "counterparty": "Bank of Example", "date": "2023-08-22T10:21:00Z", "description": "Repayment of Credit Card", "id": "716422529", "reference": "Ref-12345", "transactionType": "Credit"}, {"amount": -100, "balance": 0, "counterparty": "Amazon", "date": "2023-08-22T10:22:00Z", "description": "Amazon Purchase", "id": "716422530", "reference": "Ref-12346", "transactionType": "Debit"}, {"amount": -60, "balance": -60, "counterparty": "Office Mart", "date": "2023-08-22T10:23:00Z", "description": "Office Supplies", "id": "716422531", "reference": "Ref-12347", "transactionType": "Debit"}]} responses: "200": - application/json: {"changes": [], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "7110701885", "transactions": []}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "95835d6b-1b39-4d7e-a0de-fed8d063eda5", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "Failed", "statusCode": 121860} + application/json: {"changes": [{"recordRef": {"dataType": "invoices"}}], "companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "completedOnUtc": "2022-10-23T00:00:00Z", "data": {"accountId": "Checking 0202", "transactions": []}, "dataConnectionKey": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "dataType": "invoices", "pushOperationKey": "ef75c24a-16ac-45e2-8bbd-7e44f71b269f", "requestedOnUtc": "2022-10-23T00:00:00Z", "status": "TimedOut", "statusCode": 190973} "400": {} + "500": {} Malformed query: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - accountId: "13d946f0-c5d5-42bc-b092-97ece17923ab" - query: {} + accountId: "EILBDVJVNUAGVKRQ" + query: + allowSyncOnPushComplete: true requestBody: - application/json: {"accountId": "7110701885", "transactions": []} + application/json: {"accountId": "9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2", "transactions": [{"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}, {"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}, {"amount": 999.99, "balance": -999.99, "counterparty": "ACME INC", "date": "2022-10-23T00:00:00Z", "description": "Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60", "id": "716422529", "reconciled": false, "reference": "reference for transaction"}]} responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + get-create-bank-transactions-model: + Unauthorized: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + accountId: "13d946f0-c5d5-42bc-b092-97ece17923ab" + responses: + "401": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} get-create-operation: Unauthorized: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - pushOperationKey: "1fb73c31-a851-46c2-ab8a-5ce6e25b57b8" + pushOperationKey: "1b33a562-bac6-42b7-8818-d55dba8df363" responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} list-create-operations: "": parameters: @@ -1132,8 +1283,9 @@ examples: orderBy: "-modifiedDate" responses: "200": - application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "results": [], "totalResults": 1} + application/json: {"_links": {"current": {"href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"}, "self": {"href": "/companies/{id}/data/{dataType}"}}, "pageNumber": 1, "pageSize": 10, "totalResults": 1} "400": {} + "500": {} Malformed query: parameters: path: @@ -1146,6 +1298,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error parsing query - Malformed query.", "service": "ClientsApi", "statusCode": 400} Unresolved property: parameters: path: @@ -1158,6 +1312,8 @@ examples: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", "detailedErrorCode": 0, "error": "Error parsing query - Could not resolve property isCompleted on Dataset", "service": "PullApi", "statusCode": 400} get-configuration: Unauthorized: parameters: @@ -1166,6 +1322,8 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + "500": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} set-configuration: Unauthorized: parameters: @@ -1176,102 +1334,17 @@ examples: responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} - get-last-successful: - Unauthorized: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - responses: - "401": - application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} - get-company-access-token: - Simple company: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - responses: - "200": - application/json: {"accessToken": "string", "expiresIn": 86400, "tokenType": "Bearer"} - Unauthorized: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - responses: - "401": + "500": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} - create-batch-source-account: - Malformed query: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - requestBody: - application/json: [{"accountName": "account-081", "accountNumber": "12345670", "accountType": "Credit", "balance": 99.99, "currency": "GBP", "id": "acc-002", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"}, {"accountName": "account-095", "accountNumber": "12345671", "accountType": "Credit", "balance": 0, "currency": "USD", "id": "acc-003", "modifiedDate": "2023-01-09T14:14:14.1057478Z", "sortCode": "123456", "status": "pending"}] - responses: - "400": - application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} - get-create-bank-transactions-model: + get-last-successful: Unauthorized: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" - accountId: "13d946f0-c5d5-42bc-b092-97ece17923ab" responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} - Client rate limit reached: - speakeasy-default-client-rate-limit-reached: - requestBody: - application/json: {"AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", "ClientName": "Bank of Dave", "Data": {"DailyQuota": 1000, "ExpiresUtc": "2022-10-23T00:00:00Z"}, "Message": "The current daily rate limit quota of 1000 requests for bae71d36-ff47-420a-b4a6-f8c9ddf41140 has been reached.", "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "RuleType": "Rate Limit Reached"} - Client rate limit reset: - speakeasy-default-client-rate-limit-reset: - requestBody: - application/json: {"AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", "ClientName": "Bank of Dave", "Data": {"DailyQuota": 1000, "ExpiresUtc": "2022-10-23T00:00:00Z", "QuotaRemaining": 1000, "ResetReason": "The quota was reset because it is a new day."}, "Message": "The current daily rate limit quota for client 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e has been reset to 1000 requests.", "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "RuleType": "Rate Limit Reset"} - bankFeeds.sourceAccount.connected: - Connected: - requestBody: - application/json: {"eventType": "bankFeeds.sourceAccount.connected", "generatedDate": "2022-10-23T00:00:00Z", "id": "ba29118f-5406-4e59-b05c-ba307ca38d01", "payload": {"connectionId": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "referenceCompany": {"description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "links": {"portal": "https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary"}, "name": "Toft stores"}, "sourceAccount": {"accountName": "account-081", "accountNumber": "12345678", "balance": 99.99, "currency": "GBP", "id": "acc-002", "modifiedDate": "2023-01-09T14:14:14.105Z", "sortCode": "040004", "status": "pending"}}} - bankFeeds.sourceAccount.disconnected: - Disconnected: - requestBody: - application/json: {"eventType": "bankFeeds.sourceAccount.disconnected", "generatedDate": "2022-10-23T00:00:00Z", "id": "ba29118f-5406-4e59-b05c-ba307ca38d01", "payload": {"connectionId": "2e9d2c44-f675-40ba-8049-353bfcb5e171", "referenceCompany": {"description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "links": {"portal": "https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary"}, "name": "Toft stores"}, "sourceAccount": {"accountName": "account-081", "accountNumber": "12345678", "balance": 99.99, "currency": "GBP", "id": "acc-002", "modifiedDate": "2023-01-09T14:14:14.105Z", "sortCode": "040004", "status": "pending"}}} - client.rateLimit.reached: - Reached: - requestBody: - application/json: {"eventType": "client.rateLimit.reached", "generatedDate": "2024-09-01T00:00:00Z", "id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b", "payload": {"dailyQuota": 12000, "expiryDate": "2024-09-01T12:14:14Z", "quotaRemaining": 0}} - client.rateLimit.reset: - Reset: - requestBody: - application/json: {"eventType": "client.rateLimit.reset", "generatedDate": "2024-09-01T00:00:00Z", "id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b", "payload": {"dailyQuota": 12000, "expiryDate": "2024-09-01T23:59:99Z", "quotaRemaining": 11993}} - replace-company: - Update name: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - requestBody: - application/json: {"name": "New Name"} - responses: - "200": - application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} - "401": {} - Update description: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - requestBody: - application/json: {"description": "Additional documents required", "name": "Same name"} - responses: - "200": - application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} - "401": {} - Unauthorized: - parameters: - path: - companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" - requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} - responses: - "401": + "500": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} +examplesVersion: 1.0.0 generatedTests: {} diff --git a/bank-feeds/.speakeasy/gen.yaml b/bank-feeds/.speakeasy/gen.yaml index 819665644..2dfdbdb48 100644 --- a/bank-feeds/.speakeasy/gen.yaml +++ b/bank-feeds/.speakeasy/gen.yaml @@ -12,7 +12,7 @@ generation: oAuth2PasswordEnabled: false telemetryEnabled: true python: - version: 10.1.1 + version: 10.2.0 additionalDependencies: dev: {} main: {} @@ -22,6 +22,7 @@ python: clientServerStatusCodesAsErrors: true defaultErrorName: SDKError description: Set up bank feeds from accounts in your application to supported accounting software. + enableCustomCodeRegions: false enumFormat: enum fixFlags: responseRequiredSep2024: false diff --git a/bank-feeds/README.md b/bank-feeds/README.md index 4c6cacf67..d97a88c24 100755 --- a/bank-feeds/README.md +++ b/bank-feeds/README.md @@ -297,7 +297,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }, RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False)) @@ -323,7 +322,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None @@ -352,10 +350,11 @@ By default, an API error will raise a errors.SDKError exception, which has the f When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `create_async` method may raise the following exceptions: -| Error Type | Status Code | Content Type | -| ------------------- | --------------------------------- | ---------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ------------------- | ----------------------- | ---------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ### Example @@ -373,7 +372,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None @@ -381,6 +379,9 @@ with CodatBankFeeds( # Handle response print(res) + except errors.ErrorMessage as e: + # handle e.data: errors.ErrorMessageData + raise(e) except errors.ErrorMessage as e: # handle e.data: errors.ErrorMessageData raise(e) @@ -411,7 +412,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None @@ -531,7 +531,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None diff --git a/bank-feeds/RELEASES.md b/bank-feeds/RELEASES.md index 93809b188..f1eb26830 100644 --- a/bank-feeds/RELEASES.md +++ b/bank-feeds/RELEASES.md @@ -858,4 +858,14 @@ Based on: ### Generated - [python v10.1.1] bank-feeds ### Releases -- [PyPI v10.1.1] https://pypi.org/project/codat-bankfeeds/10.1.1 - bank-feeds \ No newline at end of file +- [PyPI v10.1.1] https://pypi.org/project/codat-bankfeeds/10.1.1 - bank-feeds + +## 2025-01-20 16:43:34 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.469.10 (2.493.31) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v10.2.0] bank-feeds +### Releases +- [PyPI v10.2.0] https://pypi.org/project/codat-bankfeeds/10.2.0 - bank-feeds \ No newline at end of file diff --git a/bank-feeds/USAGE.md b/bank-feeds/USAGE.md index 8c4d42220..adf3f8c49 100644 --- a/bank-feeds/USAGE.md +++ b/bank-feeds/USAGE.md @@ -12,7 +12,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None @@ -39,7 +38,6 @@ async def main(): res = await codat_bank_feeds.companies.create_async(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None diff --git a/bank-feeds/docs/models/shared/sourceaccountbatchcreateresponse.md b/bank-feeds/docs/models/shared/sourceaccountbatchcreateresponse.md index 0ed65bf9b..b80d3bb89 100644 --- a/bank-feeds/docs/models/shared/sourceaccountbatchcreateresponse.md +++ b/bank-feeds/docs/models/shared/sourceaccountbatchcreateresponse.md @@ -1,11 +1,11 @@ # SourceAccountBatchCreateResponse -The account ID and source account object of the successfully created source account. +Account ID and resulting object of the batch `Create source account` request. ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `result` | [Optional[shared.SourceAccount]](../../models/shared/sourceaccount.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | -| `source_account_id` | *Optional[str]* | :heavy_minus_sign: | Unique ID for the source account. | 12345 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `result` | [Optional[shared.SourceAccountBatchCreateResult]](../../models/shared/sourceaccountbatchcreateresult.md) | :heavy_minus_sign: | Status details and corresponding object of the `Create account` operation. | | +| `source_account_id` | *Optional[str]* | :heavy_minus_sign: | Unique ID for the source account. | 12345 | \ No newline at end of file diff --git a/bank-feeds/docs/models/shared/sourceaccountbatchcreateresult.md b/bank-feeds/docs/models/shared/sourceaccountbatchcreateresult.md new file mode 100644 index 000000000..54e2cc2ce --- /dev/null +++ b/bank-feeds/docs/models/shared/sourceaccountbatchcreateresult.md @@ -0,0 +1,12 @@ +# SourceAccountBatchCreateResult + +Status details and corresponding object of the `Create account` operation. + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | [Optional[shared.SourceAccount]](../../models/shared/sourceaccount.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | +| `error` | *OptionalNullable[str]* | :heavy_minus_sign: | A brief description of the error. | | +| `status_code` | *Optional[int]* | :heavy_minus_sign: | The HTTP status code for the creation of the source account | | \ No newline at end of file diff --git a/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresponse.md b/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresponse.md index 77bc6c481..1b1814226 100644 --- a/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresponse.md +++ b/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresponse.md @@ -1,11 +1,11 @@ # SourceAccountV2BatchCreateResponse -The account ID and source account object of the successfully created source account. +Account ID and resulting object of the batch `Create source account` request. ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `result` | [Optional[shared.SourceAccountV2]](../../models/shared/sourceaccountv2.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | {
"id": "acc-001",
"accountName": "account-081",
"accountType": "checking",
"accountNumber": "12345670",
"routingInfo": {
"bankCode": 21001088,
"type": "bankcode"
},
"currency": "GBP",
"balance": 99.99,
"accountInfo": {
"description": "account description 1",
"nickname": "account 123",
"accountOpenDate": "2023-05-06T00:00:00Z",
"availableBalance": 10
},
"modifiedDate": "2024-08-02T00:00:00.000Z",
"status": "pending",
"feedStartDate": "2024-05-01T00:00:00Z"
} | -| `source_account_id` | *Optional[str]* | :heavy_minus_sign: | Unique ID for the source account. | 12345 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `result` | [Optional[shared.SourceAccountV2BatchCreateResult]](../../models/shared/sourceaccountv2batchcreateresult.md) | :heavy_minus_sign: | Status details and corresponding object of the `Create account` operation. | | +| `source_account_id` | *Optional[str]* | :heavy_minus_sign: | Unique ID for the source account. | 12345 | \ No newline at end of file diff --git a/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresult.md b/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresult.md new file mode 100644 index 000000000..ac28c2138 --- /dev/null +++ b/bank-feeds/docs/models/shared/sourceaccountv2batchcreateresult.md @@ -0,0 +1,12 @@ +# SourceAccountV2BatchCreateResult + +Status details and corresponding object of the `Create account` operation. + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | [Optional[shared.SourceAccountV2]](../../models/shared/sourceaccountv2.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | {
"id": "acc-001",
"accountName": "account-081",
"accountType": "checking",
"accountNumber": "12345670",
"routingInfo": {
"bankCode": 21001088,
"type": "bankcode"
},
"currency": "GBP",
"balance": 99.99,
"accountInfo": {
"description": "account description 1",
"nickname": "account 123",
"accountOpenDate": "2023-05-06T00:00:00Z",
"availableBalance": 10
},
"modifiedDate": "2024-08-02T00:00:00.000Z",
"status": "pending",
"feedStartDate": "2024-05-01T00:00:00Z"
} | +| `error` | *OptionalNullable[str]* | :heavy_minus_sign: | A brief description of the error. | | +| `status_code` | *Optional[int]* | :heavy_minus_sign: | The HTTP status code for the creation of the source account | | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/accountmapping/README.md b/bank-feeds/docs/sdks/accountmapping/README.md index 885afb385..0d80a9e6c 100644 --- a/bank-feeds/docs/sdks/accountmapping/README.md +++ b/bank-feeds/docs/sdks/accountmapping/README.md @@ -84,10 +84,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get @@ -136,7 +137,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/bankaccounts/README.md b/bank-feeds/docs/sdks/bankaccounts/README.md index 00648a8ae..7c314bfa4 100644 --- a/bank-feeds/docs/sdks/bankaccounts/README.md +++ b/bank-feeds/docs/sdks/bankaccounts/README.md @@ -13,12 +13,12 @@ Access bank accounts in an SMBs accounting software. ## create -The *Create bank account* endpoint creates a new [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company's connection. - -[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution. - -**Integration-specific behaviour** - +The *Create bank account* endpoint creates a new [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company's connection. + +[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution. + +**Integration-specific behaviour** + Required data may vary by integration. To see what data to post, first call [Get create/update bank account model](https://docs.codat.io/bank-feeds-api#/operations/get-create-update-bankAccounts-model). ### Example Usage @@ -62,20 +62,21 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get_create_model -The *Get create/update bank account model* endpoint returns the expected data for the request payload when creating and updating a [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company and integration. - -[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution. - -**Integration-specific behaviour** - -See the *response examples* for integration-specific indicative models. +The *Get create/update bank account model* endpoint returns the expected data for the request payload when creating and updating a [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company and integration. + +[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution. + +**Integration-specific behaviour** + +See the *response examples* for integration-specific indicative models. ### Example Usage @@ -115,10 +116,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list @@ -170,7 +172,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 409, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 409, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/companies/README.md b/bank-feeds/docs/sdks/companies/README.md index 466260d47..0cda66665 100644 --- a/bank-feeds/docs/sdks/companies/README.md +++ b/bank-feeds/docs/sdks/companies/README.md @@ -38,7 +38,6 @@ with CodatBankFeeds( res = codat_bank_feeds.companies.create(request={ "name": "Technicalium", - "description": "Requested early access to the new financing scheme.", }) assert res is not None @@ -61,10 +60,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## delete @@ -103,10 +103,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get @@ -152,10 +153,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get_access_token @@ -198,10 +200,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list @@ -263,10 +266,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## replace @@ -314,10 +318,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## update @@ -368,7 +373,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/companyinformation/README.md b/bank-feeds/docs/sdks/companyinformation/README.md index de0ebae87..638f806a0 100644 --- a/bank-feeds/docs/sdks/companyinformation/README.md +++ b/bank-feeds/docs/sdks/companyinformation/README.md @@ -52,7 +52,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/configuration/README.md b/bank-feeds/docs/sdks/configuration/README.md index 06162c889..636375c66 100644 --- a/bank-feeds/docs/sdks/configuration/README.md +++ b/bank-feeds/docs/sdks/configuration/README.md @@ -50,10 +50,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## set @@ -98,7 +99,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/connections/README.md b/bank-feeds/docs/sdks/connections/README.md index 52dec4f25..0e6b851f3 100644 --- a/bank-feeds/docs/sdks/connections/README.md +++ b/bank-feeds/docs/sdks/connections/README.md @@ -58,10 +58,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## delete @@ -98,10 +99,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get @@ -144,10 +146,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list @@ -193,10 +196,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## unlink @@ -242,7 +246,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/sourceaccounts/README.md b/bank-feeds/docs/sdks/sourceaccounts/README.md index 102d10af8..c6e095960 100644 --- a/bank-feeds/docs/sdks/sourceaccounts/README.md +++ b/bank-feeds/docs/sdks/sourceaccounts/README.md @@ -66,10 +66,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## create_batch @@ -140,10 +141,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 409, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 409, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## delete @@ -183,10 +185,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## delete_credentials @@ -224,10 +227,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## generate_credentials @@ -277,10 +281,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list @@ -328,10 +333,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## update @@ -368,7 +374,6 @@ with CodatBankFeeds( "account_type": "Credit", "balance": Decimal("0"), "currency": "USD", - "feed_start_date": "2022-10-23T00:00:00Z", "modified_date": "2023-01-09T14:14:14.1057478Z", "sort_code": "123456", "status": shared.Status.PENDING, @@ -395,7 +400,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/sync/README.md b/bank-feeds/docs/sdks/sync/README.md index 40f109f1e..5bda3842b 100644 --- a/bank-feeds/docs/sdks/sync/README.md +++ b/bank-feeds/docs/sdks/sync/README.md @@ -49,7 +49,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/transactions/README.md b/bank-feeds/docs/sdks/transactions/README.md index 4465b9245..b4100f18e 100644 --- a/bank-feeds/docs/sdks/transactions/README.md +++ b/bank-feeds/docs/sdks/transactions/README.md @@ -78,6 +78,7 @@ with CodatBankFeeds( }, ], }, + "allow_sync_on_push_complete": True, }) assert res is not None @@ -100,10 +101,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get_create_model @@ -153,10 +155,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get_create_operation @@ -180,7 +183,7 @@ with CodatBankFeeds( res = codat_bank_feeds.transactions.get_create_operation(request={ "company_id": "8a210b68-6988-11ed-a1eb-0242ac120002", - "push_operation_key": "1fb73c31-a851-46c2-ab8a-5ce6e25b57b8", + "push_operation_key": "1b33a562-bac6-42b7-8818-d55dba8df363", }) assert res is not None @@ -203,10 +206,11 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| --------------------------------- | --------------------------------- | --------------------------------- | -| errors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------- | ----------------------- | ----------------------- | +| errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list_create_operations @@ -256,7 +260,8 @@ with CodatBankFeeds( ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| errors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| errors.ErrorMessage | 500, 503 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/poetry.lock b/bank-feeds/poetry.lock index a27956a62..17e86a6af 100644 --- a/bank-feeds/poetry.lock +++ b/bank-feeds/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. [[package]] name = "annotated-types" @@ -6,20 +6,19 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} - [[package]] name = "anyio" version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, @@ -42,6 +41,7 @@ version = "3.2.4" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, @@ -56,6 +56,7 @@ version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, @@ -67,6 +68,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -78,6 +81,7 @@ version = "0.3.8" description = "serialize all of Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, @@ -93,6 +97,7 @@ version = "0.2.0" description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "eval_type_backport-0.2.0-py3-none-any.whl", hash = "sha256:ac2f73d30d40c5a30a80b8739a789d6bb5e49fdffa66d7912667e2015d9c9933"}, {file = "eval_type_backport-0.2.0.tar.gz", hash = "sha256:68796cfbc7371ebf923f03bdf7bef415f3ec098aeced24e054b253a0e78f7b37"}, @@ -107,6 +112,8 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -121,6 +128,7 @@ version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -132,6 +140,7 @@ version = "1.0.5" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, @@ -153,6 +162,7 @@ version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -177,6 +187,7 @@ version = "3.8" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "idna-3.8-py3-none-any.whl", hash = "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac"}, {file = "idna-3.8.tar.gz", hash = "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"}, @@ -188,6 +199,7 @@ version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, @@ -202,6 +214,7 @@ version = "1.0.6" description = "A more powerful JSONPath implementation in modern python" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "jsonpath-python-1.0.6.tar.gz", hash = "sha256:dd5be4a72d8a2995c3f583cf82bf3cd1a9544cfdabf2d22595b67aff07349666"}, {file = "jsonpath_python-1.0.6-py3-none-any.whl", hash = "sha256:1e3b78df579f5efc23565293612decee04214609208a2335884b3ee3f786b575"}, @@ -213,6 +226,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -224,6 +238,7 @@ version = "1.14.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb"}, {file = "mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0"}, @@ -283,6 +298,7 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["main", "dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -294,6 +310,7 @@ version = "4.3.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "platformdirs-4.3.2-py3-none-any.whl", hash = "sha256:eb1c8582560b34ed4ba105009a4badf7f6f85768b30126f351328507b2beb617"}, {file = "platformdirs-4.3.2.tar.gz", hash = "sha256:9e5e27a08aa095dd127b9f2e764d74254f482fef22b0970773bfba79d091ab8c"}, @@ -310,6 +327,7 @@ version = "2.10.3" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, @@ -330,6 +348,7 @@ version = "2.27.1" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, @@ -442,6 +461,7 @@ version = "3.2.3" description = "python code static checker" optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "pylint-3.2.3-py3-none-any.whl", hash = "sha256:b3d7d2708a3e04b4679e02d99e72329a8b7ee8afb8d04110682278781f889fa8"}, {file = "pylint-3.2.3.tar.gz", hash = "sha256:02f6c562b215582386068d52a30f520d84fdbcf2a95fc7e855b816060d048b60"}, @@ -472,6 +492,7 @@ version = "2.8.2" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] files = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, @@ -486,6 +507,7 @@ version = "1.16.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["main"] files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, @@ -497,6 +519,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -508,6 +531,8 @@ version = "2.0.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.11\"" files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, @@ -519,6 +544,7 @@ version = "0.13.2" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, @@ -530,6 +556,7 @@ version = "2.9.0.20240906" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types-python-dateutil-2.9.0.20240906.tar.gz", hash = "sha256:9706c3b68284c25adffc47319ecc7947e5bb86b3773f843c73906fd598bc176e"}, {file = "types_python_dateutil-2.9.0.20240906-py3-none-any.whl", hash = "sha256:27c8cc2d058ccb14946eebcaaa503088f4f6dbc4fb6093d3d456a49aef2753f6"}, @@ -541,6 +568,7 @@ version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -552,6 +580,7 @@ version = "0.9.0" description = "Runtime inspection utilities for typing module." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, @@ -562,6 +591,6 @@ mypy-extensions = ">=0.3.0" typing-extensions = ">=3.7.4" [metadata] -lock-version = "2.0" -python-versions = "^3.8" -content-hash = "dafd205e861595cb47c0303bde44b5001f1831d009afd025a78e1a25662532f2" +lock-version = "2.1" +python-versions = ">=3.9" +content-hash = "1bd4e6f40bcdc58f113fbd67b7c65821133d23a04876c22cf3119c1bc9a5fb6b" diff --git a/bank-feeds/pylintrc b/bank-feeds/pylintrc index 508003862..f2385e87a 100644 --- a/bank-feeds/pylintrc +++ b/bank-feeds/pylintrc @@ -89,7 +89,7 @@ persistent=yes # Minimum Python version to use for version dependent checks. Will default to # the version used to run pylint. -py-version=3.8 +py-version=3.9 # Discover python modules and packages in the file system subtree. recursive=no diff --git a/bank-feeds/pyproject.toml b/bank-feeds/pyproject.toml index 81527bb2f..89bd3cfe5 100644 --- a/bank-feeds/pyproject.toml +++ b/bank-feeds/pyproject.toml @@ -1,9 +1,20 @@ -[tool.poetry] +[project] name = "codat-bankfeeds" -version = "10.1.1" +version = "10.2.0" description = "Set up bank feeds from accounts in your application to supported accounting software." -authors = ["Speakeasy",] +authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" +requires-python = ">=3.9" +dependencies = [ + "eval-type-backport (>=0.2.0,<0.3.0)", + "httpx (>=0.28.1,<0.29.0)", + "jsonpath-python (>=1.0.6,<2.0.0)", + "pydantic (>=2.10.3,<2.11.0)", + "python-dateutil (>=2.8.2,<3.0.0)", + "typing-inspect (>=0.9.0,<0.10.0)", +] + +[tool.poetry] repository = "https://github.com/codatio/client-sdk-python.git" packages = [ { include = "codat_bankfeeds", from = "src" } @@ -16,15 +27,6 @@ include = ["py.typed", "src/codat_bankfeeds/py.typed"] [virtualenvs] in-project = true -[tool.poetry.dependencies] -python = "^3.8" -eval-type-backport = "^0.2.0" -httpx = "^0.28.1" -jsonpath-python = "^1.0.6" -pydantic = "~2.10.3" -python-dateutil = "^2.8.2" -typing-inspect = "^0.9.0" - [tool.poetry.group.dev.dependencies] mypy = "==1.14.1" pylint = "==3.2.3" diff --git a/bank-feeds/src/codat_bankfeeds/__init__.py b/bank-feeds/src/codat_bankfeeds/__init__.py index 5c3491793..833c68cd5 100644 --- a/bank-feeds/src/codat_bankfeeds/__init__.py +++ b/bank-feeds/src/codat_bankfeeds/__init__.py @@ -1,8 +1,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from ._version import __title__, __version__ +from ._version import ( + __title__, + __version__, + __openapi_doc_version__, + __gen_version__, + __user_agent__, +) from .sdk import * from .sdkconfiguration import * VERSION: str = __version__ +OPENAPI_DOC_VERSION = __openapi_doc_version__ +SPEAKEASY_GENERATOR_VERSION = __gen_version__ +USER_AGENT = __user_agent__ diff --git a/bank-feeds/src/codat_bankfeeds/_version.py b/bank-feeds/src/codat_bankfeeds/_version.py index a3983ac45..b669f9120 100644 --- a/bank-feeds/src/codat_bankfeeds/_version.py +++ b/bank-feeds/src/codat_bankfeeds/_version.py @@ -3,7 +3,10 @@ import importlib.metadata __title__: str = "codat-bankfeeds" -__version__: str = "10.1.1" +__version__: str = "10.2.0" +__openapi_doc_version__: str = "3.0.0" +__gen_version__: str = "2.493.31" +__user_agent__: str = "speakeasy-sdk/python 10.2.0 2.493.31 3.0.0 codat-bankfeeds" try: if __package__ is not None: diff --git a/bank-feeds/src/codat_bankfeeds/account_mapping.py b/bank-feeds/src/codat_bankfeeds/account_mapping.py index 8a54a6e01..1c7e09ccb 100644 --- a/bank-feeds/src/codat_bankfeeds/account_mapping.py +++ b/bank-feeds/src/codat_bankfeeds/account_mapping.py @@ -139,13 +139,19 @@ def create( http_res.text, Optional[shared.BankFeedAccountMappingResponse] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -288,13 +294,19 @@ async def create_async( http_res.text, Optional[shared.BankFeedAccountMappingResponse] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -404,13 +416,19 @@ def get( http_res.text, Optional[List[shared.BankFeedMapping]] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -520,13 +538,19 @@ async def get_async( http_res.text, Optional[List[shared.BankFeedMapping]] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/bank_accounts.py b/bank-feeds/src/codat_bankfeeds/bank_accounts.py index dc2cf1789..002c95ef3 100644 --- a/bank-feeds/src/codat_bankfeeds/bank_accounts.py +++ b/bank-feeds/src/codat_bankfeeds/bank_accounts.py @@ -114,13 +114,19 @@ def create( http_res.text, Optional[shared.BankAccountCreateResponse] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -238,13 +244,19 @@ async def create_async( http_res.text, Optional[shared.BankAccountCreateResponse] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -355,13 +367,19 @@ def get_create_model( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOption]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -472,13 +490,19 @@ async def get_create_model_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOption]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -588,12 +612,20 @@ def list( return utils.unmarshal_json(http_res.text, Optional[shared.BankAccounts]) if utils.match_response( http_res, - ["400", "401", "402", "403", "404", "409", "429", "500", "503"], + ["400", "401", "402", "403", "404", "409", "429"], "application/json", ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -703,12 +735,20 @@ async def list_async( return utils.unmarshal_json(http_res.text, Optional[shared.BankAccounts]) if utils.match_response( http_res, - ["400", "401", "402", "403", "404", "409", "429", "500", "503"], + ["400", "401", "402", "403", "404", "409", "429"], "application/json", ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/companies.py b/bank-feeds/src/codat_bankfeeds/companies.py index b0d51930e..32b26c135 100644 --- a/bank-feeds/src/codat_bankfeeds/companies.py +++ b/bank-feeds/src/codat_bankfeeds/companies.py @@ -105,13 +105,19 @@ def create( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -220,13 +226,19 @@ async def create_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -331,13 +343,19 @@ def delete( if utils.match_response(http_res, "204", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -442,13 +460,19 @@ async def delete_async( if utils.match_response(http_res, "204", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -553,13 +577,19 @@ def get( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -664,13 +694,19 @@ async def get_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -775,13 +811,19 @@ def get_access_token( http_res.text, Optional[shared.CompanyAccessToken] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -886,13 +928,19 @@ async def get_access_token_async( http_res.text, Optional[shared.CompanyAccessToken] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1010,13 +1058,19 @@ def list( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Companies]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1134,13 +1188,19 @@ async def list_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Companies]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1251,13 +1311,19 @@ def replace( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1368,13 +1434,19 @@ async def replace_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1486,13 +1558,19 @@ def update( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1604,13 +1682,19 @@ async def update_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Company]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/company_information.py b/bank-feeds/src/codat_bankfeeds/company_information.py index 3413e9d3e..5c439d389 100644 --- a/bank-feeds/src/codat_bankfeeds/company_information.py +++ b/bank-feeds/src/codat_bankfeeds/company_information.py @@ -103,13 +103,19 @@ def get( http_res.text, Optional[shared.CompanyInformation] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -216,13 +222,19 @@ async def get_async( http_res.text, Optional[shared.CompanyInformation] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/configuration.py b/bank-feeds/src/codat_bankfeeds/configuration.py index b3e7a673f..d5e719a84 100644 --- a/bank-feeds/src/codat_bankfeeds/configuration.py +++ b/bank-feeds/src/codat_bankfeeds/configuration.py @@ -98,13 +98,19 @@ def get( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Configuration]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -206,13 +212,19 @@ async def get_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Configuration]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -321,13 +333,19 @@ def set( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Configuration]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -436,13 +454,19 @@ async def set_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Configuration]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/connections.py b/bank-feeds/src/codat_bankfeeds/connections.py index 2c646d965..fc808b712 100644 --- a/bank-feeds/src/codat_bankfeeds/connections.py +++ b/bank-feeds/src/codat_bankfeeds/connections.py @@ -107,13 +107,19 @@ def create( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connection]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -224,13 +230,19 @@ async def create_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connection]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -333,13 +345,19 @@ def delete( if utils.match_response(http_res, "200", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -442,13 +460,19 @@ async def delete_async( if utils.match_response(http_res, "200", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -549,13 +573,19 @@ def get( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connection]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -656,13 +686,19 @@ async def get_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connection]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -765,13 +801,19 @@ def list( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connections]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -874,13 +916,19 @@ async def list_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connections]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -989,13 +1037,19 @@ def unlink( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connection]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1104,13 +1158,19 @@ async def unlink_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.Connection]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/models/errors/__init__.py b/bank-feeds/src/codat_bankfeeds/models/errors/__init__.py index f056b05a6..315c58410 100644 --- a/bank-feeds/src/codat_bankfeeds/models/errors/__init__.py +++ b/bank-feeds/src/codat_bankfeeds/models/errors/__init__.py @@ -3,4 +3,5 @@ from .errormessage import ErrorMessage, ErrorMessageData from .sdkerror import SDKError + __all__ = ["ErrorMessage", "ErrorMessageData", "SDKError"] diff --git a/bank-feeds/src/codat_bankfeeds/models/operations/__init__.py b/bank-feeds/src/codat_bankfeeds/models/operations/__init__.py index 256860949..5832ea3dd 100644 --- a/bank-feeds/src/codat_bankfeeds/models/operations/__init__.py +++ b/bank-feeds/src/codat_bankfeeds/models/operations/__init__.py @@ -117,6 +117,7 @@ UpdateSourceAccountRequestTypedDict, ) + __all__ = [ "CreateBankAccountMappingRequest", "CreateBankAccountMappingRequestTypedDict", diff --git a/bank-feeds/src/codat_bankfeeds/models/shared/__init__.py b/bank-feeds/src/codat_bankfeeds/models/shared/__init__.py index b5548772d..38615b362 100644 --- a/bank-feeds/src/codat_bankfeeds/models/shared/__init__.py +++ b/bank-feeds/src/codat_bankfeeds/models/shared/__init__.py @@ -134,6 +134,10 @@ SourceAccountBatchCreateResponse, SourceAccountBatchCreateResponseTypedDict, ) +from .sourceaccountbatchcreateresult import ( + SourceAccountBatchCreateResult, + SourceAccountBatchCreateResultTypedDict, +) from .sourceaccountbatcherrorresponse import ( Result, ResultTypedDict, @@ -154,6 +158,10 @@ SourceAccountV2BatchCreateResponse, SourceAccountV2BatchCreateResponseTypedDict, ) +from .sourceaccountv2batchcreateresult import ( + SourceAccountV2BatchCreateResult, + SourceAccountV2BatchCreateResultTypedDict, +) from .sourceaccountv2prototype import ( SourceAccountV2Prototype, SourceAccountV2PrototypeTypedDict, @@ -172,6 +180,7 @@ from .validation import Validation, ValidationTypedDict from .validationitem import ValidationItem, ValidationItemTypedDict + __all__ = [ "AccountInfo", "AccountInfoTypedDict", @@ -300,6 +309,8 @@ "SourceAccount", "SourceAccountBatchCreateResponse", "SourceAccountBatchCreateResponseTypedDict", + "SourceAccountBatchCreateResult", + "SourceAccountBatchCreateResultTypedDict", "SourceAccountBatchErrorResponse", "SourceAccountBatchErrorResponseTypedDict", "SourceAccountPrototype", @@ -309,6 +320,8 @@ "SourceAccountV2AccountType", "SourceAccountV2BatchCreateResponse", "SourceAccountV2BatchCreateResponseTypedDict", + "SourceAccountV2BatchCreateResult", + "SourceAccountV2BatchCreateResultTypedDict", "SourceAccountV2Prototype", "SourceAccountV2PrototypeTypedDict", "SourceAccountV2Status", diff --git a/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresponse.py b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresponse.py index 486bc1b0a..6b39e8698 100644 --- a/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresponse.py +++ b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresponse.py @@ -1,7 +1,10 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .sourceaccount import SourceAccount, SourceAccountTypedDict +from .sourceaccountbatchcreateresult import ( + SourceAccountBatchCreateResult, + SourceAccountBatchCreateResultTypedDict, +) from codat_bankfeeds.types import BaseModel import pydantic from typing import Optional @@ -9,19 +12,19 @@ class SourceAccountBatchCreateResponseTypedDict(TypedDict): - r"""The account ID and source account object of the successfully created source account.""" + r"""Account ID and resulting object of the batch `Create source account` request.""" - result: NotRequired[SourceAccountTypedDict] - r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + result: NotRequired[SourceAccountBatchCreateResultTypedDict] + r"""Status details and corresponding object of the `Create account` operation.""" source_account_id: NotRequired[str] r"""Unique ID for the source account.""" class SourceAccountBatchCreateResponse(BaseModel): - r"""The account ID and source account object of the successfully created source account.""" + r"""Account ID and resulting object of the batch `Create source account` request.""" - result: Optional[SourceAccount] = None - r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + result: Optional[SourceAccountBatchCreateResult] = None + r"""Status details and corresponding object of the `Create account` operation.""" source_account_id: Annotated[ Optional[str], pydantic.Field(alias="sourceAccountId") diff --git a/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresult.py b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresult.py new file mode 100644 index 000000000..d97e28d8f --- /dev/null +++ b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountbatchcreateresult.py @@ -0,0 +1,69 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .sourceaccount import SourceAccount, SourceAccountTypedDict +from codat_bankfeeds.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class SourceAccountBatchCreateResultTypedDict(TypedDict): + r"""Status details and corresponding object of the `Create account` operation.""" + + account: NotRequired[SourceAccountTypedDict] + r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + error: NotRequired[Nullable[str]] + r"""A brief description of the error.""" + status_code: NotRequired[int] + r"""The HTTP status code for the creation of the source account""" + + +class SourceAccountBatchCreateResult(BaseModel): + r"""Status details and corresponding object of the `Create account` operation.""" + + account: Optional[SourceAccount] = None + r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + + error: OptionalNullable[str] = UNSET + r"""A brief description of the error.""" + + status_code: Annotated[Optional[int], pydantic.Field(alias="statusCode")] = None + r"""The HTTP status code for the creation of the source account""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["account", "error", "statusCode"] + nullable_fields = ["error"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in self.model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresponse.py b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresponse.py index 7becbe9e2..bf73a9bbb 100644 --- a/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresponse.py +++ b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresponse.py @@ -1,7 +1,10 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .sourceaccountv2 import SourceAccountV2, SourceAccountV2TypedDict +from .sourceaccountv2batchcreateresult import ( + SourceAccountV2BatchCreateResult, + SourceAccountV2BatchCreateResultTypedDict, +) from codat_bankfeeds.types import BaseModel import pydantic from typing import Optional @@ -9,19 +12,19 @@ class SourceAccountV2BatchCreateResponseTypedDict(TypedDict): - r"""The account ID and source account object of the successfully created source account.""" + r"""Account ID and resulting object of the batch `Create source account` request.""" - result: NotRequired[SourceAccountV2TypedDict] - r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + result: NotRequired[SourceAccountV2BatchCreateResultTypedDict] + r"""Status details and corresponding object of the `Create account` operation.""" source_account_id: NotRequired[str] r"""Unique ID for the source account.""" class SourceAccountV2BatchCreateResponse(BaseModel): - r"""The account ID and source account object of the successfully created source account.""" + r"""Account ID and resulting object of the batch `Create source account` request.""" - result: Optional[SourceAccountV2] = None - r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + result: Optional[SourceAccountV2BatchCreateResult] = None + r"""Status details and corresponding object of the `Create account` operation.""" source_account_id: Annotated[ Optional[str], pydantic.Field(alias="sourceAccountId") diff --git a/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresult.py b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresult.py new file mode 100644 index 000000000..cf0675943 --- /dev/null +++ b/bank-feeds/src/codat_bankfeeds/models/shared/sourceaccountv2batchcreateresult.py @@ -0,0 +1,69 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .sourceaccountv2 import SourceAccountV2, SourceAccountV2TypedDict +from codat_bankfeeds.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class SourceAccountV2BatchCreateResultTypedDict(TypedDict): + r"""Status details and corresponding object of the `Create account` operation.""" + + account: NotRequired[SourceAccountV2TypedDict] + r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + error: NotRequired[Nullable[str]] + r"""A brief description of the error.""" + status_code: NotRequired[int] + r"""The HTTP status code for the creation of the source account""" + + +class SourceAccountV2BatchCreateResult(BaseModel): + r"""Status details and corresponding object of the `Create account` operation.""" + + account: Optional[SourceAccountV2] = None + r"""The target bank account in a supported accounting software for ingestion into a bank feed.""" + + error: OptionalNullable[str] = UNSET + r"""A brief description of the error.""" + + status_code: Annotated[Optional[int], pydantic.Field(alias="statusCode")] = None + r"""The HTTP status code for the creation of the source account""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["account", "error", "statusCode"] + nullable_fields = ["error"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in self.model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/bank-feeds/src/codat_bankfeeds/sdkconfiguration.py b/bank-feeds/src/codat_bankfeeds/sdkconfiguration.py index 13489b87b..b4131915e 100644 --- a/bank-feeds/src/codat_bankfeeds/sdkconfiguration.py +++ b/bank-feeds/src/codat_bankfeeds/sdkconfiguration.py @@ -1,6 +1,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from ._hooks import SDKHooks +from ._version import ( + __gen_version__, + __openapi_doc_version__, + __user_agent__, + __version__, +) from .httpclient import AsyncHttpClient, HttpClient from .utils import Logger, RetryConfig, remove_suffix from codat_bankfeeds.models import shared @@ -26,10 +32,10 @@ class SDKConfiguration: server_url: Optional[str] = "" server_idx: Optional[int] = 0 language: str = "python" - openapi_doc_version: str = "3.0.0" - sdk_version: str = "10.1.1" - gen_version: str = "2.488.4" - user_agent: str = "speakeasy-sdk/python 10.1.1 2.488.4 3.0.0 codat-bankfeeds" + openapi_doc_version: str = __openapi_doc_version__ + sdk_version: str = __version__ + gen_version: str = __gen_version__ + user_agent: str = __user_agent__ retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET) timeout_ms: Optional[int] = None diff --git a/bank-feeds/src/codat_bankfeeds/source_accounts.py b/bank-feeds/src/codat_bankfeeds/source_accounts.py index a6dfbc0fe..1e5107189 100644 --- a/bank-feeds/src/codat_bankfeeds/source_accounts.py +++ b/bank-feeds/src/codat_bankfeeds/source_accounts.py @@ -112,13 +112,19 @@ def create( http_res.text, Optional[operations.CreateSourceAccountResponseBody] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -233,13 +239,19 @@ async def create_async( http_res.text, Optional[operations.CreateSourceAccountResponseBody] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -363,12 +375,20 @@ def create_batch( ) if utils.match_response( http_res, - ["400", "401", "402", "403", "404", "409", "429", "500", "503"], + ["400", "401", "402", "403", "404", "409", "429"], "application/json", ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -492,12 +512,20 @@ async def create_batch_async( ) if utils.match_response( http_res, - ["400", "401", "402", "403", "404", "409", "429", "500", "503"], + ["400", "401", "402", "403", "404", "409", "429"], "application/json", ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -602,13 +630,19 @@ def delete( if utils.match_response(http_res, "204", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -713,13 +747,19 @@ async def delete_async( if utils.match_response(http_res, "204", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -825,13 +865,19 @@ def delete_credentials( if utils.match_response(http_res, "204", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -937,13 +983,19 @@ async def delete_credentials_async( if utils.match_response(http_res, "204", "*"): return if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1060,13 +1112,19 @@ def generate_credentials( http_res.text, Optional[shared.BankAccountCredentials] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1183,13 +1241,19 @@ async def generate_credentials_async( http_res.text, Optional[shared.BankAccountCredentials] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1298,13 +1362,19 @@ def list( http_res.text, Optional[operations.ListSourceAccountsResponseBody] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1413,13 +1483,19 @@ async def list_async( http_res.text, Optional[operations.ListSourceAccountsResponseBody] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1536,13 +1612,19 @@ def update( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.SourceAccount]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -1659,13 +1741,19 @@ async def update_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.SourceAccount]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/sync.py b/bank-feeds/src/codat_bankfeeds/sync.py index 724afcaa0..a8b2b6b82 100644 --- a/bank-feeds/src/codat_bankfeeds/sync.py +++ b/bank-feeds/src/codat_bankfeeds/sync.py @@ -100,13 +100,19 @@ def get_last_successful_sync( http_res.text, Optional[shared.CompanySyncStatus] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -210,13 +216,19 @@ async def get_last_successful_sync_async( http_res.text, Optional[shared.CompanySyncStatus] ) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res diff --git a/bank-feeds/src/codat_bankfeeds/transactions.py b/bank-feeds/src/codat_bankfeeds/transactions.py index c89940eff..eb86b1db7 100644 --- a/bank-feeds/src/codat_bankfeeds/transactions.py +++ b/bank-feeds/src/codat_bankfeeds/transactions.py @@ -115,13 +115,19 @@ def create( http_res.text, Optional[shared.CreateBankTransactionsResponse] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -240,13 +246,19 @@ async def create_async( http_res.text, Optional[shared.CreateBankTransactionsResponse] ) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -356,13 +368,19 @@ def get_create_model( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOption]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -472,13 +490,19 @@ async def get_create_model_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOption]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -584,13 +608,19 @@ def get_create_operation( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOperation]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -696,13 +726,19 @@ async def get_create_operation_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOperation]) if utils.match_response( - http_res, - ["401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -809,13 +845,19 @@ def list_create_operations( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOperations]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -922,13 +964,19 @@ async def list_create_operations_async( if utils.match_response(http_res, "200", "application/json"): return utils.unmarshal_json(http_res.text, Optional[shared.PushOperations]) if utils.match_response( - http_res, - ["400", "401", "402", "403", "404", "429", "500", "503"], - "application/json", + http_res, ["400", "401", "402", "403", "404", "429"], "application/json" ): data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) raise errors.ErrorMessage(data=data) - if utils.match_response(http_res, ["4XX", "5XX"], "*"): + if utils.match_response(http_res, ["500", "503"], "application/json"): + data = utils.unmarshal_json(http_res.text, errors.ErrorMessageData) + raise errors.ErrorMessage(data=data) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res