From 57d63bd50a19cf03aa30bd5c8147d7b9e6e0eb00 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Mon, 27 Jul 2026 01:02:21 +0000 Subject: [PATCH 1/2] =?UTF-8?q?##=20Python=20SDK=20Changes:=20*=20`sdk.pay?= =?UTF-8?q?ments.v3.get=5Faccount()`:=20=20`response.data.raw`=20**Changed?= =?UTF-8?q?**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.get?= =?UTF-8?q?=5Fconnector=5Fconfig()`:=20=20`response.data.union(V3Krakenpro?= =?UTF-8?q?Config)`=20**Added**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`s?= =?UTF-8?q?dk.payments.v1.create=5Faccount()`:=20=20`response.data.raw`=20?= =?UTF-8?q?**Changed**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.paymen?= =?UTF-8?q?ts.v1.create=5Fpayment()`:=20=20`response.data`=20**Changed**?= =?UTF-8?q?=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v1.get?= =?UTF-8?q?=5Faccount=5Fpayments()`:=20=20`response.data.raw`=20**Changed*?= =?UTF-8?q?*=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v1.get?= =?UTF-8?q?=5Fpayment()`:=20=20`response.data`=20**Changed**=20(Breaking?= =?UTF-8?q?=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v1.list=5Faccounts?= =?UTF-8?q?=5Fpayments()`:=20=20`response.cursor.data[].raw`=20**Changed**?= =?UTF-8?q?=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v1.list?= =?UTF-8?q?=5Fpayments()`:=20=20`response.cursor.data[]`=20**Changed**=20(?= =?UTF-8?q?Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.create=5F?= =?UTF-8?q?account()`:=20=20`response.data.raw`=20**Changed**=20(Breaking?= =?UTF-8?q?=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.create=5Fpayment(?= =?UTF-8?q?)`:=20=20`response.data.adjustments[].raw`=20**Changed**=20(Bre?= =?UTF-8?q?aking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.list=5Fpayme?= =?UTF-8?q?nts()`:=20=20`response.cursor.data[].adjustments[].raw`=20**Cha?= =?UTF-8?q?nged**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3?= =?UTF-8?q?.get=5Forder()`:=20=20`response.data.adjustments[].raw`=20**Cha?= =?UTF-8?q?nged**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3?= =?UTF-8?q?.list=5Fpayment=5Finitiation=5Frelated=5Fpayments()`:=20=20`res?= =?UTF-8?q?ponse.cursor.data[].adjustments[].raw`=20**Changed**=20(Breakin?= =?UTF-8?q?g=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.get=5Fpayment()`?= =?UTF-8?q?:=20=20`response.data.adjustments[].raw`=20**Changed**=20(Break?= =?UTF-8?q?ing=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.list=5Forders(?= =?UTF-8?q?)`:=20=20`response.cursor.data[].adjustments[].raw`=20**Changed?= =?UTF-8?q?**=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.lis?= =?UTF-8?q?t=5Faccounts()`:=20=20`response.cursor.data[].raw`=20**Changed*?= =?UTF-8?q?*=20(Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`sdk.payments.v3.list?= =?UTF-8?q?=5Fconnectors()`:=20=20`response.cursor.data[].capabilities`=20?= =?UTF-8?q?**Added**=20*=20`sdk.payments.v3.install=5Fconnector()`:=20=20?= =?UTF-8?q?=20*=20=20`request.v3connector=5Fconfig.union(V3KrakenproConfig?= =?UTF-8?q?)`=20**Added**=20*=20`sdk.payments.v3.get=5Fconnector=5Fcapabil?= =?UTF-8?q?ities()`:=20**Added**=20*=20`sdk.payments.v3.list=5Fconnector?= =?UTF-8?q?=5Fcapabilities()`:=20**Added**=20*=20`sdk.payments.v3.v3update?= =?UTF-8?q?=5Fconnector=5Fconfig()`:=20=20=20*=20=20`request.v3connector?= =?UTF-8?q?=5Fconfig.union(V3KrakenproConfig)`=20**Added**?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .speakeasy/gen.lock | 304 ++++---- .speakeasy/workflow.lock | 12 +- README-PYPI.md | 16 +- README.md | 16 +- RELEASES.md | 12 +- docs/models/operations/v2importlogsrequest.md | 8 +- .../v3getconnectorcapabilitiesrequest.md | 8 + .../v3getconnectorcapabilitiesresponse.md | 11 + .../v3listconnectorcapabilitiesrequest.md | 8 + .../v3listconnectorcapabilitiesresponse.md | 12 + docs/models/payments/account.md | 2 +- docs/models/payments/accountraw.md | 7 - docs/models/payments/payment.md | 2 +- docs/models/payments/paymentadjustment.md | 14 +- docs/models/payments/paymentadjustmentraw.md | 7 - docs/models/payments/paymentraw.md | 7 - docs/models/payments/v3account.md | 2 +- docs/models/payments/v3accountraw.md | 7 - docs/models/payments/v3capability.md | 32 + docs/models/payments/v3connector.md | 1 + .../v3connectorcapabilitiesresponse.md | 8 + .../payments/v3connectorcapabilityresponse.md | 8 + docs/models/payments/v3connectorconfig.md | 6 + docs/models/payments/v3krakenproconfig.md | 14 + docs/models/payments/v3orderadjustment.md | 2 +- docs/models/payments/v3orderadjustmentraw.md | 9 - docs/models/payments/v3paymentadjustment.md | 20 +- .../models/payments/v3paymentadjustmentraw.md | 7 - docs/sdks/v3/README.md | 98 +++ gen.yaml | 10 +- poetry.lock | 2 +- pyproject.toml | 4 +- src/formance_sdk_python/_hooks/types.py | 14 +- src/formance_sdk_python/_version.py | 6 +- src/formance_sdk_python/auth_v1.py | 44 ++ src/formance_sdk_python/ledger.py | 8 + src/formance_sdk_python/ledger_v1.py | 80 +++ src/formance_sdk_python/ledger_v2.py | 176 ++++- .../models/operations/__init__.py | 28 + .../models/operations/v2importlogs.py | 4 +- .../operations/v3getconnectorcapabilities.py | 72 ++ .../operations/v3listconnectorcapabilities.py | 91 +++ .../models/payments/__init__.py | 80 +-- .../models/payments/account.py | 14 +- .../models/payments/payment.py | 14 +- .../models/payments/paymentadjustment.py | 13 +- .../models/payments/v3account.py | 14 +- .../models/payments/v3capability.py | 23 + .../models/payments/v3connector.py | 9 +- .../v3connectorcapabilitiesresponse.py | 17 + .../payments/v3connectorcapabilityresponse.py | 15 + .../models/payments/v3connectorconfig.py | 15 +- .../models/payments/v3krakenproconfig.py | 64 ++ .../models/payments/v3orderadjustment.py | 14 +- .../models/payments/v3paymentadjustment.py | 14 +- src/formance_sdk_python/orchestration_v1.py | 68 ++ src/formance_sdk_python/orchestration_v2.py | 72 ++ src/formance_sdk_python/payments_v1.py | 180 +++++ src/formance_sdk_python/reconciliation_v1.py | 32 + src/formance_sdk_python/sdk.py | 4 + src/formance_sdk_python/search_v1.py | 8 + .../types/base64fileinput.py | 4 + src/formance_sdk_python/utils/__init__.py | 4 +- src/formance_sdk_python/utils/datetimes.py | 16 +- .../utils/eventstreaming.py | 215 +++--- src/formance_sdk_python/utils/forms.py | 5 + src/formance_sdk_python/utils/retries.py | 95 ++- src/formance_sdk_python/utils/serializers.py | 87 ++- src/formance_sdk_python/v3.py | 668 ++++++++++++++++++ src/formance_sdk_python/wallets_v1.py | 64 ++ src/formance_sdk_python/webhooks_v1.py | 32 + 71 files changed, 2599 insertions(+), 460 deletions(-) create mode 100644 docs/models/operations/v3getconnectorcapabilitiesrequest.md create mode 100644 docs/models/operations/v3getconnectorcapabilitiesresponse.md create mode 100644 docs/models/operations/v3listconnectorcapabilitiesrequest.md create mode 100644 docs/models/operations/v3listconnectorcapabilitiesresponse.md delete mode 100644 docs/models/payments/accountraw.md delete mode 100644 docs/models/payments/paymentadjustmentraw.md delete mode 100644 docs/models/payments/paymentraw.md delete mode 100644 docs/models/payments/v3accountraw.md create mode 100644 docs/models/payments/v3capability.md create mode 100644 docs/models/payments/v3connectorcapabilitiesresponse.md create mode 100644 docs/models/payments/v3connectorcapabilityresponse.md create mode 100644 docs/models/payments/v3krakenproconfig.md delete mode 100644 docs/models/payments/v3orderadjustmentraw.md delete mode 100644 docs/models/payments/v3paymentadjustmentraw.md create mode 100644 src/formance_sdk_python/models/operations/v3getconnectorcapabilities.py create mode 100644 src/formance_sdk_python/models/operations/v3listconnectorcapabilities.py create mode 100644 src/formance_sdk_python/models/payments/v3capability.py create mode 100644 src/formance_sdk_python/models/payments/v3connectorcapabilitiesresponse.py create mode 100644 src/formance_sdk_python/models/payments/v3connectorcapabilityresponse.py create mode 100644 src/formance_sdk_python/models/payments/v3krakenproconfig.py diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 13f48c42..d3c2f687 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,33 +1,33 @@ lockVersion: 2.0.0 id: 1e0c88f5-b1c8-4198-83d8-36bd00451cd3 management: - docChecksum: 5a14b806afe8a80f055354bc7f17f3d5 + docChecksum: da6b322ac067ac61b6561143a8a8bc5a docVersion: SDK_VERSION - speakeasyVersion: 1.770.0 - generationVersion: 2.893.0 - releaseVersion: 8.2.1 - configChecksum: 3c997e757bd987f30581dc54de27b12d + speakeasyVersion: 1.791.0 + generationVersion: 2.924.0 + releaseVersion: 8.3.0 + configChecksum: 34929403b0d62067e463b6b7b25828ae repoURL: https://github.com/formancehq/formance-sdk-python.git repoSubDirectory: . installationURL: https://github.com/formancehq/formance-sdk-python.git published: true persistentEdits: - generation_id: dc666553-389c-4425-9dda-e75d566d6a6d - pristine_commit_hash: ac076a4e92177038167f3e3d6bd1b78b2933aa48 - pristine_tree_hash: 399ce53501defc8ae4a7143cb29b8573d4b5668c + generation_id: cedfb14c-fb62-4eb4-bea4-775b9351b938 + pristine_commit_hash: 7a919f391eec0a134ffa6e9949e4dbe7ea2745e0 + pristine_tree_hash: dd10031ea27e603472f1582e01a3fa2afd9939cc features: python: additionalDependencies: 1.1.0 - additionalProperties: 1.0.1 + additionalProperties: 1.0.2 bigint: 1.0.0 constsAndDefaults: 1.0.7 - core: 6.0.24 + core: 6.0.34 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 downloadStreams: 1.0.1 enumUnions: 0.1.1 envVarSecurityUsage: 0.3.3 - errors: 3.3.6 + errors: 3.4.4 getRequestBodies: 3.0.0 globalSecurity: 3.0.7 globalSecurityCallbacks: 1.0.0 @@ -37,10 +37,10 @@ features: nullables: 1.0.2 oauth2ClientCredentials: 2.1.5 responseFormat: 1.1.0 - retries: 3.0.5 - sdkHooks: 1.2.1 - unions: 3.1.5 - uploadStreams: 1.0.2 + retries: 3.0.7 + sdkHooks: 1.3.0 + unions: 3.1.7 + uploadStreams: 1.0.3 trackedFiles: .gitattributes: id: 24139dae6567 @@ -1920,8 +1920,8 @@ trackedFiles: pristine_git_object: b486e73f7d5a275fc7ab0d88b0d4f0808cb2a90b docs/models/operations/v2importlogsrequest.md: id: 1cb529b800e8 - last_write_checksum: sha1:9539e07f4b5ccb7898a4e8a6c32511782912ae7b - pristine_git_object: 05d58396b491b1f5f0339ed7a5218a682d12b8ac + last_write_checksum: sha1:9d16eb77f1cf85ea92bbc077ec65cf774015488e + pristine_git_object: 5847cbe6abd6a990c0e86d561052e16b24a5c481 docs/models/operations/v2importlogsresponse.md: id: ccb1e1c702ac last_write_checksum: sha1:e5ffbce8726478862c178d8f4ffb8ea76acc6eff @@ -2278,6 +2278,14 @@ trackedFiles: id: 49a9c9974ecf last_write_checksum: sha1:77a3936eb0daad918cc755356c6f89876dcad2c0 pristine_git_object: 25da678ef31974ba3067fbdbc6c7ce2990684a46 + docs/models/operations/v3getconnectorcapabilitiesrequest.md: + id: 7a3686709d68 + last_write_checksum: sha1:d5c32a48f32a8dda0fdfc2f01c4fad8f947e47e9 + pristine_git_object: 1046e2336590e78163e30f55ad23f58b5b2a2f2e + docs/models/operations/v3getconnectorcapabilitiesresponse.md: + id: 079818944a2f + last_write_checksum: sha1:7ae9d64c6afea24a0ab36d92a13a7ce946fdb6bc + pristine_git_object: d1e3e9950ce364d87e16d97d293d95c62b51afb6 docs/models/operations/v3getconnectorconfigrequest.md: id: e9d5d6d4de47 last_write_checksum: sha1:c24c3bfb620ccbf31c5abbcef5a807f1a8f3f5d8 @@ -2406,6 +2414,14 @@ trackedFiles: id: 9a2e9f18c7f1 last_write_checksum: sha1:c5617617db132e723c65a040b10f5f3548c0822a pristine_git_object: 9e36ab751a5d4cb0f03d722f661f8528f8731d3a + docs/models/operations/v3listconnectorcapabilitiesrequest.md: + id: 058426b056a6 + last_write_checksum: sha1:2c4e2440bf7c1dd39612f51a2fd96552ae435db7 + pristine_git_object: 28d0372c4b14d6f8e7a1efb48be5a3b2f226d8f0 + docs/models/operations/v3listconnectorcapabilitiesresponse.md: + id: 7debbd9f3c3c + last_write_checksum: sha1:84e1d0f4cc61a2ae21175a901d15c38a8e3a487c + pristine_git_object: e72290fde264bfa7b1875353990d8ca2004e87b7 docs/models/operations/v3listconnectorconfigsresponse.md: id: ea85c163e8f9 last_write_checksum: sha1:c3c2f5c170c87f215a05df157f7d863947030bed @@ -3352,16 +3368,12 @@ trackedFiles: pristine_git_object: 46e101999a3295e10237fb2c053890f05ccaee9c docs/models/payments/account.md: id: 55bbdeaafa86 - last_write_checksum: sha1:51b6a53edd484ebf70214f6fee531d86b53e33c3 - pristine_git_object: 7f64549d8e9382fe8b0860431cf56e0f97335abd + last_write_checksum: sha1:e2c4b4a6802f81cde1b31ecc8be1f62c9b803fd3 + pristine_git_object: 1a2692dd18a6b046c39b2cbddeb22b961c11ace6 docs/models/payments/accountbalance.md: id: b57a97b4d9fa last_write_checksum: sha1:9ccdcc1e33df249bdeb75a6bd5c899afe06190ac pristine_git_object: ee63a9338e5847550b3ed0eb095652e49cc97c45 - docs/models/payments/accountraw.md: - id: 63e3096f14e3 - last_write_checksum: sha1:a3f46a88411093704c1509ccf8eaa40459c17aca - pristine_git_object: 6fb20eb1ef3c1d1b542c27f5cd75e0382084e02e docs/models/payments/accountrequest.md: id: 9c00ae5df4b1 last_write_checksum: sha1:2042b8e8f774784c802e551a9958110cc6f39b5d @@ -3504,20 +3516,12 @@ trackedFiles: pristine_git_object: a65d01b5f190d61a2f8bd5d193ef4eabebd5900b docs/models/payments/payment.md: id: c8d7c7ea4cc9 - last_write_checksum: sha1:79a17cb063f1b4ab2b8e354a943cd396c024c58f - pristine_git_object: 8eefc36361d563d03d2272f9cdcc12cfa1ee50c0 + last_write_checksum: sha1:4d055b40d2725dd58330c706b61dbebdc2e08a94 + pristine_git_object: 7bec27ea6a46921f108955a9c2192c5b3848482b docs/models/payments/paymentadjustment.md: id: 1adf4dd3ae25 - last_write_checksum: sha1:313f847ae97d47dc221335857d77e6e256749cff - pristine_git_object: 58d68030d64bb2d64563b2694675798f580be7cd - docs/models/payments/paymentadjustmentraw.md: - id: d19886cc2df3 - last_write_checksum: sha1:a89d39f15638ed74ebf5e484491a846fbba4d63e - pristine_git_object: 78f88aee5c8376683e8afb37a557cde1d4779495 - docs/models/payments/paymentraw.md: - id: f615dd909b38 - last_write_checksum: sha1:8380da891216d461e7cc57ff268f773d0097b105 - pristine_git_object: e884afe329a45217d54d17af7da259c49bb3adc1 + last_write_checksum: sha1:b3fdcd9bcbdf890262da7bb1ce03023a7f0c7540 + pristine_git_object: 70676306ccc44d4bc1968fb8221ac8e973920c20 docs/models/payments/paymentrequest.md: id: 17cb7b525f7e last_write_checksum: sha1:8438661b85a67dfaedd0d7c718e2985fed56e3b2 @@ -3792,12 +3796,8 @@ trackedFiles: pristine_git_object: d8702704ec66e75192bea765c5633a0f24e1eb63 docs/models/payments/v3account.md: id: 0396b3c898e0 - last_write_checksum: sha1:79d3a08b1cb1b8cc2d52fc4c5e704effa29a2141 - pristine_git_object: f277326c4ab3f9aa7e3d1053dc184641724a1c4a - docs/models/payments/v3accountraw.md: - id: 2fd7eedbe20b - last_write_checksum: sha1:b7d449c4a6218d001c0f27161b0e290ae54c4486 - pristine_git_object: 68315384f57f7c13a374091508e0647c0f90411c + last_write_checksum: sha1:0c83b9ee73772fb842f1bd4c5a26cb31491e9ec7 + pristine_git_object: fa2a4bd8e0dd43cafba4c2f07927bc9e11ca47eb docs/models/payments/v3accountscursorresponse.md: id: f4d70cf74bfc last_write_checksum: sha1:c9586520120a1c963dcc9971927373c7afc66690 @@ -3874,6 +3874,10 @@ trackedFiles: id: bbbed3b78b61 last_write_checksum: sha1:e0937d826fd98f85ec43b54b767a9826e335e73b pristine_git_object: 149d3713656290e4ef97576ba6ab8dc5fdb360a1 + docs/models/payments/v3capability.md: + id: 4d53749722be + last_write_checksum: sha1:75bbf02c2ef10b5109a3a66a057bbd7a92e931a5 + pristine_git_object: 2ab9aa8026b11d89db81c5f76e07baa20c66611b docs/models/payments/v3coinbaseprimeconfig.md: id: 0feaea523857 last_write_checksum: sha1:1c8c6de406e1e3dd2a10b2bf6a3ac2772371bb35 @@ -3888,16 +3892,24 @@ trackedFiles: pristine_git_object: 15e87e4357b63f28051b29633ac65b19d30390c5 docs/models/payments/v3connector.md: id: 60eaa740862a - last_write_checksum: sha1:cca1231824e1603057da235c8ec46e817751b2b8 - pristine_git_object: fd3c7291f5764bc5a69fd2ac937f0c4ab9588c0c + last_write_checksum: sha1:09625fc13f64e45fb7a41d6f149d697d33e880da + pristine_git_object: 20e1b2ca39f9685b0f9244678ec2074e239de786 docs/models/payments/v3connectorbase.md: id: 3b85f8339ced last_write_checksum: sha1:dc05192d77e551422b8943e3e269c5255123c440 pristine_git_object: ab0603919044605de455dc463b7e9c9c221eabd0 + docs/models/payments/v3connectorcapabilitiesresponse.md: + id: db7d7d91d7a2 + last_write_checksum: sha1:9c48102791e55681ac56b7901ee977596e98eb7d + pristine_git_object: 627fae34cf137ed447826833fecbae2c399777c5 + docs/models/payments/v3connectorcapabilityresponse.md: + id: b29501726729 + last_write_checksum: sha1:4df5dfd5de5d2f7a643dd284f19ac0a0de5cec62 + pristine_git_object: 1509a13f258afe090e78e04821be8abbdfaccf5c docs/models/payments/v3connectorconfig.md: id: 71ba8ea17931 - last_write_checksum: sha1:3d647c94909b4696ec4666a1203d7b68315d5a6d - pristine_git_object: 3af0fb2e3d8d70b313d4daa5e85f38c9a3d78ffe + last_write_checksum: sha1:af4ccdd0f7d3ee3a7132adb67d25064d5c714292 + pristine_git_object: f3f28940a8bb05acaf1e6e28b11bcb01b9d1389d docs/models/payments/v3connectorconfigsresponse.md: id: ab199496e648 last_write_checksum: sha1:3eb50d0a76ebfd496de0305d83683efdba5a51cf @@ -4114,6 +4126,10 @@ trackedFiles: id: ef4cc1a88fa2 last_write_checksum: sha1:5ba9e876ff54d9ff02050808356cbf1a5bf820b7 pristine_git_object: b6ebe75f9eed9f1c2ea2d65f29829b32db40c8be + docs/models/payments/v3krakenproconfig.md: + id: 9f21e1aded7f + last_write_checksum: sha1:2cdff6a0c5f1ede1d32fdd8c34d7757e9277676d + pristine_git_object: 550b4699e0a343ea9b54bd0c0406a17e72484f7d docs/models/payments/v3mangopayconfig.md: id: 91f37e091378 last_write_checksum: sha1:c83dc33324488a210a80675532535e51bbda3dfc @@ -4136,12 +4152,8 @@ trackedFiles: pristine_git_object: 2eaa1b0a9ca4a472cdeceabd22d65d80eb195d4f docs/models/payments/v3orderadjustment.md: id: 55ed3f86e242 - last_write_checksum: sha1:30978e4accc69122f53c12fd85d8fe31c7359b64 - pristine_git_object: e0fd0e15b2df09aa607d2a8ba144a4762dcadaa5 - docs/models/payments/v3orderadjustmentraw.md: - id: ba33a17e2867 - last_write_checksum: sha1:b994af0cf462c87c140db1e0c2118dd05db7f85f - pristine_git_object: 40fdc07d462a5ef9e07470f51bbf3344b7ae6414 + last_write_checksum: sha1:5b9483a5e4b601cf527ec9f77f64c796bb542697 + pristine_git_object: c1ef08629285e1511b6f7115821d257a4574d458 docs/models/payments/v3orderdirectionenum.md: id: 94dffd0cf300 last_write_checksum: sha1:0fc9c592dfae09cd4357375c3f41ab7b498ddcb9 @@ -4168,12 +4180,8 @@ trackedFiles: pristine_git_object: d40e915e7597cf070d563d3dcb717a6ef3364754 docs/models/payments/v3paymentadjustment.md: id: 9e65962c23eb - last_write_checksum: sha1:8051f4f565afe858792a96a67e059136e3efc7b2 - pristine_git_object: e8f1227808b6981ba006774310906b7ba396a37d - docs/models/payments/v3paymentadjustmentraw.md: - id: 439ba5ebe38c - last_write_checksum: sha1:36fb51ef791a0ae71cc046e851e82c048d93c730 - pristine_git_object: c2068f70632928514561cd87acbb2a40aedd62f0 + last_write_checksum: sha1:38d7d112a4e167454b7738d2093ddcd9d5657689 + pristine_git_object: 2aa59f3f83146b5055ecb42dd9c3c10b0de2ac0d docs/models/payments/v3paymentinitiation.md: id: 0148e85afba5 last_write_checksum: sha1:78cb174dd5c9d5e932f47981e86e1362f010995d @@ -4740,8 +4748,8 @@ trackedFiles: pristine_git_object: 754b101469fdf9e9069f27641d00d09cd7fdeef9 docs/sdks/v3/README.md: id: ee683463fcdd - last_write_checksum: sha1:ef57b9c21f793c5a80cfc8afa590b7b1004ae382 - pristine_git_object: 8edf9bf45db6ceec941c517fe11f471eabdb77a0 + last_write_checksum: sha1:754af69da6643311dd3346b0e0076834f4ab58b0 + pristine_git_object: ccf1ff03265ce836fc73cdc63fce69d83b7c86bd docs/sdks/walletsv1/README.md: id: e2e2730793ef last_write_checksum: sha1:68717a4d7b2f7be432cc00bb78a70a728539082b @@ -4764,8 +4772,8 @@ trackedFiles: pristine_git_object: 7f810d0d754cf46304748cba52ab99323e346c33 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:60ef81ed95883f896e96bd7e9e5d0abff0582b1a - pristine_git_object: 4982fa9b33308e9f8c4ed87c7ab89a7ec559b1ba + last_write_checksum: sha1:25452b630aec61ed7416d1a2bd85e34a84849fb1 + pristine_git_object: 37645f5e459aa004004c23b7cfcf11d10f8aa3d0 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:72a46c2776bad92e53b4bc5b3b76ca67d13dffda @@ -4792,20 +4800,20 @@ trackedFiles: pristine_git_object: b014dc318c5b35c682274ce1f4ad85b64fbabd1b src/formance_sdk_python/_hooks/types.py: id: 4cb8e5ff255f - last_write_checksum: sha1:1c981460f9fd2211cbcb52629954d859c9bc1710 - pristine_git_object: 34750f90d2bbb67b72de877e865b8ab28455b1c0 + last_write_checksum: sha1:2c903d011e4be312effd714cc32513b7ab7c8b71 + pristine_git_object: c99ae5268044d366e2ac584865c45aa00e01595b src/formance_sdk_python/_version.py: id: ece483bb5810 - last_write_checksum: sha1:73876e137e7d26893f5125d6173d91e928edab24 - pristine_git_object: 443e29ce87ab1e082d8f832bb22c57b1d0e705c1 + last_write_checksum: sha1:a8db793b9f36af0bf32ed32decd4032b10457319 + pristine_git_object: 6f65591b15d5957cfe7376344ca4ed9d1e7f3048 src/formance_sdk_python/auth.py: id: 937cbfdb64e3 last_write_checksum: sha1:8f030e786ddba8357a6dab3e2f86cec56415fdc6 pristine_git_object: 2f69c2f240b9dfdb7a13e1b305fd0216b87d543b src/formance_sdk_python/auth_v1.py: id: c4901fb79d7a - last_write_checksum: sha1:b8c13f2a0a21661dd9a5d8300e318c28d6cddebd - pristine_git_object: c98a82977e5d9e381306f7c5adf0282499dbc7ad + last_write_checksum: sha1:df070d8a9ec2e3016a89242cb08f77fd7f47df15 + pristine_git_object: 07e92ed63c21950e750d17e4114038f6a3e76013 src/formance_sdk_python/basesdk.py: id: 5464d449f5d2 last_write_checksum: sha1:ba2a531136699e1abcbcd89e7beacbeade045668 @@ -4816,16 +4824,16 @@ trackedFiles: pristine_git_object: 89560b566073785535643e694c112bedbd3db13d src/formance_sdk_python/ledger.py: id: 829c1443c3b2 - last_write_checksum: sha1:9aff71cd6dd78755af866733af73e060c67990b4 - pristine_git_object: 178146a77f0d8fded815fc75a552c3a15fbbb84d + last_write_checksum: sha1:4c817ee0430593d232498e31f56f0727613eeed9 + pristine_git_object: 02f885067eefd49deb6c19e195bbd3db1057ec60 src/formance_sdk_python/ledger_v1.py: id: 1c3bc296e7c8 - last_write_checksum: sha1:eb21740db31e9526ab80fde44da2ae732f42f9a2 - pristine_git_object: 18d59c0fb190274c26ca2230088660ceb02a062a + last_write_checksum: sha1:2e915e5ebda0801f529eafb8474fe17417214234 + pristine_git_object: 306af937d552a5376afbfb88ebdf136c31984362 src/formance_sdk_python/ledger_v2.py: id: 7e04403cbae8 - last_write_checksum: sha1:ac68fa6c7a9cb96d843b96213e0e95583c796073 - pristine_git_object: ce485a35ca0fd96d5398f03090aefcbe2c8c1c18 + last_write_checksum: sha1:80a5eecd1925b9b0b5fe442c49461118461a5b89 + pristine_git_object: 7dd089d68ab1dae2e849f741825753916d37dd75 src/formance_sdk_python/models/__init__.py: id: d1264ca63bc8 last_write_checksum: sha1:829644477154e824bdd37fb4277563a54fcf9bce @@ -5332,8 +5340,8 @@ trackedFiles: pristine_git_object: 20bc781aa374932da271fef0c8026a285d09eb40 src/formance_sdk_python/models/operations/__init__.py: id: 0080704286af - last_write_checksum: sha1:49e2c038b8fe129a3a00eb6e2ae3619e0a2561e0 - pristine_git_object: a860d6225b4bbf00820e10c88e0e27526e51125e + last_write_checksum: sha1:b58978f076d036b5914759644b91d36b6540b8d6 + pristine_git_object: 9cade90204f719f76711e3c9713ca3cb72acb04f src/formance_sdk_python/models/operations/activateconfig.py: id: ff8326bbb0e6 last_write_checksum: sha1:b466172a1cd6a82bab959a11635f7017657ea78e @@ -5996,8 +6004,8 @@ trackedFiles: pristine_git_object: b0594e4ef681ad0e6d53b1ea7ade0893a34465ab src/formance_sdk_python/models/operations/v2importlogs.py: id: ea6780bd2d26 - last_write_checksum: sha1:152870967510867d33e5cecc399e3f193eb352f3 - pristine_git_object: 3717fbb6f57df9137cce7d4ae341e05b1d239fd3 + last_write_checksum: sha1:3f51672e7074a628faf5e717125c90c011f60e3b + pristine_git_object: bc0ccdc282ae127ce8e062493cda43a0aa0f4e76 src/formance_sdk_python/models/operations/v2insertschema.py: id: 8f2c16755ddc last_write_checksum: sha1:7b4ae222babc47bc1e2ac4d53d1a8882298f119f @@ -6174,6 +6182,10 @@ trackedFiles: id: 2a01e7e1f165 last_write_checksum: sha1:a19be7616a0c3aa0cb7d3ca20620607a31ee9e59 pristine_git_object: 613baf6ed6e66e90c2b2610013ec67bb3179d103 + src/formance_sdk_python/models/operations/v3getconnectorcapabilities.py: + id: a5528343ce01 + last_write_checksum: sha1:90a4528f6eafa5f382ce7f7f09dcfad784ca873e + pristine_git_object: 4f6318405662aee6354e44f4b1b5a7231bc7117a src/formance_sdk_python/models/operations/v3getconnectorconfig.py: id: a26f3113636c last_write_checksum: sha1:90fbfad2ef6509d710feb1009767cc428bf55803 @@ -6238,6 +6250,10 @@ trackedFiles: id: 2078917d172f last_write_checksum: sha1:cd0a43ebc75be6e9c3f83ef39a0ff7afc7095632 pristine_git_object: 4943a2c7230c88460fbbf5af093bef2f4cbcee34 + src/formance_sdk_python/models/operations/v3listconnectorcapabilities.py: + id: 3750e8d77465 + last_write_checksum: sha1:c1c7e83c3a9b1a877c7c70464a6981a3dd8986f6 + pristine_git_object: 01ac92081f351a592c1bcf031f9b9ff5845c0e54 src/formance_sdk_python/models/operations/v3listconnectorconfigs.py: id: b7e38c6a867d last_write_checksum: sha1:07c76ecf23c1c00c74335d8700f360f5a67c930d @@ -6964,12 +6980,12 @@ trackedFiles: pristine_git_object: 364ea73c18ee59a74cd76b88d2c643fbc67e380f src/formance_sdk_python/models/payments/__init__.py: id: e4cd27cda27d - last_write_checksum: sha1:b5110e276834d18ab944ee3c7882e0d183fe5101 - pristine_git_object: 14cfdd3912f41811dc259015d7851a18bf51cc50 + last_write_checksum: sha1:a180abc5c2e64dcd00026391c8541ab79875a198 + pristine_git_object: eaa9816298e64075cc84d6767c81d32c093c4328 src/formance_sdk_python/models/payments/account.py: id: 55ca8d14e55c - last_write_checksum: sha1:1f5665e28f28e8307b8a54a165de51c069780f47 - pristine_git_object: dc1b4bdb4e9477188b780c7f7582b05e617b3c58 + last_write_checksum: sha1:a7a093de1effdbdca93fe2732ff15a637bef3741 + pristine_git_object: c936370afc68db238dea95fb8f143899d35f4f25 src/formance_sdk_python/models/payments/accountbalance.py: id: 009a4f97131f last_write_checksum: sha1:1599fc79e302733c199e8f7624ef89f66622e8b5 @@ -7088,12 +7104,12 @@ trackedFiles: pristine_git_object: d33f816f45f72c2e639aba1853186a940a0dcfa0 src/formance_sdk_python/models/payments/payment.py: id: 56a06008307a - last_write_checksum: sha1:f73651034bfd62c44c867167dbc5f78d6bbcecb0 - pristine_git_object: ade211c5c09ae83a94f5ee1e683982547ef011db + last_write_checksum: sha1:97304d964cba2333cbfda5f328fc67440b837995 + pristine_git_object: 908d670cfeeac424b633060a4f7eb1bb781011f2 src/formance_sdk_python/models/payments/paymentadjustment.py: id: dc3520889b5b - last_write_checksum: sha1:54f4533d1ea78d95828c48d0c4be952223b5aa5b - pristine_git_object: ca6c37fb35851a0586d3047448a8ec42bb2d1f69 + last_write_checksum: sha1:586fdf3df6b414146a55dc6c48edb80b002c914c + pristine_git_object: f09ef6d5ad0e72c03a3f8424179ccd31a752f6df src/formance_sdk_python/models/payments/paymentrequest.py: id: 737630196ecb last_write_checksum: sha1:7edb945f9eaeb444f2d45963367a72f18f5f934d @@ -7268,8 +7284,8 @@ trackedFiles: pristine_git_object: 5ea0c6b50b161cb8def16c9083398de676c5aeb8 src/formance_sdk_python/models/payments/v3account.py: id: 1fa89158b6b2 - last_write_checksum: sha1:f5e2e70cfbc36b56da46ce60df3842dd996937ba - pristine_git_object: bb81b061facf484c2f353cac9d2446c89bde8065 + last_write_checksum: sha1:94292f3128348507c2509b2f086bdfd7ae07f020 + pristine_git_object: d00be08ed2d6071b1da38aa2bfa63acfd63c862b src/formance_sdk_python/models/payments/v3accountscursorresponse.py: id: 3bd749dc9d9f last_write_checksum: sha1:5c63ed85fb09d16527957ed546757e125f962db6 @@ -7330,6 +7346,10 @@ trackedFiles: id: bc51d475a27e last_write_checksum: sha1:af0b07d93485cafa160c45312cf152f3d1bb29a6 pristine_git_object: 6b2901091d30bc3945408f050b847e00a609fdea + src/formance_sdk_python/models/payments/v3capability.py: + id: db2933fee6bd + last_write_checksum: sha1:63a0344623590125c7ad77c9517fbfca419df5df + pristine_git_object: 4678cfd57056d53a593b6a42c1e70872ff1af24e src/formance_sdk_python/models/payments/v3coinbaseprimeconfig.py: id: 1a95ad95d110 last_write_checksum: sha1:4133a85934b6285e23def66cb0207d3fed122ce0 @@ -7344,16 +7364,24 @@ trackedFiles: pristine_git_object: 4a01442ae99ffb3bc32a72f71f8582180a423fb6 src/formance_sdk_python/models/payments/v3connector.py: id: a1d68c72dae0 - last_write_checksum: sha1:52de32a03b4a38d19892270c9607e698127caa92 - pristine_git_object: 45c39335778e5139c121596faa9c847d514fb8d4 + last_write_checksum: sha1:81daca44aebcffe1ad9070dfb30a9fdfe4825041 + pristine_git_object: 4904c471a697b1e8333db838666fe96ea4fddc8e src/formance_sdk_python/models/payments/v3connectorbase.py: id: 6ea152a14a1c last_write_checksum: sha1:95fce700ab2ae5237934851bc195c5f129766f25 pristine_git_object: 7a88f9ccf518b08f1016ccaa6ab6e195158f6076 + src/formance_sdk_python/models/payments/v3connectorcapabilitiesresponse.py: + id: e078f865e887 + last_write_checksum: sha1:417ef06924ba5ca641af40fe3ac66a15efb009b0 + pristine_git_object: dd3876d7380860f088914a575a88094e0f32e918 + src/formance_sdk_python/models/payments/v3connectorcapabilityresponse.py: + id: 5530b65320d7 + last_write_checksum: sha1:5456be0239475e2dc45eb65f04b7d663fca41148 + pristine_git_object: aa438a27858126cb7e917ccc4ca659e37d35e5a2 src/formance_sdk_python/models/payments/v3connectorconfig.py: id: 23bf66996df6 - last_write_checksum: sha1:a1869d9fbbc0f8a6327eceb462f6035dce763142 - pristine_git_object: 45fe4bf84a5f5a6e77e091dffa32ca0471e82086 + last_write_checksum: sha1:53564850d1c1998f2d66ec5340750cb467b30880 + pristine_git_object: 888ac9cd76420c5396e095178da715b22f483b91 src/formance_sdk_python/models/payments/v3connectorconfigsresponse.py: id: 8d83ae07b939 last_write_checksum: sha1:766c9e873586f7670c41a83885b80f9db09f432a @@ -7538,6 +7566,10 @@ trackedFiles: id: 32c54ef7ef4c last_write_checksum: sha1:8bbf4bb9d417c65af34d43f78bb979aa43c10d32 pristine_git_object: 31c50678b916d99f75519e35dab334f996f1edbd + src/formance_sdk_python/models/payments/v3krakenproconfig.py: + id: 8053feb7f332 + last_write_checksum: sha1:3b5f1ed406e391081398a87a696d8bea12314233 + pristine_git_object: 727aec5aaa0d11fc9459df70cecdceaf79ac47be src/formance_sdk_python/models/payments/v3mangopayconfig.py: id: e2c18e81eaf1 last_write_checksum: sha1:26c804526fce9d06df97edd8e2681ebfa826c8fc @@ -7560,8 +7592,8 @@ trackedFiles: pristine_git_object: d5b6f45abc1a2b534a2fadc32f06382d376b9d7f src/formance_sdk_python/models/payments/v3orderadjustment.py: id: 61efeee276f5 - last_write_checksum: sha1:33de837c5db67cce4c6ab97311093bdbae6c8bed - pristine_git_object: f5ea2d605a0b21f4661c12facc70f93ba2c05127 + last_write_checksum: sha1:b72f4c2dcca5eebbdff6e82d0cde9c9ff77d3124 + pristine_git_object: 93f75eed20a4e3a76fae7c4430344ba19298238c src/formance_sdk_python/models/payments/v3orderdirectionenum.py: id: aeb5e9c97e4e last_write_checksum: sha1:832bbec51b1c790e53b6c66fa02e401da3203ef4 @@ -7584,8 +7616,8 @@ trackedFiles: pristine_git_object: f38b7c4d33faffae320a1f5b395bc2ac72e11ce8 src/formance_sdk_python/models/payments/v3paymentadjustment.py: id: 84928c13d68c - last_write_checksum: sha1:f98658fcfaa1591d010360a2236542a7998bd7ec - pristine_git_object: 15d94748c11dabc12272046c678af5688824dde9 + last_write_checksum: sha1:6e199e40ab30493e7e40df0181ffb493a43ecf1d + pristine_git_object: b66ee70c2fcb1130c3285350df1df465a10ad65a src/formance_sdk_python/models/payments/v3paymentinitiation.py: id: 7653c8d54e96 last_write_checksum: sha1:a9aadbcaf41a0a23f4e5af870a47c4b0af3672b6 @@ -8024,20 +8056,20 @@ trackedFiles: pristine_git_object: 2c0fba2992ffa2fb077f4b9305591e5005754dfc src/formance_sdk_python/orchestration_v1.py: id: 3f3b42235029 - last_write_checksum: sha1:a5923bed9987b68b3e4009d04d95f010cd780653 - pristine_git_object: 28bfa4d993a795280cfb8b51ca257bdd8f8933eb + last_write_checksum: sha1:3d43632cfc29f4df2c58033c452fef2d17175e2b + pristine_git_object: e6fef1aaaa84de7043e402e809e84bfb41a2e4ee src/formance_sdk_python/orchestration_v2.py: id: 1d9860970786 - last_write_checksum: sha1:cbdda080ffef5744b77699741da3c3d10bc22966 - pristine_git_object: 5cbb8e9dcce7ad4b42c4157fa02cbd58321b25ca + last_write_checksum: sha1:dad3e7473eb2e74d38e5868f82ca4e9c24927af5 + pristine_git_object: 29c490e6c2c303c29de91193746005038b9f5dde src/formance_sdk_python/payments.py: id: ea5a1e59c6a8 last_write_checksum: sha1:594f42dda87e67cf353c9c6db92771e27ec1d8f5 pristine_git_object: 99778a0f6d7f3028112d4c3a0354a330e6b74c49 src/formance_sdk_python/payments_v1.py: id: 1831576d6163 - last_write_checksum: sha1:48c305b1b32f72fe7b3719414a54a42908a5a8c9 - pristine_git_object: 94f7bf6d6fba81993658b9dca6396b8e124ffd73 + last_write_checksum: sha1:94be9d325ba7af8776c0bd1d409382b9d3f03caf + pristine_git_object: 8fa3cb0a1dd6013c515c592588d32375bd9c3531 src/formance_sdk_python/py.typed: id: dfba05c0aea1 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 @@ -8048,12 +8080,12 @@ trackedFiles: pristine_git_object: 294aff92fd54498a44681e428bf4b25127ce93b0 src/formance_sdk_python/reconciliation_v1.py: id: 525731bd0292 - last_write_checksum: sha1:551374b6301ae0206648944a26a455ed0a94f520 - pristine_git_object: 45116b1e8a446715a9ea27c1241f686b5d5a58fa + last_write_checksum: sha1:42bba933ddc1831dfa5ccc5f585e1785e68c1673 + pristine_git_object: ce483b341d372b5589aa3d624feb9d837a794888 src/formance_sdk_python/sdk.py: id: 876a78585638 - last_write_checksum: sha1:494f92fff126c0d483b57b359a196f02b645549e - pristine_git_object: b6e2607729ae44281ad2fac1b28e9d7f392c8ec1 + last_write_checksum: sha1:a29f0025288cc6f0313304df661955d089f3813e + pristine_git_object: 6f071749cb381c51ce45c13dbd47dc23492f2c53 src/formance_sdk_python/sdkconfiguration.py: id: 84a052f87fa0 last_write_checksum: sha1:1c942f58ad74d7e02aa93d67474d994ed637725e @@ -8064,32 +8096,32 @@ trackedFiles: pristine_git_object: 1b51c8c195b44c29435c384a6e58505c73b23129 src/formance_sdk_python/search_v1.py: id: 6de441717a01 - last_write_checksum: sha1:e811c64efb43f395c3e6bc7fa1b9f501665677af - pristine_git_object: 3d59981e172c270946e25927c20cc6c8b3cb6c60 + last_write_checksum: sha1:5245080451d10a88c64a768fe987015b86a77748 + pristine_git_object: 8bd10eda3923188f5ffd2a4ca29d79fab696b0a1 src/formance_sdk_python/types/__init__.py: id: 2336d4e1d29a last_write_checksum: sha1:f9ad14217f832e74f594285960125add50324be9 pristine_git_object: faa268137bc01c9d08cfadc4797017db48747a96 src/formance_sdk_python/types/base64fileinput.py: id: 2af7111d3d86 - last_write_checksum: sha1:4780e893d3853b5a6e28d9a6ca3ee102ce0f502d - pristine_git_object: 25fc53989ed497649363f983219fc58705c8bf87 + last_write_checksum: sha1:1522687ae3398374c35710cad993a6e82b5ab99d + pristine_git_object: 862566fe2b1db830276b390e136e65090e5963d2 src/formance_sdk_python/types/basemodel.py: id: 94e044d91e05 last_write_checksum: sha1:10d84aedeb9d35edfdadf2c3020caa1d24d8b584 pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee src/formance_sdk_python/utils/__init__.py: id: 9b6c686abed0 - last_write_checksum: sha1:1970816f2234ecb8785798240b0edced961de971 - pristine_git_object: 0498cb8dabf249b39609f81fb10cddc30f1b78b5 + last_write_checksum: sha1:53c9544397bbc534c45a228feac3cdb2e9017fe6 + pristine_git_object: 7af3b82cf95edc2901bc85b2624c54f39b7f9724 src/formance_sdk_python/utils/annotations.py: id: f624809919f0 last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc pristine_git_object: 12e0aa4f1151bb52474cc02e88397329b90703f6 src/formance_sdk_python/utils/datetimes.py: id: 49fe2afe5043 - last_write_checksum: sha1:c721e4123000e7dc61ec52b28a739439d9e17341 - pristine_git_object: a6c52cd61bbe2d459046c940ce5e8c469f2f0664 + last_write_checksum: sha1:fa47d54c549ff9b95496ce91930fadfb04a36be9 + pristine_git_object: adad24762cf452d137abe94fda0fd26224cef593 src/formance_sdk_python/utils/dynamic_imports.py: id: 8740a4ca10c0 last_write_checksum: sha1:a1940c63feb8eddfd8026de53384baf5056d5dcc @@ -8100,12 +8132,12 @@ trackedFiles: pristine_git_object: 3324e1bc2668c54c4d5f5a1a845675319757a828 src/formance_sdk_python/utils/eventstreaming.py: id: 23890b8ccae5 - last_write_checksum: sha1:620d78a8b4e3b854e08d136e02e40a01a786bd70 - pristine_git_object: 3bdcd6d3d4fc772cb7f5fca8685dcdc8c85e13e8 + last_write_checksum: sha1:7d1dc68f8b48486ab646653aa05cc38752e1f912 + pristine_git_object: a8d4fe5cc88d3c7337339e1b36a61bbf7ca8c4eb src/formance_sdk_python/utils/forms.py: id: b74fe767ff1c - last_write_checksum: sha1:15fa7e9ab1611e062a9984cf06cb20969713d295 - pristine_git_object: f961e76beaf0a8b1fe0dda44754a74eebd3608e7 + last_write_checksum: sha1:a971cdb120ad3d416d296d5d0ad89e4808350a7f + pristine_git_object: fdf0dc9b2a67bca773eefe6b471498cccaa83424 src/formance_sdk_python/utils/headers.py: id: 9796ea1edea2 last_write_checksum: sha1:7c6df233ee006332b566a8afa9ce9a245941d935 @@ -8128,16 +8160,16 @@ trackedFiles: pristine_git_object: 591415af8e64baa410627b507d2740afb5387d13 src/formance_sdk_python/utils/retries.py: id: 5ae3b08b3cfc - last_write_checksum: sha1:471372f5c5d1dd5583239c9cf3c75f1b636e5d87 - pristine_git_object: af07d4e941007af4213c5ec9047ef8a2fca04e5e + last_write_checksum: sha1:3585b891142f30a597fbf7a2f0340700babef8e4 + pristine_git_object: ca7b59efebbbd9545744d0207ef42725c4cc5143 src/formance_sdk_python/utils/security.py: id: 4bc77a00ba1f last_write_checksum: sha1:c11eef495b6aaa249178c24c796940cc540b7a00 pristine_git_object: 42d8d78e9981eed7507670014d99588e27ab325a src/formance_sdk_python/utils/serializers.py: id: 9e9ab9106053 - last_write_checksum: sha1:61009f2e4ef6613a1a5af813fe020373dae5a492 - pristine_git_object: d2149f8b909cb96628db140ac3cddb1b1e981367 + last_write_checksum: sha1:7485f1425b0661fd84836186570df90207eec6af + pristine_git_object: 1031ed930bad5ece220cf7416a56c29f40f0588b src/formance_sdk_python/utils/unmarshal_json_response.py: id: 8b86a169c2d0 last_write_checksum: sha1:5d876d4f611d123b2322968d886780ce8ab3bd4a @@ -8152,24 +8184,24 @@ trackedFiles: pristine_git_object: dae01a44384ac3bc13ae07453a053bf6c898ebe3 src/formance_sdk_python/v3.py: id: c5c687621dee - last_write_checksum: sha1:0280650024ac2f97775b24ddc7e83dc3365c8087 - pristine_git_object: f7d21f98bfd1cfcd119c70df4502e5d1aeb820a4 + last_write_checksum: sha1:927e2338e753e1fd4b81cfa71d339663f8cc1e12 + pristine_git_object: acf39f7c299b0a3f7fe09f1d0ce20bc393e56d95 src/formance_sdk_python/wallets.py: id: 012794d17e0d last_write_checksum: sha1:3f170b6e72a5f923dabf122599b20df372436452 pristine_git_object: df4f822e3f4ae33011fac4df10c3def2c953e6ed src/formance_sdk_python/wallets_v1.py: id: 384aa6d9aa08 - last_write_checksum: sha1:f8e6de62d2b3fc9a9f2a8fa81ab0863253d2436e - pristine_git_object: 465c5cb1c977b59682d057904a03b5fa1e85cd5f + last_write_checksum: sha1:47d859222d3135d3150655f5c62a03d83897f292 + pristine_git_object: d6cfbc8fb5968209398f9137f6074db28f1835e7 src/formance_sdk_python/webhooks.py: id: af96aa82ab3d last_write_checksum: sha1:f009114842da0c90419e502bff26f8080bdc9854 pristine_git_object: 70e6480a03e0b1b2dea64629e8eb6fc742c673c3 src/formance_sdk_python/webhooks_v1.py: id: 2ec22c52fd3b - last_write_checksum: sha1:6a15a5adbdc24a0b0e6ed8770043c6ace1f17411 - pristine_git_object: 770db610566c8abaecde59f396ca2bf46c6212e2 + last_write_checksum: sha1:ff2d7c58e085f8e4c6e61da14b9397ffef87882a + pristine_git_object: 8652ffe07216f4a45031c0acabe99040073829f4 examples: getVersions: speakeasy-default-get-versions: @@ -11651,8 +11683,26 @@ examples: application/json: {"version": ""} default: application/json: {"errorCode": "VALIDATION", "errorMessage": ""} + v3GetConnectorCapabilities: + speakeasy-default-v3-get-connector-capabilities: + parameters: + path: + connectorID: "" + responses: + "200": + application/json: {"data": ["FETCH_EXTERNAL_ACCOUNTS"]} + default: + application/json: {"errorCode": "VALIDATION", "errorMessage": "[VALIDATION] missing required config field: pollingPeriod"} + v3ListConnectorCapabilities: + speakeasy-default-v3-list-connector-capabilities: + responses: + "200": + application/json: {"data": {"key": ["ALLOW_FORMANCE_ACCOUNT_CREATION"]}} + default: + application/json: {"errorCode": "VALIDATION", "errorMessage": "[VALIDATION] missing required config field: pollingPeriod"} examplesVersion: 1.0.2 generatedTests: {} +releaseNotes: "## Python SDK Changes:\n* `sdk.payments.v3.get_account()`: `response.data.raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.get_connector_config()`: `response.data.union(V3KrakenproConfig)` **Added** (Breaking ⚠️)\n* `sdk.payments.v1.create_account()`: `response.data.raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v1.create_payment()`: `response.data` **Changed** (Breaking ⚠️)\n* `sdk.payments.v1.get_account_payments()`: `response.data.raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v1.get_payment()`: `response.data` **Changed** (Breaking ⚠️)\n* `sdk.payments.v1.list_accounts_payments()`: `response.cursor.data[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v1.list_payments()`: `response.cursor.data[]` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.create_account()`: `response.data.raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.create_payment()`: `response.data.adjustments[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.list_payments()`: `response.cursor.data[].adjustments[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.get_order()`: `response.data.adjustments[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.list_payment_initiation_related_payments()`: `response.cursor.data[].adjustments[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.get_payment()`: `response.data.adjustments[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.list_orders()`: `response.cursor.data[].adjustments[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.list_accounts()`: `response.cursor.data[].raw` **Changed** (Breaking ⚠️)\n* `sdk.payments.v3.list_connectors()`: `response.cursor.data[].capabilities` **Added**\n* `sdk.payments.v3.install_connector()`: \n * `request.v3connector_config.union(V3KrakenproConfig)` **Added**\n* `sdk.payments.v3.get_connector_capabilities()`: **Added**\n* `sdk.payments.v3.list_connector_capabilities()`: **Added**\n* `sdk.payments.v3.v3update_connector_config()`: \n * `request.v3connector_config.union(V3KrakenproConfig)` **Added**\n" generatedFiles: - .gitattributes - .vscode/settings.json diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 6927d370..4264ec25 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,19 +1,19 @@ -speakeasyVersion: 1.770.0 +speakeasyVersion: 1.791.0 sources: stacks-source: sourceNamespace: stacks-source - sourceRevisionDigest: sha256:c85e21f1f000f0409f58d4ace7aaac0d708f4577a19b638347b41dd37e19f317 - sourceBlobDigest: sha256:24159a4c5e03fd9ebc0727cecb2bff5ed6695d519aeb3fe80346af6ce1fabcfa + sourceRevisionDigest: sha256:29bcc13579975f77dd3c03533a712fe17b643af1c516b86f4a499f42856f32b7 + sourceBlobDigest: sha256:78f47f273db89d72d6e74f2f284483f751ee4449fb7f46efadc4525882a6f955 tags: - latest targets: formance-python-sdk: source: stacks-source sourceNamespace: stacks-source - sourceRevisionDigest: sha256:c85e21f1f000f0409f58d4ace7aaac0d708f4577a19b638347b41dd37e19f317 - sourceBlobDigest: sha256:24159a4c5e03fd9ebc0727cecb2bff5ed6695d519aeb3fe80346af6ce1fabcfa + sourceRevisionDigest: sha256:29bcc13579975f77dd3c03533a712fe17b643af1c516b86f4a499f42856f32b7 + sourceBlobDigest: sha256:78f47f273db89d72d6e74f2f284483f751ee4449fb7f46efadc4525882a6f955 codeSamplesNamespace: stacks-source-python-code-samples - codeSamplesRevisionDigest: sha256:49578638117ca68cb0b44a1596c8fce49223eb7b871b2bea8afb5ce56efa352a + codeSamplesRevisionDigest: sha256:a10ee8892e1026aeb89cacbfdda76af2d0331d858402635924720455f436ba05 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README-PYPI.md b/README-PYPI.md index e27f71bd..b0de4954 100644 --- a/README-PYPI.md +++ b/README-PYPI.md @@ -379,6 +379,7 @@ asyncio.run(main()) * [get_account](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_account) - Get an account by ID * [get_account_balances](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_account_balances) - Get account balances * [get_bank_account](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_bank_account) - Get a Bank Account by ID +* [get_connector_capabilities](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_connector_capabilities) - Get the plugin capabilities of an installed connector * [get_connector_config](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_connector_config) - Get a connector configuration by ID * [get_connector_schedule](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_connector_schedule) - Get a connector schedule by ID * [get_conversion](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#get_conversion) - Get a single conversion by its Formance ID @@ -395,6 +396,7 @@ asyncio.run(main()) * [install_connector](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#install_connector) - Install a connector * [list_accounts](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#list_accounts) - List all accounts * [list_bank_accounts](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#list_bank_accounts) - List all bank accounts +* [list_connector_capabilities](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#list_connector_capabilities) - List the plugin capabilities advertised by every supported provider * [list_connector_configs](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#list_connector_configs) - List all connector configurations * [list_connector_schedule_instances](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#list_connector_schedule_instances) - List all connector schedule instances * [list_connector_schedules](https://github.com/formancehq/formance-sdk-python/blob/master/./docs/sdks/v3/README.md#list_connector_schedules) - List all connector schedules @@ -618,13 +620,13 @@ with SDK( **Inherit from [`SDKBaseError`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/sdkbaseerror.py)**: -* [`V3ErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/v3errorresponse.py): Error. Applicable to 61 of 253 methods.* -* [`PaymentsErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/paymentserrorresponse.py): Error. Applicable to 46 of 253 methods.* -* [`ErrorsV2ErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/errorsv2errorresponse.py): Applicable to 44 of 253 methods.* -* [`ErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/errorresponse.py): Applicable to 31 of 253 methods.* -* [`ErrorsErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/errorserrorresponse.py): Applicable to 19 of 253 methods.* -* [`V2Error`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/v2error.py): General error. Applicable to 18 of 253 methods.* -* [`Error`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/error.py): General error. Applicable to 17 of 253 methods.* +* [`V3ErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/v3errorresponse.py): Error. Applicable to 63 of 255 methods.* +* [`PaymentsErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/paymentserrorresponse.py): Error. Applicable to 46 of 255 methods.* +* [`ErrorsV2ErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/errorsv2errorresponse.py): Applicable to 44 of 255 methods.* +* [`ErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/errorresponse.py): Applicable to 31 of 255 methods.* +* [`ErrorsErrorResponse`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/errorserrorresponse.py): Applicable to 19 of 255 methods.* +* [`V2Error`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/v2error.py): General error. Applicable to 18 of 255 methods.* +* [`Error`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/error.py): General error. Applicable to 17 of 255 methods.* * [`ResponseValidationError`](https://github.com/formancehq/formance-sdk-python/blob/master/././src/formance_sdk_python/models/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute. diff --git a/README.md b/README.md index 86aeeb36..a5c0335f 100644 --- a/README.md +++ b/README.md @@ -379,6 +379,7 @@ asyncio.run(main()) * [get_account](docs/sdks/v3/README.md#get_account) - Get an account by ID * [get_account_balances](docs/sdks/v3/README.md#get_account_balances) - Get account balances * [get_bank_account](docs/sdks/v3/README.md#get_bank_account) - Get a Bank Account by ID +* [get_connector_capabilities](docs/sdks/v3/README.md#get_connector_capabilities) - Get the plugin capabilities of an installed connector * [get_connector_config](docs/sdks/v3/README.md#get_connector_config) - Get a connector configuration by ID * [get_connector_schedule](docs/sdks/v3/README.md#get_connector_schedule) - Get a connector schedule by ID * [get_conversion](docs/sdks/v3/README.md#get_conversion) - Get a single conversion by its Formance ID @@ -395,6 +396,7 @@ asyncio.run(main()) * [install_connector](docs/sdks/v3/README.md#install_connector) - Install a connector * [list_accounts](docs/sdks/v3/README.md#list_accounts) - List all accounts * [list_bank_accounts](docs/sdks/v3/README.md#list_bank_accounts) - List all bank accounts +* [list_connector_capabilities](docs/sdks/v3/README.md#list_connector_capabilities) - List the plugin capabilities advertised by every supported provider * [list_connector_configs](docs/sdks/v3/README.md#list_connector_configs) - List all connector configurations * [list_connector_schedule_instances](docs/sdks/v3/README.md#list_connector_schedule_instances) - List all connector schedule instances * [list_connector_schedules](docs/sdks/v3/README.md#list_connector_schedules) - List all connector schedules @@ -618,13 +620,13 @@ with SDK( **Inherit from [`SDKBaseError`](./src/formance_sdk_python/models/errors/sdkbaseerror.py)**: -* [`V3ErrorResponse`](./src/formance_sdk_python/models/errors/v3errorresponse.py): Error. Applicable to 61 of 253 methods.* -* [`PaymentsErrorResponse`](./src/formance_sdk_python/models/errors/paymentserrorresponse.py): Error. Applicable to 46 of 253 methods.* -* [`ErrorsV2ErrorResponse`](./src/formance_sdk_python/models/errors/errorsv2errorresponse.py): Applicable to 44 of 253 methods.* -* [`ErrorResponse`](./src/formance_sdk_python/models/errors/errorresponse.py): Applicable to 31 of 253 methods.* -* [`ErrorsErrorResponse`](./src/formance_sdk_python/models/errors/errorserrorresponse.py): Applicable to 19 of 253 methods.* -* [`V2Error`](./src/formance_sdk_python/models/errors/v2error.py): General error. Applicable to 18 of 253 methods.* -* [`Error`](./src/formance_sdk_python/models/errors/error.py): General error. Applicable to 17 of 253 methods.* +* [`V3ErrorResponse`](./src/formance_sdk_python/models/errors/v3errorresponse.py): Error. Applicable to 63 of 255 methods.* +* [`PaymentsErrorResponse`](./src/formance_sdk_python/models/errors/paymentserrorresponse.py): Error. Applicable to 46 of 255 methods.* +* [`ErrorsV2ErrorResponse`](./src/formance_sdk_python/models/errors/errorsv2errorresponse.py): Applicable to 44 of 255 methods.* +* [`ErrorResponse`](./src/formance_sdk_python/models/errors/errorresponse.py): Applicable to 31 of 255 methods.* +* [`ErrorsErrorResponse`](./src/formance_sdk_python/models/errors/errorserrorresponse.py): Applicable to 19 of 255 methods.* +* [`V2Error`](./src/formance_sdk_python/models/errors/v2error.py): General error. Applicable to 18 of 255 methods.* +* [`Error`](./src/formance_sdk_python/models/errors/error.py): General error. Applicable to 17 of 255 methods.* * [`ResponseValidationError`](./src/formance_sdk_python/models/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute. diff --git a/RELEASES.md b/RELEASES.md index d661e1f2..01af2ad2 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -278,4 +278,14 @@ Based on: ### Generated - [python v8.2.1] . ### Releases -- [PyPI v8.2.1] https://pypi.org/project/formance-sdk-python/8.2.1 - . \ No newline at end of file +- [PyPI v8.2.1] https://pypi.org/project/formance-sdk-python/8.2.1 - . + +## 2026-07-27 00:59:41 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.791.0 (2.924.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v8.3.0] . +### Releases +- [PyPI v8.3.0] https://pypi.org/project/formance-sdk-python/8.3.0 - . \ No newline at end of file diff --git a/docs/models/operations/v2importlogsrequest.md b/docs/models/operations/v2importlogsrequest.md index 05d58396..5847cbe6 100644 --- a/docs/models/operations/v2importlogsrequest.md +++ b/docs/models/operations/v2importlogsrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `v2_import_logs_request` | *Union[bytes, IO[bytes], io.BufferedReader]* | :heavy_check_mark: | N/A | | -| `ledger` | *str* | :heavy_check_mark: | Name of the ledger. | ledger001 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `v2_import_logs_request` | *Union[bytes, IO[bytes], io.IOBase]* | :heavy_check_mark: | N/A | | +| `ledger` | *str* | :heavy_check_mark: | Name of the ledger. | ledger001 | \ No newline at end of file diff --git a/docs/models/operations/v3getconnectorcapabilitiesrequest.md b/docs/models/operations/v3getconnectorcapabilitiesrequest.md new file mode 100644 index 00000000..1046e233 --- /dev/null +++ b/docs/models/operations/v3getconnectorcapabilitiesrequest.md @@ -0,0 +1,8 @@ +# V3GetConnectorCapabilitiesRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `connector_id` | *str* | :heavy_check_mark: | The connector ID | \ No newline at end of file diff --git a/docs/models/operations/v3getconnectorcapabilitiesresponse.md b/docs/models/operations/v3getconnectorcapabilitiesresponse.md new file mode 100644 index 00000000..d1e3e995 --- /dev/null +++ b/docs/models/operations/v3getconnectorcapabilitiesresponse.md @@ -0,0 +1,11 @@ +# V3GetConnectorCapabilitiesResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `content_type` | *str* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `v3_connector_capability_response` | [Optional[payments.V3ConnectorCapabilityResponse]](../../models/payments/v3connectorcapabilityresponse.md) | :heavy_minus_sign: | OK | \ No newline at end of file diff --git a/docs/models/operations/v3listconnectorcapabilitiesrequest.md b/docs/models/operations/v3listconnectorcapabilitiesrequest.md new file mode 100644 index 00000000..28d0372c --- /dev/null +++ b/docs/models/operations/v3listconnectorcapabilitiesrequest.md @@ -0,0 +1,8 @@ +# V3ListConnectorCapabilitiesRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `if_none_match` | *Optional[str]* | :heavy_minus_sign: | ETag from a previous response; a matching value yields 304 Not Modified. | \ No newline at end of file diff --git a/docs/models/operations/v3listconnectorcapabilitiesresponse.md b/docs/models/operations/v3listconnectorcapabilitiesresponse.md new file mode 100644 index 00000000..e72290fd --- /dev/null +++ b/docs/models/operations/v3listconnectorcapabilitiesresponse.md @@ -0,0 +1,12 @@ +# V3ListConnectorCapabilitiesResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `content_type` | *str* | :heavy_check_mark: | HTTP response content type for this operation | +| `headers` | Dict[str, List[*str*]] | :heavy_check_mark: | N/A | +| `status_code` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `v3_connector_capabilities_response` | [Optional[payments.V3ConnectorCapabilitiesResponse]](../../models/payments/v3connectorcapabilitiesresponse.md) | :heavy_minus_sign: | OK | \ No newline at end of file diff --git a/docs/models/payments/account.md b/docs/models/payments/account.md index 7f64549d..1a2692dd 100644 --- a/docs/models/payments/account.md +++ b/docs/models/payments/account.md @@ -14,6 +14,6 @@ | `metadata` | Dict[str, *str*] | :heavy_check_mark: | N/A | | `pools` | List[*str*] | :heavy_minus_sign: | N/A | | `provider` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `raw` | [Nullable[payments.AccountRaw]](../../models/payments/accountraw.md) | :heavy_check_mark: | N/A | +| `raw` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `reference` | *str* | :heavy_check_mark: | N/A | | `type` | [payments.AccountType](../../models/payments/accounttype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/payments/accountraw.md b/docs/models/payments/accountraw.md deleted file mode 100644 index 6fb20eb1..00000000 --- a/docs/models/payments/accountraw.md +++ /dev/null @@ -1,7 +0,0 @@ -# AccountRaw - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/payments/payment.md b/docs/models/payments/payment.md index 8eefc363..7bec27ea 100644 --- a/docs/models/payments/payment.md +++ b/docs/models/payments/payment.md @@ -15,7 +15,7 @@ | `initial_amount` | *int* | :heavy_check_mark: | N/A | 100 | | `metadata` | Dict[str, *str*] | :heavy_check_mark: | N/A | | | `provider` | [Optional[payments.Connector]](../../models/payments/connector.md) | :heavy_minus_sign: | N/A | | -| `raw` | [Nullable[payments.PaymentRaw]](../../models/payments/paymentraw.md) | :heavy_check_mark: | N/A | | +| `raw` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | | `reference` | *str* | :heavy_check_mark: | N/A | | | `scheme` | [payments.PaymentScheme](../../models/payments/paymentscheme.md) | :heavy_check_mark: | N/A | | | `source_account_id` | *str* | :heavy_check_mark: | N/A | | diff --git a/docs/models/payments/paymentadjustment.md b/docs/models/payments/paymentadjustment.md index 58d68030..70676306 100644 --- a/docs/models/payments/paymentadjustment.md +++ b/docs/models/payments/paymentadjustment.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `amount` | *int* | :heavy_check_mark: | N/A | 100 | -| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | -| `raw` | [payments.PaymentAdjustmentRaw](../../models/payments/paymentadjustmentraw.md) | :heavy_check_mark: | N/A | | -| `reference` | *str* | :heavy_check_mark: | N/A | | -| `status` | [payments.PaymentStatus](../../models/payments/paymentstatus.md) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `amount` | *int* | :heavy_check_mark: | N/A | 100 | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | +| `raw` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | +| `reference` | *str* | :heavy_check_mark: | N/A | | +| `status` | [payments.PaymentStatus](../../models/payments/paymentstatus.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/payments/paymentadjustmentraw.md b/docs/models/payments/paymentadjustmentraw.md deleted file mode 100644 index 78f88aee..00000000 --- a/docs/models/payments/paymentadjustmentraw.md +++ /dev/null @@ -1,7 +0,0 @@ -# PaymentAdjustmentRaw - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/payments/paymentraw.md b/docs/models/payments/paymentraw.md deleted file mode 100644 index e884afe3..00000000 --- a/docs/models/payments/paymentraw.md +++ /dev/null @@ -1,7 +0,0 @@ -# PaymentRaw - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/payments/v3account.md b/docs/models/payments/v3account.md index f277326c..fa2a4bd8 100644 --- a/docs/models/payments/v3account.md +++ b/docs/models/payments/v3account.md @@ -13,6 +13,6 @@ | `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | | `name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `provider` | *str* | :heavy_check_mark: | N/A | -| `raw` | [payments.V3AccountRaw](../../models/payments/v3accountraw.md) | :heavy_check_mark: | N/A | +| `raw` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `reference` | *str* | :heavy_check_mark: | N/A | | `type` | [payments.V3AccountTypeEnum](../../models/payments/v3accounttypeenum.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/payments/v3accountraw.md b/docs/models/payments/v3accountraw.md deleted file mode 100644 index 68315384..00000000 --- a/docs/models/payments/v3accountraw.md +++ /dev/null @@ -1,7 +0,0 @@ -# V3AccountRaw - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/payments/v3capability.md b/docs/models/payments/v3capability.md new file mode 100644 index 00000000..2ab9aa80 --- /dev/null +++ b/docs/models/payments/v3capability.md @@ -0,0 +1,32 @@ +# V3Capability + +Plugin capability advertised by a connector. Distinct from the Formance gateway "module capabilities" (which are version-gated); these reflect what the underlying PSP integration actually exposes. + + +## Example Usage + +```python +from formance_sdk_python.models.payments import V3Capability + +value = V3Capability.FETCH_ACCOUNTS +``` + + +## Values + +| Name | Value | +| --------------------------------- | --------------------------------- | +| `FETCH_ACCOUNTS` | FETCH_ACCOUNTS | +| `FETCH_BALANCES` | FETCH_BALANCES | +| `FETCH_EXTERNAL_ACCOUNTS` | FETCH_EXTERNAL_ACCOUNTS | +| `FETCH_PAYMENTS` | FETCH_PAYMENTS | +| `FETCH_OTHERS` | FETCH_OTHERS | +| `FETCH_ORDERS` | FETCH_ORDERS | +| `FETCH_CONVERSIONS` | FETCH_CONVERSIONS | +| `CREATE_WEBHOOKS` | CREATE_WEBHOOKS | +| `TRANSLATE_WEBHOOKS` | TRANSLATE_WEBHOOKS | +| `CREATE_BANK_ACCOUNT` | CREATE_BANK_ACCOUNT | +| `CREATE_TRANSFER` | CREATE_TRANSFER | +| `CREATE_PAYOUT` | CREATE_PAYOUT | +| `ALLOW_FORMANCE_ACCOUNT_CREATION` | ALLOW_FORMANCE_ACCOUNT_CREATION | +| `ALLOW_FORMANCE_PAYMENT_CREATION` | ALLOW_FORMANCE_PAYMENT_CREATION | \ No newline at end of file diff --git a/docs/models/payments/v3connector.md b/docs/models/payments/v3connector.md index fd3c7291..20e1b2ca 100644 --- a/docs/models/payments/v3connector.md +++ b/docs/models/payments/v3connector.md @@ -5,6 +5,7 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `capabilities` | List[[payments.V3Capability](../../models/payments/v3capability.md)] | :heavy_minus_sign: | Plugin capabilities advertised by the connector's provider. | | `config` | [payments.Config](../../models/payments/config.md) | :heavy_check_mark: | N/A | | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | `id` | *str* | :heavy_check_mark: | N/A | diff --git a/docs/models/payments/v3connectorcapabilitiesresponse.md b/docs/models/payments/v3connectorcapabilitiesresponse.md new file mode 100644 index 00000000..627fae34 --- /dev/null +++ b/docs/models/payments/v3connectorcapabilitiesresponse.md @@ -0,0 +1,8 @@ +# V3ConnectorCapabilitiesResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `data` | Dict[str, List[[payments.V3Capability](../../models/payments/v3capability.md)]] | :heavy_check_mark: | Map of provider name to the capabilities its plugin advertises. | \ No newline at end of file diff --git a/docs/models/payments/v3connectorcapabilityresponse.md b/docs/models/payments/v3connectorcapabilityresponse.md new file mode 100644 index 00000000..1509a13f --- /dev/null +++ b/docs/models/payments/v3connectorcapabilityresponse.md @@ -0,0 +1,8 @@ +# V3ConnectorCapabilityResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `data` | List[[payments.V3Capability](../../models/payments/v3capability.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/payments/v3connectorconfig.md b/docs/models/payments/v3connectorconfig.md index 3af0fb2e..f3f28940 100644 --- a/docs/models/payments/v3connectorconfig.md +++ b/docs/models/payments/v3connectorconfig.md @@ -129,6 +129,12 @@ value: payments.V3CoinbaseprimeConfig = /* values here */ value: payments.V3FireblocksConfig = /* values here */ ``` +### `payments.V3KrakenproConfig` + +```python +value: payments.V3KrakenproConfig = /* values here */ +``` + ### `payments.V3RoutableConfig` ```python diff --git a/docs/models/payments/v3krakenproconfig.md b/docs/models/payments/v3krakenproconfig.md new file mode 100644 index 00000000..550b4699 --- /dev/null +++ b/docs/models/payments/v3krakenproconfig.md @@ -0,0 +1,14 @@ +# V3KrakenproConfig + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `api_key` | *str* | :heavy_check_mark: | N/A | +| `api_secret` | *str* | :heavy_check_mark: | N/A | +| `endpoint` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| ~~`page_size`~~ | *Optional[int]* | :heavy_minus_sign: | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored. | +| `polling_period` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `provider` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/payments/v3orderadjustment.md b/docs/models/payments/v3orderadjustment.md index e0fd0e15..c1ef0862 100644 --- a/docs/models/payments/v3orderadjustment.md +++ b/docs/models/payments/v3orderadjustment.md @@ -18,6 +18,6 @@ events over its lifetime. | `fee_asset` | *OptionalNullable[str]* | :heavy_minus_sign: | Currency the fee is denominated in, in `SYMBOL/precision` form. | | `id` | *str* | :heavy_check_mark: | Adjustment ID, composed from the order ID plus the state fields that define uniqueness (status, filled quantity, fee). Idempotent — replaying the same observation produces the same ID. | | `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | -| `raw` | [Optional[payments.V3OrderAdjustmentRaw]](../../models/payments/v3orderadjustmentraw.md) | :heavy_minus_sign: | Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay. | +| `raw` | Dict[str, *Any*] | :heavy_minus_sign: | Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay. | | `reference` | *str* | :heavy_check_mark: | PSP reference the adjustment belongs to (equal to the parent order's `reference`). | | `status` | [payments.V3OrderStatusEnum](../../models/payments/v3orderstatusenum.md) | :heavy_check_mark: | Lifecycle of an order on the exchange.
`PENDING` — accepted by the exchange, not yet working.
`OPEN` — live on the book, no fills yet.
`PARTIALLY_FILLED` — live on the book, some base quantity filled.
`FILLED` — fully filled, terminal.
`CANCELLED` — cancelled by the user or system, terminal.
`FAILED` — rejected by the exchange, terminal. See `error` for details.
`EXPIRED` — `timeInForce` elapsed before full fill, terminal.
| \ No newline at end of file diff --git a/docs/models/payments/v3orderadjustmentraw.md b/docs/models/payments/v3orderadjustmentraw.md deleted file mode 100644 index 40fdc07d..00000000 --- a/docs/models/payments/v3orderadjustmentraw.md +++ /dev/null @@ -1,9 +0,0 @@ -# V3OrderAdjustmentRaw - -Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay. - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/payments/v3paymentadjustment.md b/docs/models/payments/v3paymentadjustment.md index e8f12278..2aa59f3f 100644 --- a/docs/models/payments/v3paymentadjustment.md +++ b/docs/models/payments/v3paymentadjustment.md @@ -3,13 +3,13 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `amount` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `asset` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | -| `id` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | -| `raw` | [payments.V3PaymentAdjustmentRaw](../../models/payments/v3paymentadjustmentraw.md) | :heavy_check_mark: | N/A | -| `reference` | *str* | :heavy_check_mark: | N/A | -| `status` | [payments.V3PaymentStatusEnum](../../models/payments/v3paymentstatusenum.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `amount` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `asset` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `id` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | +| `raw` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `reference` | *str* | :heavy_check_mark: | N/A | +| `status` | [payments.V3PaymentStatusEnum](../../models/payments/v3paymentstatusenum.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/payments/v3paymentadjustmentraw.md b/docs/models/payments/v3paymentadjustmentraw.md deleted file mode 100644 index c2068f70..00000000 --- a/docs/models/payments/v3paymentadjustmentraw.md +++ /dev/null @@ -1,7 +0,0 @@ -# V3PaymentAdjustmentRaw - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/sdks/v3/README.md b/docs/sdks/v3/README.md index 8edf9bf4..ccf1ff03 100644 --- a/docs/sdks/v3/README.md +++ b/docs/sdks/v3/README.md @@ -27,6 +27,7 @@ * [get_account](#get_account) - Get an account by ID * [get_account_balances](#get_account_balances) - Get account balances * [get_bank_account](#get_bank_account) - Get a Bank Account by ID +* [get_connector_capabilities](#get_connector_capabilities) - Get the plugin capabilities of an installed connector * [get_connector_config](#get_connector_config) - Get a connector configuration by ID * [get_connector_schedule](#get_connector_schedule) - Get a connector schedule by ID * [get_conversion](#get_conversion) - Get a single conversion by its Formance ID @@ -43,6 +44,7 @@ * [install_connector](#install_connector) - Install a connector * [list_accounts](#list_accounts) - List all accounts * [list_bank_accounts](#list_bank_accounts) - List all bank accounts +* [list_connector_capabilities](#list_connector_capabilities) - List the plugin capabilities advertised by every supported provider * [list_connector_configs](#list_connector_configs) - List all connector configurations * [list_connector_schedule_instances](#list_connector_schedule_instances) - List all connector schedule instances * [list_connector_schedules](#list_connector_schedules) - List all connector schedules @@ -1023,6 +1025,55 @@ with SDK() as sdk: | payments.V3ErrorResponse | default | application/json | | errors.SDKError | 4XX, 5XX | \*/\* | +## get_connector_capabilities + +Returns the list of plugin capabilities advertised by the provider backing this installed connector (`FETCH_ACCOUNTS`, `CREATE_TRANSFER`, ...). The same values are also inlined on each row of `v3ListConnectors`; prefer that endpoint when listing multiple connectors. + + +### Example Usage + + +```python +from formance_sdk_python import SDK +from formance_sdk_python.models import shared + + +with SDK( + security=shared.Security( + client_id="", + client_secret="", + ), +) as sdk: + + res = sdk.payments.v3.get_connector_capabilities(request={ + "connector_id": "", + }) + + assert res.v3_connector_capability_response is not None + + # Handle response + print(res.v3_connector_capability_response) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.V3GetConnectorCapabilitiesRequest](../../models/operations/v3getconnectorcapabilitiesrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[operations.V3GetConnectorCapabilitiesResponse](../../models/operations/v3getconnectorcapabilitiesresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| payments.V3ErrorResponse | default | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + ## get_connector_config Get a connector configuration by ID @@ -1810,6 +1861,53 @@ with SDK( | payments.V3ErrorResponse | default | application/json | | errors.SDKError | 4XX, 5XX | \*/\* | +## list_connector_capabilities + +Returns the static map of provider name to the list of plugin capabilities (`FETCH_ACCOUNTS`, `CREATE_TRANSFER`, ...) compiled into this binary. The catalog is immutable for the lifetime of the process and is therefore safe to cache: the response carries a strong ETag and a `Cache-Control: public, max-age=3600, must-revalidate` directive. Stateless consumers (e.g. console) should set `If-None-Match` on subsequent requests to receive a `304 Not Modified`. + + +### Example Usage + + +```python +from formance_sdk_python import SDK +from formance_sdk_python.models import shared + + +with SDK( + security=shared.Security( + client_id="", + client_secret="", + ), +) as sdk: + + res = sdk.payments.v3.list_connector_capabilities(request={}) + + assert res.v3_connector_capabilities_response is not None + + # Handle response + print(res.v3_connector_capabilities_response) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `request` | [operations.V3ListConnectorCapabilitiesRequest](../../models/operations/v3listconnectorcapabilitiesrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[operations.V3ListConnectorCapabilitiesResponse](../../models/operations/v3listconnectorcapabilitiesresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| payments.V3ErrorResponse | default | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + ## list_connector_configs List all connector configurations diff --git a/gen.yaml b/gen.yaml index 4c1b97e2..f137f84e 100755 --- a/gen.yaml +++ b/gen.yaml @@ -29,7 +29,7 @@ generation: comments: {} telemetryEnabled: false python: - version: 8.2.1 + version: 8.3.0 additionalDependencies: dev: {} main: {} @@ -47,8 +47,13 @@ python: constFieldCasing: upper defaultErrorName: SDKError description: Python Client SDK Generated by Speakeasy + durationFormat: false enableCustomCodeRegions: false enumFormat: enum + errorSchemaValidation: true + eventStreamClassNames: + async: EventStreamAsync + sync: EventStream fixFlags: asyncPaginationSep2025: false conflictResistantModelImportsFeb2026: false @@ -68,6 +73,7 @@ python: webhooks: models/webhooks inferUnionDiscriminators: true inputModelSuffix: input + inputTypedDictSuffix: TypedDict legacyPyright: true license: "" maxMethodParams: 0 @@ -86,6 +92,8 @@ python: pytestTimeout: 0 rawResponseHelpers: false responseFormat: envelope + responseSchemaValidation: true sseFlatResponse: false templateVersion: v2 useAsyncHooks: false + uuidFormat: false diff --git a/poetry.lock b/poetry.lock index 75daf321..2922e57f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -585,4 +585,4 @@ typing-extensions = ">=4.12.0" [metadata] lock-version = "2.1" python-versions = ">=3.10" -content-hash = "f6a8355b7012376d6650030a1b23aaf67653ed8ccc9eae2880ccb8d9a23e3d6b" +content-hash = "b9ce93184dabbd3aebeddc118a61e5e48e0be9e513c3a4433601b6005506d6ac" diff --git a/pyproject.toml b/pyproject.toml index 4982fa9b..37645f5e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "formance-sdk-python" -version = "8.2.1" +version = "8.3.0" description = "Python Client SDK Generated by Speakeasy" authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" @@ -9,7 +9,7 @@ requires-python = ">=3.10" dependencies = [ "httpcore >=1.0.9", "httpx >=0.28.1", - "pydantic >=2.11.2", + "pydantic >=2.11.2,<2.13", ] [tool.poetry] diff --git a/src/formance_sdk_python/_hooks/types.py b/src/formance_sdk_python/_hooks/types.py index 34750f90..c99ae526 100644 --- a/src/formance_sdk_python/_hooks/types.py +++ b/src/formance_sdk_python/_hooks/types.py @@ -4,7 +4,7 @@ from formance_sdk_python.httpclient import HttpClient from formance_sdk_python.sdkconfiguration import SDKConfiguration import httpx -from typing import Any, Callable, List, Optional, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Tuple, Union class HookContext: @@ -13,6 +13,8 @@ class HookContext: operation_id: str oauth2_scopes: Optional[List[str]] = None security_source: Optional[Union[Any, Callable[[], Any]]] = None + tags: Optional[List[str]] = None + extensions: Optional[Dict[str, Any]] = None def __init__( self, @@ -21,12 +23,16 @@ def __init__( operation_id: str, oauth2_scopes: Optional[List[str]], security_source: Optional[Union[Any, Callable[[], Any]]], + tags: Optional[List[str]], + extensions: Optional[Dict[str, Any]], ): self.config = config self.base_url = base_url self.operation_id = operation_id self.oauth2_scopes = oauth2_scopes self.security_source = security_source + self.tags = tags + self.extensions = extensions class BeforeRequestContext(HookContext): @@ -37,6 +43,8 @@ def __init__(self, hook_ctx: HookContext): hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source, + hook_ctx.tags, + hook_ctx.extensions, ) @@ -48,6 +56,8 @@ def __init__(self, hook_ctx: HookContext): hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source, + hook_ctx.tags, + hook_ctx.extensions, ) @@ -59,6 +69,8 @@ def __init__(self, hook_ctx: HookContext): hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source, + hook_ctx.tags, + hook_ctx.extensions, ) diff --git a/src/formance_sdk_python/_version.py b/src/formance_sdk_python/_version.py index 443e29ce..6f65591b 100644 --- a/src/formance_sdk_python/_version.py +++ b/src/formance_sdk_python/_version.py @@ -3,11 +3,11 @@ import importlib.metadata __title__: str = "formance-sdk-python" -__version__: str = "8.2.1" +__version__: str = "8.3.0" __openapi_doc_version__: str = "SDK_VERSION" -__gen_version__: str = "2.893.0" +__gen_version__: str = "2.924.0" __user_agent__: str = ( - "speakeasy-sdk/python 8.2.1 2.893.0 SDK_VERSION formance-sdk-python" + "speakeasy-sdk/python 8.3.0 2.924.0 SDK_VERSION formance-sdk-python" ) try: diff --git a/src/formance_sdk_python/auth_v1.py b/src/formance_sdk_python/auth_v1.py index c98a8297..07e92ed6 100644 --- a/src/formance_sdk_python/auth_v1.py +++ b/src/formance_sdk_python/auth_v1.py @@ -85,6 +85,8 @@ def create_client( operation_id="createClient", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -180,6 +182,8 @@ async def create_client_async( operation_id="createClient", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -276,6 +280,8 @@ def create_secret( operation_id="createSecret", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -372,6 +378,8 @@ async def create_secret_async( operation_id="createSecret", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -461,6 +469,8 @@ def delete_client( operation_id="deleteClient", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -547,6 +557,8 @@ async def delete_client_async( operation_id="deleteClient", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -633,6 +645,8 @@ def delete_secret( operation_id="deleteSecret", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -719,6 +733,8 @@ async def delete_secret_async( operation_id="deleteSecret", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -796,6 +812,8 @@ def get_oidc_well_knowns( operation_id="getOIDCWellKnowns", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -873,6 +891,8 @@ async def get_oidc_well_knowns_async( operation_id="getOIDCWellKnowns", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -950,6 +970,8 @@ def get_server_info_auth( operation_id="getServerInfo_auth", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1030,6 +1052,8 @@ async def get_server_info_auth_async( operation_id="getServerInfo_auth", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1110,6 +1134,8 @@ def list_clients( operation_id="listClients", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1190,6 +1216,8 @@ async def list_clients_async( operation_id="listClients", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1272,6 +1300,8 @@ def list_users( operation_id="listUsers", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1354,6 +1384,8 @@ async def list_users_async( operation_id="listUsers", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1443,6 +1475,8 @@ def read_client( operation_id="readClient", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1532,6 +1566,8 @@ async def read_client_async( operation_id="readClient", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1621,6 +1657,8 @@ def read_user( operation_id="readUser", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1710,6 +1748,8 @@ async def read_user_async( operation_id="readUser", oauth2_scopes=["auth:read"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1806,6 +1846,8 @@ def update_client( operation_id="updateClient", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1902,6 +1944,8 @@ async def update_client_async( operation_id="updateClient", oauth2_scopes=["auth:write"], security_source=self.sdk_configuration.security, + tags=["auth.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/ledger.py b/src/formance_sdk_python/ledger.py index 178146a7..02f88506 100644 --- a/src/formance_sdk_python/ledger.py +++ b/src/formance_sdk_python/ledger.py @@ -86,6 +86,8 @@ def get_info( operation_id="v2GetInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -180,6 +182,8 @@ async def get_info_async( operation_id="v2GetInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -274,6 +278,8 @@ def get_metrics( operation_id="getMetrics", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -355,6 +361,8 @@ async def get_metrics_async( operation_id="getMetrics", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/ledger_v1.py b/src/formance_sdk_python/ledger_v1.py index 18d59c0f..306af937 100644 --- a/src/formance_sdk_python/ledger_v1.py +++ b/src/formance_sdk_python/ledger_v1.py @@ -83,6 +83,8 @@ def create_transactions( operation_id="CreateTransactions", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -179,6 +181,8 @@ async def create_transactions_async( operation_id="CreateTransactions", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -277,6 +281,8 @@ def add_metadata_on_transaction( operation_id="addMetadataOnTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -373,6 +379,8 @@ async def add_metadata_on_transaction_async( operation_id="addMetadataOnTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -467,6 +475,8 @@ def add_metadata_to_account( operation_id="addMetadataToAccount", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -561,6 +571,8 @@ async def add_metadata_to_account_async( operation_id="addMetadataToAccount", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -651,6 +663,8 @@ def count_accounts( operation_id="countAccounts", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -741,6 +755,8 @@ async def count_accounts_async( operation_id="countAccounts", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -832,6 +848,8 @@ def count_transactions( operation_id="countTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -923,6 +941,8 @@ async def count_transactions_async( operation_id="countTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1017,6 +1037,8 @@ def create_transaction( operation_id="createTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1114,6 +1136,8 @@ async def create_transaction_async( operation_id="createTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1208,6 +1232,8 @@ def get_account_ledger( operation_id="getAccount_ledger", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1301,6 +1327,8 @@ async def get_account_ledger_async( operation_id="getAccount_ledger", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1393,6 +1421,8 @@ def get_balances( operation_id="getBalances", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1485,6 +1515,8 @@ async def get_balances_async( operation_id="getBalances", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1578,6 +1610,8 @@ def get_balances_aggregated( operation_id="getBalancesAggregated", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1671,6 +1705,8 @@ async def get_balances_aggregated_async( operation_id="getBalancesAggregated", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1754,6 +1790,8 @@ def get_info( operation_id="getInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1837,6 +1875,8 @@ async def get_info_async( operation_id="getInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1929,6 +1969,8 @@ def get_ledger_info( operation_id="getLedgerInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2021,6 +2063,8 @@ async def get_ledger_info_async( operation_id="getLedgerInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2113,6 +2157,8 @@ def get_mapping( operation_id="getMapping", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2205,6 +2251,8 @@ async def get_mapping_async( operation_id="getMapping", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2297,6 +2345,8 @@ def get_transaction( operation_id="getTransaction", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2389,6 +2439,8 @@ async def get_transaction_async( operation_id="getTransaction", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2484,6 +2536,8 @@ def list_accounts_ledger( operation_id="listAccounts_ledger", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2590,6 +2644,8 @@ async def list_accounts_ledger_async( operation_id="listAccounts_ledger", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2693,6 +2749,8 @@ def list_logs( operation_id="listLogs", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2785,6 +2843,8 @@ async def list_logs_async( operation_id="listLogs", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2880,6 +2940,8 @@ def list_transactions( operation_id="listTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2975,6 +3037,8 @@ async def list_transactions_async( operation_id="listTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3070,6 +3134,8 @@ def read_stats( operation_id="readStats", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3165,6 +3231,8 @@ async def read_stats_async( operation_id="readStats", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3258,6 +3326,8 @@ def revert_transaction( operation_id="revertTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -3352,6 +3422,8 @@ async def revert_transaction_async( operation_id="revertTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -3454,6 +3526,8 @@ def run_script( operation_id="runScript", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3552,6 +3626,8 @@ async def run_script_async( operation_id="runScript", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3644,6 +3720,8 @@ def update_mapping( operation_id="updateMapping", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3739,6 +3817,8 @@ async def update_mapping_async( operation_id="updateMapping", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/ledger_v2.py b/src/formance_sdk_python/ledger_v2.py index ce485a35..7dd089d6 100644 --- a/src/formance_sdk_python/ledger_v2.py +++ b/src/formance_sdk_python/ledger_v2.py @@ -88,6 +88,8 @@ def add_metadata_on_transaction( operation_id="v2AddMetadataOnTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -184,6 +186,8 @@ async def add_metadata_on_transaction_async( operation_id="v2AddMetadataOnTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -278,6 +282,8 @@ def add_metadata_to_account( operation_id="v2AddMetadataToAccount", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -372,6 +378,8 @@ async def add_metadata_to_account_async( operation_id="v2AddMetadataToAccount", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -466,6 +474,8 @@ def count_accounts( operation_id="v2CountAccounts", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -560,6 +570,8 @@ async def count_accounts_async( operation_id="v2CountAccounts", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -654,6 +666,8 @@ def count_transactions( operation_id="v2CountTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -748,6 +762,8 @@ async def count_transactions_async( operation_id="v2CountTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -841,6 +857,8 @@ def create_bulk( operation_id="v2CreateBulk", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -947,6 +965,8 @@ async def create_bulk_async( operation_id="v2CreateBulk", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -1050,6 +1070,8 @@ def create_exporter( operation_id="v2CreateExporter", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1142,6 +1164,8 @@ async def create_exporter_async( operation_id="v2CreateExporter", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1241,6 +1265,8 @@ def create_ledger( operation_id="v2CreateLedger", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1337,6 +1363,8 @@ async def create_ledger_async( operation_id="v2CreateLedger", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1430,6 +1458,8 @@ def create_pipeline( operation_id="v2CreatePipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1526,6 +1556,8 @@ async def create_pipeline_async( operation_id="v2CreatePipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1626,6 +1658,8 @@ def create_transaction( operation_id="v2CreateTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1727,6 +1761,8 @@ async def create_transaction_async( operation_id="v2CreateTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1825,6 +1861,8 @@ def delete_account_metadata( operation_id="v2DeleteAccountMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1920,6 +1958,8 @@ async def delete_account_metadata_async( operation_id="v2DeleteAccountMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2012,6 +2052,8 @@ def delete_bucket( operation_id="v2DeleteBucket", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2114,6 +2156,8 @@ async def delete_bucket_async( operation_id="v2DeleteBucket", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2211,6 +2255,8 @@ def delete_exporter( operation_id="v2DeleteExporter", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2297,6 +2343,8 @@ async def delete_exporter_async( operation_id="v2DeleteExporter", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2387,6 +2435,8 @@ def delete_ledger_metadata( operation_id="v2DeleteLedgerMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2477,6 +2527,8 @@ async def delete_ledger_metadata_async( operation_id="v2DeleteLedgerMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2563,6 +2615,8 @@ def delete_pipeline( operation_id="v2DeletePipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2649,6 +2703,8 @@ async def delete_pipeline_async( operation_id="v2DeletePipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2743,6 +2799,8 @@ def delete_transaction_metadata( operation_id="v2DeleteTransactionMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2838,6 +2896,8 @@ async def delete_transaction_metadata_async( operation_id="v2DeleteTransactionMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2928,6 +2988,8 @@ def export_logs( operation_id="v2ExportLogs", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3014,6 +3076,8 @@ async def export_logs_async( operation_id="v2ExportLogs", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3100,6 +3164,8 @@ def get_account( operation_id="v2GetAccount", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3192,6 +3258,8 @@ async def get_account_async( operation_id="v2GetAccount", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3290,6 +3358,8 @@ def get_balances_aggregated( operation_id="v2GetBalancesAggregated", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3388,6 +3458,8 @@ async def get_balances_aggregated_async( operation_id="v2GetBalancesAggregated", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3477,6 +3549,8 @@ def get_exporter_state( operation_id="v2GetExporterState", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3566,6 +3640,8 @@ async def get_exporter_state_async( operation_id="v2GetExporterState", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3658,6 +3734,8 @@ def get_ledger( operation_id="v2GetLedger", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3750,6 +3828,8 @@ async def get_ledger_async( operation_id="v2GetLedger", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3843,6 +3923,8 @@ def get_ledger_info( operation_id="v2GetLedgerInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3936,6 +4018,8 @@ async def get_ledger_info_async( operation_id="v2GetLedgerInfo", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4025,6 +4109,8 @@ def get_pipeline_state( operation_id="v2GetPipelineState", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4114,6 +4200,8 @@ async def get_pipeline_state_async( operation_id="v2GetPipelineState", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4206,6 +4294,8 @@ def get_schema( operation_id="v2GetSchema", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4298,6 +4388,8 @@ async def get_schema_async( operation_id="v2GetSchema", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4391,6 +4483,8 @@ def get_transaction( operation_id="v2GetTransaction", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4484,6 +4578,8 @@ async def get_transaction_async( operation_id="v2GetTransaction", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4582,6 +4678,8 @@ def get_volumes_with_balances( operation_id="v2GetVolumesWithBalances", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4680,6 +4778,8 @@ async def get_volumes_with_balances_async( operation_id="v2GetVolumesWithBalances", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4755,7 +4855,7 @@ def import_logs( False, False, "raw", - Union[bytes, IO[bytes], io.BufferedReader], + Union[bytes, IO[bytes], io.IOBase], ), allow_empty_value=None, allowed_fields=["client_id"], @@ -4777,6 +4877,8 @@ def import_logs( operation_id="v2ImportLogs", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -4849,7 +4951,7 @@ async def import_logs_async( False, False, "raw", - Union[bytes, IO[bytes], io.BufferedReader], + Union[bytes, IO[bytes], io.IOBase], ), allow_empty_value=None, allowed_fields=["client_id"], @@ -4871,6 +4973,8 @@ async def import_logs_async( operation_id="v2ImportLogs", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -4963,6 +5067,8 @@ def insert_schema( operation_id="v2InsertSchema", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -5056,6 +5162,8 @@ async def insert_schema_async( operation_id="v2InsertSchema", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -5151,6 +5259,8 @@ def list_accounts( operation_id="v2ListAccounts", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5248,6 +5358,8 @@ async def list_accounts_async( operation_id="v2ListAccounts", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5327,6 +5439,8 @@ def list_exporters( operation_id="v2ListExporters", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5406,6 +5520,8 @@ async def list_exporters_async( operation_id="v2ListExporters", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5501,6 +5617,8 @@ def list_ledgers( operation_id="v2ListLedgers", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5596,6 +5714,8 @@ async def list_ledgers_async( operation_id="v2ListLedgers", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5693,6 +5813,8 @@ def list_logs( operation_id="v2ListLogs", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5790,6 +5912,8 @@ async def list_logs_async( operation_id="v2ListLogs", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5879,6 +6003,8 @@ def list_pipelines( operation_id="v2ListPipelines", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5968,6 +6094,8 @@ async def list_pipelines_async( operation_id="v2ListPipelines", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6060,6 +6188,8 @@ def list_schemas( operation_id="v2ListSchemas", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6152,6 +6282,8 @@ async def list_schemas_async( operation_id="v2ListSchemas", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6250,6 +6382,8 @@ def list_transactions( operation_id="v2ListTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6348,6 +6482,8 @@ async def list_transactions_async( operation_id="v2ListTransactions", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6443,6 +6579,8 @@ def read_stats( operation_id="v2ReadStats", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6538,6 +6676,8 @@ async def read_stats_async( operation_id="v2ReadStats", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6627,6 +6767,8 @@ def reset_pipeline( operation_id="v2ResetPipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -6713,6 +6855,8 @@ async def reset_pipeline_async( operation_id="v2ResetPipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -6805,6 +6949,8 @@ def restore_bucket( operation_id="v2RestoreBucket", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -6908,6 +7054,8 @@ async def restore_bucket_async( operation_id="v2RestoreBucket", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -7016,6 +7164,8 @@ def revert_transaction( operation_id="v2RevertTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -7117,6 +7267,8 @@ async def revert_transaction_async( operation_id="v2RevertTransaction", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -7219,6 +7371,8 @@ def run_query( operation_id="v2RunQuery", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7320,6 +7474,8 @@ async def run_query_async( operation_id="v2RunQuery", oauth2_scopes=["ledger:read"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7409,6 +7565,8 @@ def start_pipeline( operation_id="v2StartPipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -7495,6 +7653,8 @@ async def start_pipeline_async( operation_id="v2StartPipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -7580,6 +7740,8 @@ def stop_pipeline( operation_id="v2StopPipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -7665,6 +7827,8 @@ async def stop_pipeline_async( operation_id="v2StopPipeline", oauth2_scopes=None, security_source=None, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -7762,6 +7926,8 @@ def update_exporter( operation_id="v2UpdateExporter", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7859,6 +8025,8 @@ async def update_exporter_async( operation_id="v2UpdateExporter", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7952,6 +8120,8 @@ def update_ledger_metadata( operation_id="v2UpdateLedgerMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -8056,6 +8226,8 @@ async def update_ledger_metadata_async( operation_id="v2UpdateLedgerMetadata", oauth2_scopes=["ledger:write"], security_source=self.sdk_configuration.security, + tags=["ledger.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( diff --git a/src/formance_sdk_python/models/operations/__init__.py b/src/formance_sdk_python/models/operations/__init__.py index a860d622..9cade902 100644 --- a/src/formance_sdk_python/models/operations/__init__.py +++ b/src/formance_sdk_python/models/operations/__init__.py @@ -1156,6 +1156,12 @@ V3GetBankAccountResponse, V3GetBankAccountResponseTypedDict, ) + from .v3getconnectorcapabilities import ( + V3GetConnectorCapabilitiesRequest, + V3GetConnectorCapabilitiesRequestTypedDict, + V3GetConnectorCapabilitiesResponse, + V3GetConnectorCapabilitiesResponseTypedDict, + ) from .v3getconnectorconfig import ( V3GetConnectorConfigRequest, V3GetConnectorConfigRequestTypedDict, @@ -1252,6 +1258,12 @@ V3ListBankAccountsResponse, V3ListBankAccountsResponseTypedDict, ) + from .v3listconnectorcapabilities import ( + V3ListConnectorCapabilitiesRequest, + V3ListConnectorCapabilitiesRequestTypedDict, + V3ListConnectorCapabilitiesResponse, + V3ListConnectorCapabilitiesResponseTypedDict, + ) from .v3listconnectorconfigs import ( V3ListConnectorConfigsResponse, V3ListConnectorConfigsResponseTypedDict, @@ -2196,6 +2208,10 @@ "V3GetBankAccountRequestTypedDict", "V3GetBankAccountResponse", "V3GetBankAccountResponseTypedDict", + "V3GetConnectorCapabilitiesRequest", + "V3GetConnectorCapabilitiesRequestTypedDict", + "V3GetConnectorCapabilitiesResponse", + "V3GetConnectorCapabilitiesResponseTypedDict", "V3GetConnectorConfigRequest", "V3GetConnectorConfigRequestTypedDict", "V3GetConnectorConfigResponse", @@ -2260,6 +2276,10 @@ "V3ListBankAccountsRequestTypedDict", "V3ListBankAccountsResponse", "V3ListBankAccountsResponseTypedDict", + "V3ListConnectorCapabilitiesRequest", + "V3ListConnectorCapabilitiesRequestTypedDict", + "V3ListConnectorCapabilitiesResponse", + "V3ListConnectorCapabilitiesResponseTypedDict", "V3ListConnectorConfigsResponse", "V3ListConnectorConfigsResponseTypedDict", "V3ListConnectorScheduleInstancesRequest", @@ -3151,6 +3171,10 @@ "V3GetBankAccountRequestTypedDict": ".v3getbankaccount", "V3GetBankAccountResponse": ".v3getbankaccount", "V3GetBankAccountResponseTypedDict": ".v3getbankaccount", + "V3GetConnectorCapabilitiesRequest": ".v3getconnectorcapabilities", + "V3GetConnectorCapabilitiesRequestTypedDict": ".v3getconnectorcapabilities", + "V3GetConnectorCapabilitiesResponse": ".v3getconnectorcapabilities", + "V3GetConnectorCapabilitiesResponseTypedDict": ".v3getconnectorcapabilities", "V3GetConnectorConfigRequest": ".v3getconnectorconfig", "V3GetConnectorConfigRequestTypedDict": ".v3getconnectorconfig", "V3GetConnectorConfigResponse": ".v3getconnectorconfig", @@ -3215,6 +3239,10 @@ "V3ListBankAccountsRequestTypedDict": ".v3listbankaccounts", "V3ListBankAccountsResponse": ".v3listbankaccounts", "V3ListBankAccountsResponseTypedDict": ".v3listbankaccounts", + "V3ListConnectorCapabilitiesRequest": ".v3listconnectorcapabilities", + "V3ListConnectorCapabilitiesRequestTypedDict": ".v3listconnectorcapabilities", + "V3ListConnectorCapabilitiesResponse": ".v3listconnectorcapabilities", + "V3ListConnectorCapabilitiesResponseTypedDict": ".v3listconnectorcapabilities", "V3ListConnectorConfigsResponse": ".v3listconnectorconfigs", "V3ListConnectorConfigsResponseTypedDict": ".v3listconnectorconfigs", "V3ListConnectorsRequest": ".v3listconnectors", diff --git a/src/formance_sdk_python/models/operations/v2importlogs.py b/src/formance_sdk_python/models/operations/v2importlogs.py index 3717fbb6..bc0ccdc2 100644 --- a/src/formance_sdk_python/models/operations/v2importlogs.py +++ b/src/formance_sdk_python/models/operations/v2importlogs.py @@ -10,14 +10,14 @@ class V2ImportLogsRequestTypedDict(TypedDict): - v2_import_logs_request: Union[bytes, IO[bytes], io.BufferedReader] + v2_import_logs_request: Union[bytes, IO[bytes], io.IOBase] ledger: str r"""Name of the ledger.""" class V2ImportLogsRequest(BaseModel): v2_import_logs_request: Annotated[ - Union[bytes, IO[bytes], io.BufferedReader], FieldMetadata(request=True) + Union[bytes, IO[bytes], io.IOBase], FieldMetadata(request=True) ] ledger: Annotated[ diff --git a/src/formance_sdk_python/models/operations/v3getconnectorcapabilities.py b/src/formance_sdk_python/models/operations/v3getconnectorcapabilities.py new file mode 100644 index 00000000..4f631840 --- /dev/null +++ b/src/formance_sdk_python/models/operations/v3getconnectorcapabilities.py @@ -0,0 +1,72 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from formance_sdk_python.models.payments import ( + v3connectorcapabilityresponse as payments_v3connectorcapabilityresponse, +) +from formance_sdk_python.types import BaseModel, UNSET_SENTINEL +from formance_sdk_python.utils import FieldMetadata, PathParamMetadata +import httpx +import pydantic +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class V3GetConnectorCapabilitiesRequestTypedDict(TypedDict): + connector_id: str + r"""The connector ID""" + + +class V3GetConnectorCapabilitiesRequest(BaseModel): + connector_id: Annotated[ + str, + pydantic.Field(alias="connectorID"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""The connector ID""" + + +class V3GetConnectorCapabilitiesResponseTypedDict(TypedDict): + content_type: str + r"""HTTP response content type for this operation""" + status_code: int + r"""HTTP response status code for this operation""" + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + v3_connector_capability_response: NotRequired[ + payments_v3connectorcapabilityresponse.V3ConnectorCapabilityResponseTypedDict + ] + r"""OK""" + + +class V3GetConnectorCapabilitiesResponse(BaseModel): + content_type: str + r"""HTTP response content type for this operation""" + + status_code: int + r"""HTTP response status code for this operation""" + + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + + v3_connector_capability_response: Optional[ + payments_v3connectorcapabilityresponse.V3ConnectorCapabilityResponse + ] = None + r"""OK""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["V3ConnectorCapabilityResponse"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/formance_sdk_python/models/operations/v3listconnectorcapabilities.py b/src/formance_sdk_python/models/operations/v3listconnectorcapabilities.py new file mode 100644 index 00000000..01ac9208 --- /dev/null +++ b/src/formance_sdk_python/models/operations/v3listconnectorcapabilities.py @@ -0,0 +1,91 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from formance_sdk_python.models.payments import ( + v3connectorcapabilitiesresponse as payments_v3connectorcapabilitiesresponse, +) +from formance_sdk_python.types import BaseModel, UNSET_SENTINEL +from formance_sdk_python.utils import FieldMetadata, HeaderMetadata +import httpx +import pydantic +from pydantic import model_serializer +from typing import Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class V3ListConnectorCapabilitiesRequestTypedDict(TypedDict): + if_none_match: NotRequired[str] + r"""ETag from a previous response; a matching value yields 304 Not Modified.""" + + +class V3ListConnectorCapabilitiesRequest(BaseModel): + if_none_match: Annotated[ + Optional[str], + pydantic.Field(alias="If-None-Match"), + FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), + ] = None + r"""ETag from a previous response; a matching value yields 304 Not Modified.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["If-None-Match"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +class V3ListConnectorCapabilitiesResponseTypedDict(TypedDict): + content_type: str + r"""HTTP response content type for this operation""" + headers: Dict[str, List[str]] + status_code: int + r"""HTTP response status code for this operation""" + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + v3_connector_capabilities_response: NotRequired[ + payments_v3connectorcapabilitiesresponse.V3ConnectorCapabilitiesResponseTypedDict + ] + r"""OK""" + + +class V3ListConnectorCapabilitiesResponse(BaseModel): + content_type: str + r"""HTTP response content type for this operation""" + + headers: Dict[str, List[str]] + + status_code: int + r"""HTTP response status code for this operation""" + + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + + v3_connector_capabilities_response: Optional[ + payments_v3connectorcapabilitiesresponse.V3ConnectorCapabilitiesResponse + ] = None + r"""OK""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["V3ConnectorCapabilitiesResponse"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/formance_sdk_python/models/payments/__init__.py b/src/formance_sdk_python/models/payments/__init__.py index 14cfdd39..eaa98162 100644 --- a/src/formance_sdk_python/models/payments/__init__.py +++ b/src/formance_sdk_python/models/payments/__init__.py @@ -5,7 +5,7 @@ from formance_sdk_python.utils.dynamic_imports import lazy_getattr, lazy_dir if TYPE_CHECKING: - from .account import Account, AccountRaw, AccountRawTypedDict, AccountTypedDict + from .account import Account, AccountTypedDict from .accountbalance import AccountBalance, AccountBalanceTypedDict from .accountrequest import AccountRequest, AccountRequestTypedDict from .accountresponse import AccountResponse, AccountResponseTypedDict @@ -77,13 +77,8 @@ from .mangopayconfig import MangoPayConfig, MangoPayConfigTypedDict from .modulrconfig import ModulrConfig, ModulrConfigTypedDict from .moneycorpconfig import MoneycorpConfig, MoneycorpConfigTypedDict - from .payment import Payment, PaymentRaw, PaymentRawTypedDict, PaymentTypedDict - from .paymentadjustment import ( - PaymentAdjustment, - PaymentAdjustmentRaw, - PaymentAdjustmentRawTypedDict, - PaymentAdjustmentTypedDict, - ) + from .payment import Payment, PaymentTypedDict + from .paymentadjustment import PaymentAdjustment, PaymentAdjustmentTypedDict from .paymentrequest import PaymentRequest, PaymentRequestTypedDict from .paymentresponse import PaymentResponse, PaymentResponseTypedDict from .paymentscheme import PaymentScheme @@ -246,12 +241,7 @@ UpdateTransferInitiationStatusRequest, UpdateTransferInitiationStatusRequestTypedDict, ) - from .v3account import ( - V3Account, - V3AccountRaw, - V3AccountRawTypedDict, - V3AccountTypedDict, - ) + from .v3account import V3Account, V3AccountTypedDict from .v3accountscursorresponse import ( V3AccountsCursorResponse, V3AccountsCursorResponseCursor, @@ -296,6 +286,7 @@ V3BankingcircleConfigTypedDict, ) from .v3bitstampconfig import V3BitstampConfig, V3BitstampConfigTypedDict + from .v3capability import V3Capability from .v3coinbaseprimeconfig import ( V3CoinbaseprimeConfig, V3CoinbaseprimeConfigTypedDict, @@ -304,6 +295,14 @@ from .v3connectionstatusenum import V3ConnectionStatusEnum from .v3connector import Config, ConfigTypedDict, V3Connector, V3ConnectorTypedDict from .v3connectorbase import V3ConnectorBase, V3ConnectorBaseTypedDict + from .v3connectorcapabilitiesresponse import ( + V3ConnectorCapabilitiesResponse, + V3ConnectorCapabilitiesResponseTypedDict, + ) + from .v3connectorcapabilityresponse import ( + V3ConnectorCapabilityResponse, + V3ConnectorCapabilityResponseTypedDict, + ) from .v3connectorconfig import V3ConnectorConfig, V3ConnectorConfigTypedDict from .v3connectorconfigsresponse import ( V3ConnectorConfigsResponse, @@ -463,6 +462,7 @@ V3InstallConnectorResponseTypedDict, ) from .v3instance import V3Instance, V3InstanceTypedDict + from .v3krakenproconfig import V3KrakenproConfig, V3KrakenproConfigTypedDict from .v3mangopayconfig import V3MangopayConfig, V3MangopayConfigTypedDict from .v3modulrconfig import V3ModulrConfig, V3ModulrConfigTypedDict from .v3moneycorpconfig import V3MoneycorpConfig, V3MoneycorpConfigTypedDict @@ -470,12 +470,7 @@ V3OpenBankingConnectionAttemptStatusEnum, ) from .v3order import V3Order, V3OrderTypedDict - from .v3orderadjustment import ( - V3OrderAdjustment, - V3OrderAdjustmentRaw, - V3OrderAdjustmentRawTypedDict, - V3OrderAdjustmentTypedDict, - ) + from .v3orderadjustment import V3OrderAdjustment, V3OrderAdjustmentTypedDict from .v3orderdirectionenum import V3OrderDirectionEnum from .v3orderscursorresponse import ( V3OrdersCursorResponse, @@ -486,12 +481,7 @@ from .v3orderstatusenum import V3OrderStatusEnum from .v3ordertypeenum import V3OrderTypeEnum from .v3payment import V3Payment, V3PaymentTypedDict - from .v3paymentadjustment import ( - V3PaymentAdjustment, - V3PaymentAdjustmentRaw, - V3PaymentAdjustmentRawTypedDict, - V3PaymentAdjustmentTypedDict, - ) + from .v3paymentadjustment import V3PaymentAdjustment, V3PaymentAdjustmentTypedDict from .v3paymentinitiation import V3PaymentInitiation, V3PaymentInitiationTypedDict from .v3paymentinitiationadjustment import ( V3PaymentInitiationAdjustment, @@ -657,8 +647,6 @@ "Account", "AccountBalance", "AccountBalanceTypedDict", - "AccountRaw", - "AccountRawTypedDict", "AccountRequest", "AccountRequestTypedDict", "AccountResponse", @@ -729,11 +717,7 @@ "MoneycorpConfigTypedDict", "Payment", "PaymentAdjustment", - "PaymentAdjustmentRaw", - "PaymentAdjustmentRawTypedDict", "PaymentAdjustmentTypedDict", - "PaymentRaw", - "PaymentRawTypedDict", "PaymentRequest", "PaymentRequestTypedDict", "PaymentResponse", @@ -862,8 +846,6 @@ "UpdateTransferInitiationStatusRequest", "UpdateTransferInitiationStatusRequestTypedDict", "V3Account", - "V3AccountRaw", - "V3AccountRawTypedDict", "V3AccountTypeEnum", "V3AccountTypedDict", "V3AccountsCursorResponse", @@ -902,6 +884,7 @@ "V3BankingcircleConfigTypedDict", "V3BitstampConfig", "V3BitstampConfigTypedDict", + "V3Capability", "V3CoinbaseprimeConfig", "V3CoinbaseprimeConfigTypedDict", "V3ColumnConfig", @@ -910,6 +893,10 @@ "V3Connector", "V3ConnectorBase", "V3ConnectorBaseTypedDict", + "V3ConnectorCapabilitiesResponse", + "V3ConnectorCapabilitiesResponseTypedDict", + "V3ConnectorCapabilityResponse", + "V3ConnectorCapabilityResponseTypedDict", "V3ConnectorConfig", "V3ConnectorConfigTypedDict", "V3ConnectorConfigsResponse", @@ -1019,6 +1006,8 @@ "V3InstallConnectorResponseTypedDict", "V3Instance", "V3InstanceTypedDict", + "V3KrakenproConfig", + "V3KrakenproConfigTypedDict", "V3MangopayConfig", "V3MangopayConfigTypedDict", "V3ModulrConfig", @@ -1028,8 +1017,6 @@ "V3OpenBankingConnectionAttemptStatusEnum", "V3Order", "V3OrderAdjustment", - "V3OrderAdjustmentRaw", - "V3OrderAdjustmentRawTypedDict", "V3OrderAdjustmentTypedDict", "V3OrderDirectionEnum", "V3OrderStatusEnum", @@ -1041,8 +1028,6 @@ "V3OrdersCursorResponseTypedDict", "V3Payment", "V3PaymentAdjustment", - "V3PaymentAdjustmentRaw", - "V3PaymentAdjustmentRawTypedDict", "V3PaymentAdjustmentTypedDict", "V3PaymentInitiation", "V3PaymentInitiationAdjustment", @@ -1166,8 +1151,6 @@ _dynamic_imports: dict[str, str] = { "Account": ".account", - "AccountRaw": ".account", - "AccountRawTypedDict": ".account", "AccountTypedDict": ".account", "AccountBalance": ".accountbalance", "AccountBalanceTypedDict": ".accountbalance", @@ -1237,12 +1220,8 @@ "MoneycorpConfig": ".moneycorpconfig", "MoneycorpConfigTypedDict": ".moneycorpconfig", "Payment": ".payment", - "PaymentRaw": ".payment", - "PaymentRawTypedDict": ".payment", "PaymentTypedDict": ".payment", "PaymentAdjustment": ".paymentadjustment", - "PaymentAdjustmentRaw": ".paymentadjustment", - "PaymentAdjustmentRawTypedDict": ".paymentadjustment", "PaymentAdjustmentTypedDict": ".paymentadjustment", "PaymentRequest": ".paymentrequest", "PaymentRequestTypedDict": ".paymentrequest", @@ -1371,8 +1350,6 @@ "UpdateTransferInitiationStatusRequest": ".updatetransferinitiationstatusrequest", "UpdateTransferInitiationStatusRequestTypedDict": ".updatetransferinitiationstatusrequest", "V3Account": ".v3account", - "V3AccountRaw": ".v3account", - "V3AccountRawTypedDict": ".v3account", "V3AccountTypedDict": ".v3account", "V3AccountsCursorResponse": ".v3accountscursorresponse", "V3AccountsCursorResponseCursor": ".v3accountscursorresponse", @@ -1411,6 +1388,7 @@ "V3BankingcircleConfigTypedDict": ".v3bankingcircleconfig", "V3BitstampConfig": ".v3bitstampconfig", "V3BitstampConfigTypedDict": ".v3bitstampconfig", + "V3Capability": ".v3capability", "V3CoinbaseprimeConfig": ".v3coinbaseprimeconfig", "V3CoinbaseprimeConfigTypedDict": ".v3coinbaseprimeconfig", "V3ColumnConfig": ".v3columnconfig", @@ -1422,6 +1400,10 @@ "V3ConnectorTypedDict": ".v3connector", "V3ConnectorBase": ".v3connectorbase", "V3ConnectorBaseTypedDict": ".v3connectorbase", + "V3ConnectorCapabilitiesResponse": ".v3connectorcapabilitiesresponse", + "V3ConnectorCapabilitiesResponseTypedDict": ".v3connectorcapabilitiesresponse", + "V3ConnectorCapabilityResponse": ".v3connectorcapabilityresponse", + "V3ConnectorCapabilityResponseTypedDict": ".v3connectorcapabilityresponse", "V3ConnectorConfig": ".v3connectorconfig", "V3ConnectorConfigTypedDict": ".v3connectorconfig", "V3ConnectorConfigsResponse": ".v3connectorconfigsresponse", @@ -1530,6 +1512,8 @@ "V3InstallConnectorResponseTypedDict": ".v3installconnectorresponse", "V3Instance": ".v3instance", "V3InstanceTypedDict": ".v3instance", + "V3KrakenproConfig": ".v3krakenproconfig", + "V3KrakenproConfigTypedDict": ".v3krakenproconfig", "V3MangopayConfig": ".v3mangopayconfig", "V3MangopayConfigTypedDict": ".v3mangopayconfig", "V3ModulrConfig": ".v3modulrconfig", @@ -1540,8 +1524,6 @@ "V3Order": ".v3order", "V3OrderTypedDict": ".v3order", "V3OrderAdjustment": ".v3orderadjustment", - "V3OrderAdjustmentRaw": ".v3orderadjustment", - "V3OrderAdjustmentRawTypedDict": ".v3orderadjustment", "V3OrderAdjustmentTypedDict": ".v3orderadjustment", "V3OrderDirectionEnum": ".v3orderdirectionenum", "V3OrdersCursorResponse": ".v3orderscursorresponse", @@ -1553,8 +1535,6 @@ "V3Payment": ".v3payment", "V3PaymentTypedDict": ".v3payment", "V3PaymentAdjustment": ".v3paymentadjustment", - "V3PaymentAdjustmentRaw": ".v3paymentadjustment", - "V3PaymentAdjustmentRawTypedDict": ".v3paymentadjustment", "V3PaymentAdjustmentTypedDict": ".v3paymentadjustment", "V3PaymentInitiation": ".v3paymentinitiation", "V3PaymentInitiationTypedDict": ".v3paymentinitiation", diff --git a/src/formance_sdk_python/models/payments/account.py b/src/formance_sdk_python/models/payments/account.py index dc1b4bdb..c936370a 100644 --- a/src/formance_sdk_python/models/payments/account.py +++ b/src/formance_sdk_python/models/payments/account.py @@ -6,18 +6,10 @@ from formance_sdk_python.types import BaseModel, Nullable, UNSET_SENTINEL import pydantic from pydantic import model_serializer -from typing import Dict, List, Optional +from typing import Any, Dict, List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class AccountRawTypedDict(TypedDict): - pass - - -class AccountRaw(BaseModel): - pass - - class AccountTypedDict(TypedDict): account_name: str connector_id: str @@ -26,7 +18,7 @@ class AccountTypedDict(TypedDict): default_currency: str id: str metadata: Nullable[Dict[str, str]] - raw: Nullable[AccountRawTypedDict] + raw: Nullable[Dict[str, Any]] reference: str type: AccountType pools: NotRequired[List[str]] @@ -54,7 +46,7 @@ class Account(BaseModel): metadata: Nullable[Dict[str, str]] - raw: Nullable[AccountRaw] + raw: Nullable[Dict[str, Any]] reference: str diff --git a/src/formance_sdk_python/models/payments/payment.py b/src/formance_sdk_python/models/payments/payment.py index ade211c5..908d670c 100644 --- a/src/formance_sdk_python/models/payments/payment.py +++ b/src/formance_sdk_python/models/payments/payment.py @@ -12,18 +12,10 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import BeforeValidator -from typing import Dict, List, Optional +from typing import Any, Dict, List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class PaymentRawTypedDict(TypedDict): - pass - - -class PaymentRaw(BaseModel): - pass - - class PaymentTypedDict(TypedDict): adjustments: List[PaymentAdjustmentTypedDict] amount: int @@ -34,7 +26,7 @@ class PaymentTypedDict(TypedDict): id: str initial_amount: int metadata: Nullable[Dict[str, str]] - raw: Nullable[PaymentRawTypedDict] + raw: Nullable[Dict[str, Any]] reference: str scheme: PaymentScheme source_account_id: str @@ -65,7 +57,7 @@ class Payment(BaseModel): metadata: Nullable[Dict[str, str]] - raw: Nullable[PaymentRaw] + raw: Nullable[Dict[str, Any]] reference: str diff --git a/src/formance_sdk_python/models/payments/paymentadjustment.py b/src/formance_sdk_python/models/payments/paymentadjustment.py index ca6c37fb..f09ef6d5 100644 --- a/src/formance_sdk_python/models/payments/paymentadjustment.py +++ b/src/formance_sdk_python/models/payments/paymentadjustment.py @@ -7,21 +7,14 @@ from formance_sdk_python.utils import validate_int import pydantic from pydantic.functional_validators import BeforeValidator +from typing import Any, Dict from typing_extensions import Annotated, TypedDict -class PaymentAdjustmentRawTypedDict(TypedDict): - pass - - -class PaymentAdjustmentRaw(BaseModel): - pass - - class PaymentAdjustmentTypedDict(TypedDict): amount: int created_at: datetime - raw: PaymentAdjustmentRawTypedDict + raw: Dict[str, Any] reference: str status: PaymentStatus @@ -31,7 +24,7 @@ class PaymentAdjustment(BaseModel): created_at: Annotated[datetime, pydantic.Field(alias="createdAt")] - raw: PaymentAdjustmentRaw + raw: Dict[str, Any] reference: str diff --git a/src/formance_sdk_python/models/payments/v3account.py b/src/formance_sdk_python/models/payments/v3account.py index bb81b061..d00be08e 100644 --- a/src/formance_sdk_python/models/payments/v3account.py +++ b/src/formance_sdk_python/models/payments/v3account.py @@ -13,24 +13,16 @@ ) import pydantic from pydantic import model_serializer -from typing import Dict, Optional +from typing import Any, Dict, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class V3AccountRawTypedDict(TypedDict): - pass - - -class V3AccountRaw(BaseModel): - pass - - class V3AccountTypedDict(TypedDict): connector_id: str created_at: datetime id: str provider: str - raw: V3AccountRawTypedDict + raw: Dict[str, Any] reference: str type: V3AccountTypeEnum connector: NotRequired[V3ConnectorBaseTypedDict] @@ -48,7 +40,7 @@ class V3Account(BaseModel): provider: str - raw: V3AccountRaw + raw: Dict[str, Any] reference: str diff --git a/src/formance_sdk_python/models/payments/v3capability.py b/src/formance_sdk_python/models/payments/v3capability.py new file mode 100644 index 00000000..4678cfd5 --- /dev/null +++ b/src/formance_sdk_python/models/payments/v3capability.py @@ -0,0 +1,23 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum + + +class V3Capability(str, Enum): + r"""Plugin capability advertised by a connector. Distinct from the Formance gateway \"module capabilities\" (which are version-gated); these reflect what the underlying PSP integration actually exposes.""" + + FETCH_ACCOUNTS = "FETCH_ACCOUNTS" + FETCH_BALANCES = "FETCH_BALANCES" + FETCH_EXTERNAL_ACCOUNTS = "FETCH_EXTERNAL_ACCOUNTS" + FETCH_PAYMENTS = "FETCH_PAYMENTS" + FETCH_OTHERS = "FETCH_OTHERS" + FETCH_ORDERS = "FETCH_ORDERS" + FETCH_CONVERSIONS = "FETCH_CONVERSIONS" + CREATE_WEBHOOKS = "CREATE_WEBHOOKS" + TRANSLATE_WEBHOOKS = "TRANSLATE_WEBHOOKS" + CREATE_BANK_ACCOUNT = "CREATE_BANK_ACCOUNT" + CREATE_TRANSFER = "CREATE_TRANSFER" + CREATE_PAYOUT = "CREATE_PAYOUT" + ALLOW_FORMANCE_ACCOUNT_CREATION = "ALLOW_FORMANCE_ACCOUNT_CREATION" + ALLOW_FORMANCE_PAYMENT_CREATION = "ALLOW_FORMANCE_PAYMENT_CREATION" diff --git a/src/formance_sdk_python/models/payments/v3connector.py b/src/formance_sdk_python/models/payments/v3connector.py index 45c39335..4904c471 100644 --- a/src/formance_sdk_python/models/payments/v3connector.py +++ b/src/formance_sdk_python/models/payments/v3connector.py @@ -1,6 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .v3capability import V3Capability from datetime import datetime from formance_sdk_python.types import ( BaseModel, @@ -11,6 +12,7 @@ ) import pydantic from pydantic import model_serializer +from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -30,6 +32,8 @@ class V3ConnectorTypedDict(TypedDict): provider: str reference: str scheduled_for_deletion: bool + capabilities: NotRequired[List[V3Capability]] + r"""Plugin capabilities advertised by the connector's provider.""" updated_at: NotRequired[Nullable[datetime]] @@ -50,13 +54,16 @@ class V3Connector(BaseModel): bool, pydantic.Field(alias="scheduledForDeletion") ] + capabilities: Optional[List[V3Capability]] = None + r"""Plugin capabilities advertised by the connector's provider.""" + updated_at: Annotated[ OptionalNullable[datetime], pydantic.Field(alias="updatedAt") ] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["updatedAt"]) + optional_fields = set(["capabilities", "updatedAt"]) nullable_fields = set(["updatedAt"]) serialized = handler(self) m = {} diff --git a/src/formance_sdk_python/models/payments/v3connectorcapabilitiesresponse.py b/src/formance_sdk_python/models/payments/v3connectorcapabilitiesresponse.py new file mode 100644 index 00000000..dd3876d7 --- /dev/null +++ b/src/formance_sdk_python/models/payments/v3connectorcapabilitiesresponse.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .v3capability import V3Capability +from formance_sdk_python.types import BaseModel +from typing import Dict, List +from typing_extensions import TypedDict + + +class V3ConnectorCapabilitiesResponseTypedDict(TypedDict): + data: Dict[str, List[V3Capability]] + r"""Map of provider name to the capabilities its plugin advertises.""" + + +class V3ConnectorCapabilitiesResponse(BaseModel): + data: Dict[str, List[V3Capability]] + r"""Map of provider name to the capabilities its plugin advertises.""" diff --git a/src/formance_sdk_python/models/payments/v3connectorcapabilityresponse.py b/src/formance_sdk_python/models/payments/v3connectorcapabilityresponse.py new file mode 100644 index 00000000..aa438a27 --- /dev/null +++ b/src/formance_sdk_python/models/payments/v3connectorcapabilityresponse.py @@ -0,0 +1,15 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .v3capability import V3Capability +from formance_sdk_python.types import BaseModel +from typing import List +from typing_extensions import TypedDict + + +class V3ConnectorCapabilityResponseTypedDict(TypedDict): + data: List[V3Capability] + + +class V3ConnectorCapabilityResponse(BaseModel): + data: List[V3Capability] diff --git a/src/formance_sdk_python/models/payments/v3connectorconfig.py b/src/formance_sdk_python/models/payments/v3connectorconfig.py index 45fe4bf8..888ac9cd 100644 --- a/src/formance_sdk_python/models/payments/v3connectorconfig.py +++ b/src/formance_sdk_python/models/payments/v3connectorconfig.py @@ -13,6 +13,7 @@ from .v3fireblocksconfig import V3FireblocksConfig, V3FireblocksConfigTypedDict from .v3genericconfig import V3GenericConfig, V3GenericConfigTypedDict from .v3increaseconfig import V3IncreaseConfig, V3IncreaseConfigTypedDict +from .v3krakenproconfig import V3KrakenproConfig, V3KrakenproConfigTypedDict from .v3mangopayconfig import V3MangopayConfig, V3MangopayConfigTypedDict from .v3modulrconfig import V3ModulrConfig, V3ModulrConfigTypedDict from .v3moneycorpconfig import V3MoneycorpConfig, V3MoneycorpConfigTypedDict @@ -35,17 +36,18 @@ V3WiseConfigTypedDict, V3ColumnConfigTypedDict, V3MoneycorpConfigTypedDict, - V3AtlarConfigTypedDict, + V3BitstampConfigTypedDict, V3CurrencycloudConfigTypedDict, V3IncreaseConfigTypedDict, V3MangopayConfigTypedDict, V3ModulrConfigTypedDict, V3RoutableConfigTypedDict, V3PlaidConfigTypedDict, - V3FireblocksConfigTypedDict, + V3KrakenproConfigTypedDict, V3DummypayConfigTypedDict, - V3BitstampConfigTypedDict, + V3FireblocksConfigTypedDict, V3TinkConfigTypedDict, + V3AtlarConfigTypedDict, V3QontoConfigTypedDict, V3BankingbridgeConfigTypedDict, V3CoinbaseprimeConfigTypedDict, @@ -64,17 +66,18 @@ V3WiseConfig, V3ColumnConfig, V3MoneycorpConfig, - V3AtlarConfig, + V3BitstampConfig, V3CurrencycloudConfig, V3IncreaseConfig, V3MangopayConfig, V3ModulrConfig, V3RoutableConfig, V3PlaidConfig, - V3FireblocksConfig, + V3KrakenproConfig, V3DummypayConfig, - V3BitstampConfig, + V3FireblocksConfig, V3TinkConfig, + V3AtlarConfig, V3QontoConfig, V3BankingbridgeConfig, V3CoinbaseprimeConfig, diff --git a/src/formance_sdk_python/models/payments/v3krakenproconfig.py b/src/formance_sdk_python/models/payments/v3krakenproconfig.py new file mode 100644 index 00000000..727aec5a --- /dev/null +++ b/src/formance_sdk_python/models/payments/v3krakenproconfig.py @@ -0,0 +1,64 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from formance_sdk_python.types import BaseModel, UNSET_SENTINEL +import pydantic +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class V3KrakenproConfigTypedDict(TypedDict): + api_key: str + api_secret: str + endpoint: str + name: str + page_size: NotRequired[int] + polling_period: NotRequired[str] + provider: NotRequired[str] + + +class V3KrakenproConfig(BaseModel): + api_key: Annotated[str, pydantic.Field(alias="apiKey")] + + api_secret: Annotated[str, pydantic.Field(alias="apiSecret")] + + endpoint: str + + name: str + + page_size: Annotated[ + Optional[int], + pydantic.Field( + deprecated="warning: ** DEPRECATED ** - From v3.1, this parameter will be ignored.", + alias="pageSize", + ), + ] = 25 + + polling_period: Annotated[Optional[str], pydantic.Field(alias="pollingPeriod")] = ( + "30m" + ) + + provider: Optional[str] = "Krakenpro" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["pageSize", "pollingPeriod", "provider"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + V3KrakenproConfig.model_rebuild() +except NameError: + pass diff --git a/src/formance_sdk_python/models/payments/v3orderadjustment.py b/src/formance_sdk_python/models/payments/v3orderadjustment.py index f5ea2d60..93f75eed 100644 --- a/src/formance_sdk_python/models/payments/v3orderadjustment.py +++ b/src/formance_sdk_python/models/payments/v3orderadjustment.py @@ -14,18 +14,10 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import BeforeValidator -from typing import Dict, Optional +from typing import Any, Dict, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class V3OrderAdjustmentRawTypedDict(TypedDict): - r"""Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay.""" - - -class V3OrderAdjustmentRaw(BaseModel): - r"""Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay.""" - - class V3OrderAdjustmentTypedDict(TypedDict): r"""Immutable snapshot of an order's state at a single observation. Formance records one adjustment per distinct state the PSP reports @@ -59,7 +51,7 @@ class V3OrderAdjustmentTypedDict(TypedDict): fee_asset: NotRequired[Nullable[str]] r"""Currency the fee is denominated in, in `SYMBOL/precision` form.""" metadata: NotRequired[Nullable[Dict[str, str]]] - raw: NotRequired[V3OrderAdjustmentRawTypedDict] + raw: NotRequired[Dict[str, Any]] r"""Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay.""" @@ -109,7 +101,7 @@ class V3OrderAdjustment(BaseModel): metadata: OptionalNullable[Dict[str, str]] = UNSET - raw: Optional[V3OrderAdjustmentRaw] = None + raw: Optional[Dict[str, Any]] = None r"""Untransformed PSP response payload that produced this adjustment. Retained for debugging and replay.""" @model_serializer(mode="wrap") diff --git a/src/formance_sdk_python/models/payments/v3paymentadjustment.py b/src/formance_sdk_python/models/payments/v3paymentadjustment.py index 15d94748..b66ee70c 100644 --- a/src/formance_sdk_python/models/payments/v3paymentadjustment.py +++ b/src/formance_sdk_python/models/payments/v3paymentadjustment.py @@ -14,22 +14,14 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import BeforeValidator -from typing import Dict, Optional +from typing import Any, Dict, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class V3PaymentAdjustmentRawTypedDict(TypedDict): - pass - - -class V3PaymentAdjustmentRaw(BaseModel): - pass - - class V3PaymentAdjustmentTypedDict(TypedDict): created_at: datetime id: str - raw: V3PaymentAdjustmentRawTypedDict + raw: Dict[str, Any] reference: str status: V3PaymentStatusEnum amount: NotRequired[int] @@ -42,7 +34,7 @@ class V3PaymentAdjustment(BaseModel): id: str - raw: V3PaymentAdjustmentRaw + raw: Dict[str, Any] reference: str diff --git a/src/formance_sdk_python/orchestration_v1.py b/src/formance_sdk_python/orchestration_v1.py index 28bfa4d9..e6fef1aa 100644 --- a/src/formance_sdk_python/orchestration_v1.py +++ b/src/formance_sdk_python/orchestration_v1.py @@ -84,6 +84,8 @@ def cancel_event( operation_id="cancelEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -173,6 +175,8 @@ async def cancel_event_async( operation_id="cancelEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -268,6 +272,8 @@ def create_trigger( operation_id="createTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -366,6 +372,8 @@ async def create_trigger_async( operation_id="createTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -464,6 +472,8 @@ def create_workflow( operation_id="createWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -562,6 +572,8 @@ async def create_workflow_async( operation_id="createWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -654,6 +666,8 @@ def delete_trigger( operation_id="deleteTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -743,6 +757,8 @@ async def delete_trigger_async( operation_id="deleteTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -832,6 +848,8 @@ def delete_workflow( operation_id="deleteWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -921,6 +939,8 @@ async def delete_workflow_async( operation_id="deleteWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1010,6 +1030,8 @@ def get_instance( operation_id="getInstance", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1102,6 +1124,8 @@ async def get_instance_async( operation_id="getInstance", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1195,6 +1219,8 @@ def get_instance_history( operation_id="getInstanceHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1288,6 +1314,8 @@ async def get_instance_history_async( operation_id="getInstanceHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1383,6 +1411,8 @@ def get_instance_stage_history( operation_id="getInstanceStageHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1479,6 +1509,8 @@ async def get_instance_stage_history_async( operation_id="getInstanceStageHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1561,6 +1593,8 @@ def get_server_info_orchestration( operation_id="getServerInfo_orchestration", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1642,6 +1676,8 @@ async def get_server_info_orchestration_async( operation_id="getServerInfo_orchestration", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1734,6 +1770,8 @@ def get_workflow( operation_id="getWorkflow", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1826,6 +1864,8 @@ async def get_workflow_async( operation_id="getWorkflow", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1918,6 +1958,8 @@ def list_instances( operation_id="listInstances", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2010,6 +2052,8 @@ async def list_instances_async( operation_id="listInstances", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2102,6 +2146,8 @@ def list_triggers( operation_id="listTriggers", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2194,6 +2240,8 @@ async def list_triggers_async( operation_id="listTriggers", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2289,6 +2337,8 @@ def list_triggers_occurrences( operation_id="listTriggersOccurrences", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2384,6 +2434,8 @@ async def list_triggers_occurrences_async( operation_id="listTriggersOccurrences", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2467,6 +2519,8 @@ def list_workflows( operation_id="listWorkflows", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2550,6 +2604,8 @@ async def list_workflows_async( operation_id="listWorkflows", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2642,6 +2698,8 @@ def read_trigger( operation_id="readTrigger", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2734,6 +2792,8 @@ async def read_trigger_async( operation_id="readTrigger", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2833,6 +2893,8 @@ def run_workflow( operation_id="runWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -2932,6 +2994,8 @@ async def run_workflow_async( operation_id="runWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -3031,6 +3095,8 @@ def send_event( operation_id="sendEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -3127,6 +3193,8 @@ async def send_event_async( operation_id="sendEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), diff --git a/src/formance_sdk_python/orchestration_v2.py b/src/formance_sdk_python/orchestration_v2.py index 5cbb8e9d..29c490e6 100644 --- a/src/formance_sdk_python/orchestration_v2.py +++ b/src/formance_sdk_python/orchestration_v2.py @@ -84,6 +84,8 @@ def cancel_event( operation_id="v2CancelEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -173,6 +175,8 @@ async def cancel_event_async( operation_id="v2CancelEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -268,6 +272,8 @@ def create_trigger( operation_id="v2CreateTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -366,6 +372,8 @@ async def create_trigger_async( operation_id="v2CreateTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -464,6 +472,8 @@ def create_workflow( operation_id="v2CreateWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -562,6 +572,8 @@ async def create_workflow_async( operation_id="v2CreateWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -655,6 +667,8 @@ def delete_trigger( operation_id="v2DeleteTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -745,6 +759,8 @@ async def delete_trigger_async( operation_id="v2DeleteTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -835,6 +851,8 @@ def delete_workflow( operation_id="v2DeleteWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -925,6 +943,8 @@ async def delete_workflow_async( operation_id="v2DeleteWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1014,6 +1034,8 @@ def get_instance( operation_id="v2GetInstance", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1106,6 +1128,8 @@ async def get_instance_async( operation_id="v2GetInstance", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1199,6 +1223,8 @@ def get_instance_history( operation_id="v2GetInstanceHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1293,6 +1319,8 @@ async def get_instance_history_async( operation_id="v2GetInstanceHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1389,6 +1417,8 @@ def get_instance_stage_history( operation_id="v2GetInstanceStageHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1485,6 +1515,8 @@ async def get_instance_stage_history_async( operation_id="v2GetInstanceStageHistory", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1567,6 +1599,8 @@ def get_server_info( operation_id="v2GetServerInfo", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1648,6 +1682,8 @@ async def get_server_info_async( operation_id="v2GetServerInfo", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1740,6 +1776,8 @@ def get_workflow( operation_id="v2GetWorkflow", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1832,6 +1870,8 @@ async def get_workflow_async( operation_id="v2GetWorkflow", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1925,6 +1965,8 @@ def list_instances( operation_id="v2ListInstances", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2018,6 +2060,8 @@ async def list_instances_async( operation_id="v2ListInstances", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2110,6 +2154,8 @@ def list_triggers( operation_id="v2ListTriggers", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2202,6 +2248,8 @@ async def list_triggers_async( operation_id="v2ListTriggers", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2297,6 +2345,8 @@ def list_triggers_occurrences( operation_id="v2ListTriggersOccurrences", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2392,6 +2442,8 @@ async def list_triggers_occurrences_async( operation_id="v2ListTriggersOccurrences", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2485,6 +2537,8 @@ def list_workflows( operation_id="v2ListWorkflows", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2578,6 +2632,8 @@ async def list_workflows_async( operation_id="v2ListWorkflows", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2670,6 +2726,8 @@ def read_trigger( operation_id="v2ReadTrigger", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2762,6 +2820,8 @@ async def read_trigger_async( operation_id="v2ReadTrigger", oauth2_scopes=["orchestration:read"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2861,6 +2921,8 @@ def run_workflow( operation_id="v2RunWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -2960,6 +3022,8 @@ async def run_workflow_async( operation_id="v2RunWorkflow", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -3059,6 +3123,8 @@ def send_event( operation_id="v2SendEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -3155,6 +3221,8 @@ async def send_event_async( operation_id="v2SendEvent", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -3251,6 +3319,8 @@ def test_trigger( operation_id="testTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3350,6 +3420,8 @@ async def test_trigger_async( operation_id="testTrigger", oauth2_scopes=["orchestration:write"], security_source=self.sdk_configuration.security, + tags=["orchestration.v2"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/payments_v1.py b/src/formance_sdk_python/payments_v1.py index 94f7bf6d..8fa3cb0a 100644 --- a/src/formance_sdk_python/payments_v1.py +++ b/src/formance_sdk_python/payments_v1.py @@ -96,6 +96,8 @@ def add_account_to_pool( operation_id="addAccountToPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -195,6 +197,8 @@ async def add_account_to_pool_async( operation_id="addAccountToPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -290,6 +294,8 @@ def connectors_transfer( operation_id="connectorsTransfer", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -388,6 +394,8 @@ async def connectors_transfer_async( operation_id="connectorsTransfer", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -486,6 +494,8 @@ def create_account( operation_id="createAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -584,6 +594,8 @@ async def create_account_async( operation_id="createAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -682,6 +694,8 @@ def create_bank_account( operation_id="createBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -780,6 +794,8 @@ async def create_bank_account_async( operation_id="createBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -878,6 +894,8 @@ def create_payment( operation_id="createPayment", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -976,6 +994,8 @@ async def create_payment_async( operation_id="createPayment", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1073,6 +1093,8 @@ def create_pool( operation_id="createPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1170,6 +1192,8 @@ async def create_pool_async( operation_id="createPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1268,6 +1292,8 @@ def create_transfer_initiation( operation_id="createTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1366,6 +1392,8 @@ async def create_transfer_initiation_async( operation_id="createTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1460,6 +1488,8 @@ def delete_pool( operation_id="deletePool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1551,6 +1581,8 @@ async def delete_pool_async( operation_id="deletePool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1645,6 +1677,8 @@ def delete_transfer_initiation( operation_id="deleteTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1739,6 +1773,8 @@ async def delete_transfer_initiation_async( operation_id="deleteTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1836,6 +1872,8 @@ def forward_bank_account( operation_id="forwardBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1936,6 +1974,8 @@ async def forward_bank_account_async( operation_id="forwardBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2029,6 +2069,8 @@ def get_account_balances( operation_id="getAccountBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2122,6 +2164,8 @@ async def get_account_balances_async( operation_id="getAccountBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2215,6 +2259,8 @@ def get_account_payments( operation_id="getAccount_payments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2308,6 +2354,8 @@ async def get_account_payments_async( operation_id="getAccount_payments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2400,6 +2448,8 @@ def get_bank_account( operation_id="getBankAccount", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2492,6 +2542,8 @@ async def get_bank_account_async( operation_id="getBankAccount", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2590,6 +2642,8 @@ def get_connector_task( operation_id="getConnectorTask", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2688,6 +2742,8 @@ async def get_connector_task_async( operation_id="getConnectorTask", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2783,6 +2839,8 @@ def get_connector_task_v1( operation_id="getConnectorTaskV1", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2878,6 +2936,8 @@ async def get_connector_task_v1_async( operation_id="getConnectorTaskV1", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2970,6 +3030,8 @@ def get_payment( operation_id="getPayment", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3062,6 +3124,8 @@ async def get_payment_async( operation_id="getPayment", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3152,6 +3216,8 @@ def get_pool( operation_id="getPool", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3242,6 +3308,8 @@ async def get_pool_async( operation_id="getPool", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3335,6 +3403,8 @@ def get_pool_balances( operation_id="getPoolBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3428,6 +3498,8 @@ async def get_pool_balances_async( operation_id="getPoolBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3521,6 +3593,8 @@ def get_pool_balances_latest( operation_id="getPoolBalancesLatest", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3614,6 +3688,8 @@ async def get_pool_balances_latest_async( operation_id="getPoolBalancesLatest", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3697,6 +3773,8 @@ def get_server_info_payments( operation_id="getServerInfo_payments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3780,6 +3858,8 @@ async def get_server_info_payments_async( operation_id="getServerInfo_payments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3873,6 +3953,8 @@ def get_transfer_initiation( operation_id="getTransferInitiation", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3966,6 +4048,8 @@ async def get_transfer_initiation_async( operation_id="getTransferInitiation", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4064,6 +4148,8 @@ def install_connector( operation_id="installConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -4162,6 +4248,8 @@ async def install_connector_async( operation_id="installConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -4262,6 +4350,8 @@ def list_accounts_payments( operation_id="listAccounts_payments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4362,6 +4452,8 @@ async def list_accounts_payments_async( operation_id="listAccounts_payments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4447,6 +4539,8 @@ def list_all_connectors( operation_id="listAllConnectors", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4532,6 +4626,8 @@ async def list_all_connectors_async( operation_id="listAllConnectors", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4627,6 +4723,8 @@ def list_bank_accounts( operation_id="listBankAccounts", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4722,6 +4820,8 @@ async def list_bank_accounts_async( operation_id="listBankAccounts", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4807,6 +4907,8 @@ def list_configs_available_connectors( operation_id="listConfigsAvailableConnectors", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4892,6 +4994,8 @@ async def list_configs_available_connectors_async( operation_id="listConfigsAvailableConnectors", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4990,6 +5094,8 @@ def list_connector_tasks( operation_id="listConnectorTasks", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5088,6 +5194,8 @@ async def list_connector_tasks_async( operation_id="listConnectorTasks", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5183,6 +5291,8 @@ def list_connector_tasks_v1( operation_id="listConnectorTasksV1", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5278,6 +5388,8 @@ async def list_connector_tasks_v1_async( operation_id="listConnectorTasksV1", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5370,6 +5482,8 @@ def list_payments( operation_id="listPayments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5462,6 +5576,8 @@ async def list_payments_async( operation_id="listPayments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5554,6 +5670,8 @@ def list_pools( operation_id="listPools", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5646,6 +5764,8 @@ async def list_pools_async( operation_id="listPools", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5741,6 +5861,8 @@ def list_transfer_initiations( operation_id="listTransferInitiations", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5836,6 +5958,8 @@ async def list_transfer_initiations_async( operation_id="listTransferInitiations", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5934,6 +6058,8 @@ def read_connector_config( operation_id="readConnectorConfig", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6032,6 +6158,8 @@ async def read_connector_config_async( operation_id="readConnectorConfig", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6127,6 +6255,8 @@ def read_connector_config_v1( operation_id="readConnectorConfigV1", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6222,6 +6352,8 @@ async def read_connector_config_v1_async( operation_id="readConnectorConfigV1", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6317,6 +6449,8 @@ def remove_account_from_pool( operation_id="removeAccountFromPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6409,6 +6543,8 @@ async def remove_account_from_pool_async( operation_id="removeAccountFromPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6505,6 +6641,8 @@ def reset_connector( operation_id="resetConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6601,6 +6739,8 @@ async def reset_connector_async( operation_id="resetConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6695,6 +6835,8 @@ def reset_connector_v1( operation_id="resetConnectorV1", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6789,6 +6931,8 @@ async def reset_connector_v1_async( operation_id="resetConnectorV1", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6883,6 +7027,8 @@ def retry_transfer_initiation( operation_id="retryTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -6977,6 +7123,8 @@ async def retry_transfer_initiation_async( operation_id="retryTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7078,6 +7226,8 @@ def reverse_transfer_initiation( operation_id="reverseTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7179,6 +7329,8 @@ async def reverse_transfer_initiation_async( operation_id="reverseTransferInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7274,6 +7426,8 @@ def uninstall_connector( operation_id="uninstallConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7369,6 +7523,8 @@ async def uninstall_connector_async( operation_id="uninstallConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7461,6 +7617,8 @@ def uninstall_connector_v1( operation_id="uninstallConnectorV1", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7553,6 +7711,8 @@ async def uninstall_connector_v1_async( operation_id="uninstallConnectorV1", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7652,6 +7812,8 @@ def update_bank_account_metadata( operation_id="updateBankAccountMetadata", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7751,6 +7913,8 @@ async def update_bank_account_metadata_async( operation_id="updateBankAccountMetadata", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7848,6 +8012,8 @@ def update_connector_config_v1( operation_id="updateConnectorConfigV1", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -7945,6 +8111,8 @@ async def update_connector_config_v1_async( operation_id="updateConnectorConfigV1", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -8037,6 +8205,8 @@ def update_metadata( operation_id="updateMetadata", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -8129,6 +8299,8 @@ async def update_metadata_async( operation_id="updateMetadata", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -8226,6 +8398,8 @@ def update_pool_query( operation_id="updatePoolQuery", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -8323,6 +8497,8 @@ async def update_pool_query_async( operation_id="updatePoolQuery", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -8424,6 +8600,8 @@ def update_transfer_initiation_status( operation_id="updateTransferInitiationStatus", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -8525,6 +8703,8 @@ async def update_transfer_initiation_status_async( operation_id="updateTransferInitiationStatus", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), diff --git a/src/formance_sdk_python/reconciliation_v1.py b/src/formance_sdk_python/reconciliation_v1.py index 45116b1e..ce483b34 100644 --- a/src/formance_sdk_python/reconciliation_v1.py +++ b/src/formance_sdk_python/reconciliation_v1.py @@ -87,6 +87,8 @@ def create_policy( operation_id="createPolicy", oauth2_scopes=["reconciliation:write"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -185,6 +187,8 @@ async def create_policy_async( operation_id="createPolicy", oauth2_scopes=["reconciliation:write"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -279,6 +283,8 @@ def delete_policy( operation_id="deletePolicy", oauth2_scopes=["reconciliation:write"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -370,6 +376,8 @@ async def delete_policy_async( operation_id="deletePolicy", oauth2_scopes=["reconciliation:write"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -459,6 +467,8 @@ def get_policy( operation_id="getPolicy", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -551,6 +561,8 @@ async def get_policy_async( operation_id="getPolicy", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -644,6 +656,8 @@ def get_reconciliation( operation_id="getReconciliation", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -737,6 +751,8 @@ async def get_reconciliation_async( operation_id="getReconciliation", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -820,6 +836,8 @@ def get_server_info_reconciliation( operation_id="getServerInfo_reconciliation", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -903,6 +921,8 @@ async def get_server_info_reconciliation_async( operation_id="getServerInfo_reconciliation", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1002,6 +1022,8 @@ def list_policies( operation_id="listPolicies", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1101,6 +1123,8 @@ async def list_policies_async( operation_id="listPolicies", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1201,6 +1225,8 @@ def list_reconciliations( operation_id="listReconciliations", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1301,6 +1327,8 @@ async def list_reconciliations_async( operation_id="listReconciliations", oauth2_scopes=["reconciliation:read"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1402,6 +1430,8 @@ def reconcile( operation_id="reconcile", oauth2_scopes=["reconciliation:write"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1503,6 +1533,8 @@ async def reconcile_async( operation_id="reconcile", oauth2_scopes=["reconciliation:write"], security_source=self.sdk_configuration.security, + tags=["reconciliation.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/sdk.py b/src/formance_sdk_python/sdk.py index b6e26077..6f071749 100644 --- a/src/formance_sdk_python/sdk.py +++ b/src/formance_sdk_python/sdk.py @@ -276,6 +276,8 @@ def get_versions( operation_id="getVersions", oauth2_scopes=None, security_source=None, + tags=None, + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -352,6 +354,8 @@ async def get_versions_async( operation_id="getVersions", oauth2_scopes=None, security_source=None, + tags=None, + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/search_v1.py b/src/formance_sdk_python/search_v1.py index 3d59981e..8bd10eda 100644 --- a/src/formance_sdk_python/search_v1.py +++ b/src/formance_sdk_python/search_v1.py @@ -74,6 +74,8 @@ def get_server_info_search( operation_id="getServerInfo_search", oauth2_scopes=["search:read"], security_source=self.sdk_configuration.security, + tags=["search.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -157,6 +159,8 @@ async def get_server_info_search_async( operation_id="getServerInfo_search", oauth2_scopes=["search:read"], security_source=self.sdk_configuration.security, + tags=["search.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -252,6 +256,8 @@ def search( operation_id="search", oauth2_scopes=["search:write"], security_source=self.sdk_configuration.security, + tags=["search.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -345,6 +351,8 @@ async def search_async( operation_id="search", oauth2_scopes=["search:write"], security_source=self.sdk_configuration.security, + tags=["search.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), diff --git a/src/formance_sdk_python/types/base64fileinput.py b/src/formance_sdk_python/types/base64fileinput.py index 25fc5398..862566fe 100644 --- a/src/formance_sdk_python/types/base64fileinput.py +++ b/src/formance_sdk_python/types/base64fileinput.py @@ -23,7 +23,11 @@ def encode_base64_file_input(value: Any) -> Any: with open(value, "rb") as fh: binary = fh.read() else: + # Restore position after reading: pydantic may validate the same stream more than once. + position = value.tell() if value.seekable() else None binary = value.read() + if position is not None: + value.seek(position) if isinstance(binary, str): binary = binary.encode() if not isinstance(binary, (bytes, bytearray)): diff --git a/src/formance_sdk_python/utils/__init__.py b/src/formance_sdk_python/utils/__init__.py index 0498cb8d..7af3b82c 100644 --- a/src/formance_sdk_python/utils/__init__.py +++ b/src/formance_sdk_python/utils/__init__.py @@ -15,7 +15,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: if TYPE_CHECKING: from .annotations import get_discriminator - from .datetimes import parse_datetime + from .datetimes import parse_datetime, parse_duration from .enums import OpenEnumMeta from .headers import get_headers, get_response_headers from .metadata import ( @@ -70,6 +70,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: "get_default_logger", "get_discriminator", "parse_datetime", + "parse_duration", "get_global_from_env", "get_headers", "get_pydantic_model", @@ -122,6 +123,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: "get_default_logger": ".logger", "get_discriminator": ".annotations", "parse_datetime": ".datetimes", + "parse_duration": ".datetimes", "get_global_from_env": ".values", "get_headers": ".headers", "get_pydantic_model": ".serializers", diff --git a/src/formance_sdk_python/utils/datetimes.py b/src/formance_sdk_python/utils/datetimes.py index a6c52cd6..adad2476 100644 --- a/src/formance_sdk_python/utils/datetimes.py +++ b/src/formance_sdk_python/utils/datetimes.py @@ -1,8 +1,10 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from datetime import datetime +from datetime import datetime, timedelta import sys +from pydantic import TypeAdapter + def parse_datetime(datetime_string: str) -> datetime: """ @@ -21,3 +23,15 @@ def parse_datetime(datetime_string: str) -> datetime: datetime_string = datetime_string[:-1] + "+00:00" return datetime.fromisoformat(datetime_string) + + +_DURATION_ADAPTER = TypeAdapter(timedelta) + + +def parse_duration(duration_string: str) -> timedelta: + """ + Convert an ISO 8601 duration string (e.g. "PT1H30M") into a timedelta. + The standard library has no ISO 8601 duration parser, so this delegates to + pydantic, which is already a runtime dependency of the SDK. + """ + return _DURATION_ADAPTER.validate_python(duration_string) diff --git a/src/formance_sdk_python/utils/eventstreaming.py b/src/formance_sdk_python/utils/eventstreaming.py index 3bdcd6d3..a8d4fe5c 100644 --- a/src/formance_sdk_python/utils/eventstreaming.py +++ b/src/formance_sdk_python/utils/eventstreaming.py @@ -7,6 +7,7 @@ Any, Callable, Generic, + List, TypeVar, Optional, Generator, @@ -53,6 +54,9 @@ def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): + self.close() + + def close(self): self._closed = True self.response.close() @@ -92,6 +96,9 @@ async def __aenter__(self): return self async def __aexit__(self, exc_type, exc_val, exc_tb): + await self.close() + + async def close(self): self._closed = True await self.response.aclose() @@ -114,6 +121,7 @@ class ServerEvent: b"\n\r", b"\n\n", ] +MAX_BOUNDARY_LEN = max(len(b) for b in MESSAGE_BOUNDARIES) UTF8_BOM = b"\xef\xbb\xbf" @@ -124,52 +132,56 @@ async def stream_events_async( sentinel: Optional[str] = None, data_required: bool = True, ) -> AsyncGenerator[T, None]: - buffer = bytearray() - position = 0 - event_id: Optional[str] = None - async for chunk in response.aiter_bytes(): - if len(buffer) == 0 and chunk.startswith(UTF8_BOM): - chunk = chunk[len(UTF8_BOM) :] - buffer += chunk - for i in range(position, len(buffer)): - char = buffer[i : i + 1] - seq: Optional[bytes] = None - if char in [b"\r", b"\n"]: - for boundary in MESSAGE_BOUNDARIES: - seq = _peek_sequence(i, buffer, boundary) - if seq is not None: - break - if seq is None: - continue - - block = buffer[position:i] - position = i + len(seq) - event, discard, event_id = _parse_event( - raw=block, - decoder=decoder, - sentinel=sentinel, - event_id=event_id, - data_required=data_required, - ) - if event is not None: - yield event - if discard: - await response.aclose() - return - - if position > 0: - buffer = buffer[position:] - position = 0 - - event, discard, _ = _parse_event( - raw=buffer, - decoder=decoder, - sentinel=sentinel, - event_id=event_id, - data_required=data_required, - ) - if event is not None: - yield event + try: + buffer = bytearray() + position = 0 + event_id: Optional[str] = None + async for chunk in response.aiter_bytes(): + if len(buffer) == 0 and chunk.startswith(UTF8_BOM): + chunk = chunk[len(UTF8_BOM) :] + old_len = len(buffer) + buffer += chunk + search_start = max(position, old_len - MAX_BOUNDARY_LEN + 1) + for i in range(search_start, len(buffer)): + char = buffer[i : i + 1] + seq: Optional[bytes] = None + if char in [b"\r", b"\n"]: + for boundary in MESSAGE_BOUNDARIES: + seq = _peek_sequence(i, buffer, boundary) + if seq is not None: + break + if seq is None: + continue + + block = buffer[position:i] + position = i + len(seq) + event, discard, event_id = _parse_event( + raw=block, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + if discard: + return + + if position > 0: + buffer = buffer[position:] + position = 0 + + event, discard, _ = _parse_event( + raw=buffer, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + finally: + await response.aclose() def stream_events( @@ -178,52 +190,56 @@ def stream_events( sentinel: Optional[str] = None, data_required: bool = True, ) -> Generator[T, None, None]: - buffer = bytearray() - position = 0 - event_id: Optional[str] = None - for chunk in response.iter_bytes(): - if len(buffer) == 0 and chunk.startswith(UTF8_BOM): - chunk = chunk[len(UTF8_BOM) :] - buffer += chunk - for i in range(position, len(buffer)): - char = buffer[i : i + 1] - seq: Optional[bytes] = None - if char in [b"\r", b"\n"]: - for boundary in MESSAGE_BOUNDARIES: - seq = _peek_sequence(i, buffer, boundary) - if seq is not None: - break - if seq is None: - continue - - block = buffer[position:i] - position = i + len(seq) - event, discard, event_id = _parse_event( - raw=block, - decoder=decoder, - sentinel=sentinel, - event_id=event_id, - data_required=data_required, - ) - if event is not None: - yield event - if discard: - response.close() - return - - if position > 0: - buffer = buffer[position:] - position = 0 - - event, discard, _ = _parse_event( - raw=buffer, - decoder=decoder, - sentinel=sentinel, - event_id=event_id, - data_required=data_required, - ) - if event is not None: - yield event + try: + buffer = bytearray() + position = 0 + event_id: Optional[str] = None + for chunk in response.iter_bytes(): + if len(buffer) == 0 and chunk.startswith(UTF8_BOM): + chunk = chunk[len(UTF8_BOM) :] + old_len = len(buffer) + buffer += chunk + search_start = max(position, old_len - MAX_BOUNDARY_LEN + 1) + for i in range(search_start, len(buffer)): + char = buffer[i : i + 1] + seq: Optional[bytes] = None + if char in [b"\r", b"\n"]: + for boundary in MESSAGE_BOUNDARIES: + seq = _peek_sequence(i, buffer, boundary) + if seq is not None: + break + if seq is None: + continue + + block = buffer[position:i] + position = i + len(seq) + event, discard, event_id = _parse_event( + raw=block, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + if discard: + return + + if position > 0: + buffer = buffer[position:] + position = 0 + + event, discard, _ = _parse_event( + raw=buffer, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + finally: + response.close() def _parse_event( @@ -238,7 +254,7 @@ def _parse_event( lines = re.split(r"\r?\n|\r", block) publish = False event = ServerEvent() - data = "" + data_parts: List[str] = [] for line in lines: if not line: continue @@ -259,7 +275,7 @@ def _parse_event( event.event = value publish = True elif field == "data": - data += value + "\n" + data_parts.append(value) publish = True elif field == "id": publish = True @@ -271,16 +287,17 @@ def _parse_event( publish = True event.id = event_id + has_data = bool(data_parts) + data = "\n".join(data_parts) - if sentinel and data == f"{sentinel}\n": + if sentinel and has_data and data == sentinel: return None, True, event_id # Skip data-less events when data is required - if not data and publish and data_required: + if not has_data and publish and data_required: return None, False, event_id - if data: - data = data[:-1] + if has_data: try: event.data = json.loads(data) except json.JSONDecodeError: @@ -291,7 +308,7 @@ def _parse_event( out_dict = { k: v for k, v in asdict(event).items() - if v is not None or (k == "data" and data) + if v is not None or (k == "data" and has_data) } out = decoder(json.dumps(out_dict)) diff --git a/src/formance_sdk_python/utils/forms.py b/src/formance_sdk_python/utils/forms.py index f961e76b..fdf0dc9b 100644 --- a/src/formance_sdk_python/utils/forms.py +++ b/src/formance_sdk_python/utils/forms.py @@ -1,5 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +import io from typing import ( Any, Dict, @@ -103,6 +104,10 @@ def _extract_file_properties(file_obj: Any) -> Tuple[str, Any, Any]: if file_metadata.content: content = getattr(file_obj, file_field_name, None) + if isinstance(content, io.TextIOBase): + content = content.read().encode( + getattr(content, "encoding", None) or "utf-8" + ) elif file_field_name == "content_type": content_type = getattr(file_obj, file_field_name, None) else: diff --git a/src/formance_sdk_python/utils/retries.py b/src/formance_sdk_python/utils/retries.py index af07d4e9..ca7b59ef 100644 --- a/src/formance_sdk_python/utils/retries.py +++ b/src/formance_sdk_python/utils/retries.py @@ -11,10 +11,13 @@ class BackoffStrategy: + """Exponential backoff strategy configuration.""" + initial_interval: int max_interval: int exponent: float max_elapsed_time: int + jitter_ms: Optional[int] def __init__( self, @@ -22,24 +25,63 @@ def __init__( max_interval: int, exponent: float, max_elapsed_time: int, + jitter_ms: Optional[int] = None, ): + """Initialize a backoff strategy. + + Args: + initial_interval: Initial retry interval in milliseconds. + max_interval: Maximum retry interval in milliseconds. + exponent: Base of the exponential backoff; the interval grows as + ``initial_interval * exponent ** retries``. + max_elapsed_time: Maximum total elapsed time in milliseconds. + jitter_ms: Additive jitter bound in milliseconds. When set, adds a random + value in ``[0, jitter_ms]`` to each computed backoff interval (default + ``+[0, 1s]``). + + Note: + When a response carries a ``Retry-After`` or ``retry-after-ms`` header, + that delay is used as-is and the sleep-shaping parameters + (``initial_interval``, ``max_interval``, ``exponent``, ``jitter_ms``) are + ignored for that attempt. + """ + if jitter_ms is not None and jitter_ms < 0: + raise ValueError("jitter_ms must be >= 0") self.initial_interval = initial_interval self.max_interval = max_interval self.exponent = exponent self.max_elapsed_time = max_elapsed_time + self.jitter_ms = jitter_ms class RetryConfig: + """Runtime retry configuration.""" + strategy: str backoff: BackoffStrategy retry_connection_errors: bool + status_codes_override: Optional[List[str]] def __init__( - self, strategy: str, backoff: BackoffStrategy, retry_connection_errors: bool + self, + strategy: str, + backoff: BackoffStrategy, + retry_connection_errors: bool, + status_codes_override: Optional[List[str]] = None, ): + """Initialize a retry configuration. + + Args: + strategy: Retry strategy: ``"none"`` or ``"backoff"``. + backoff: Backoff parameters. + retry_connection_errors: Whether to also retry transport-level connection errors. + status_codes_override: Retryable HTTP status codes that take precedence over the + per-operation defaults when non-empty. + """ self.strategy = strategy self.backoff = backoff self.retry_connection_errors = retry_connection_errors + self.status_codes_override = status_codes_override class Retries: @@ -48,7 +90,7 @@ class Retries: def __init__(self, config: RetryConfig, status_codes: List[str]): self.config = config - self.status_codes = status_codes + self.status_codes = config.status_codes_override or status_codes class TemporaryError(Exception): @@ -93,12 +135,28 @@ def _parse_retry_after_header(response: httpx.Response) -> Optional[int]: return None +def _parse_retry_after_ms_header(response: httpx.Response) -> Optional[int]: + retry_after_ms_header = response.headers.get("retry-after-ms") + if not retry_after_ms_header: + return None + + try: + milliseconds = float(retry_after_ms_header) + if milliseconds >= 0: + return round(milliseconds) + except (OverflowError, ValueError): + pass + + return None + + def _get_sleep_interval( exception: Exception, initial_interval: int, max_interval: int, exponent: float, retries: int, + jitter_ms: Optional[int] = None, ) -> float: """Get sleep interval for retry with exponential backoff. @@ -108,6 +166,7 @@ def _get_sleep_interval( max_interval: Maximum retry interval in milliseconds. exponent: Base for exponential backoff calculation. retries: Current retry attempt count. + jitter_ms: Additive jitter bound in ms; see ``BackoffStrategy.jitter_ms``. Returns: Sleep interval in seconds. @@ -119,7 +178,11 @@ def _get_sleep_interval( ): return exception.retry_after / 1000 - sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1) + sleep = (initial_interval / 1000) * exponent**retries + if jitter_ms is not None: + sleep += random.uniform(0, jitter_ms / 1000) + else: + sleep += random.uniform(0, 1) return min(sleep, max_interval / 1000) @@ -162,6 +225,7 @@ def do_request() -> httpx.Response: retries.config.backoff.max_interval, retries.config.backoff.exponent, retries.config.backoff.max_elapsed_time, + retries.config.backoff.jitter_ms, ) return func() @@ -206,6 +270,7 @@ async def do_request() -> httpx.Response: retries.config.backoff.max_interval, retries.config.backoff.exponent, retries.config.backoff.max_elapsed_time, + retries.config.backoff.jitter_ms, ) return await func() @@ -217,6 +282,7 @@ def retry_with_backoff( max_interval=60000, exponent=1.5, max_elapsed_time=3600000, + jitter_ms=None, ): start = round(time.time() * 1000) retries = 0 @@ -234,8 +300,17 @@ def retry_with_backoff( raise + if isinstance(exception, TemporaryError): + retry_after_ms = _parse_retry_after_ms_header(exception.response) + if retry_after_ms is not None: + exception.retry_after = retry_after_ms sleep = _get_sleep_interval( - exception, initial_interval, max_interval, exponent, retries + exception, + initial_interval, + max_interval, + exponent, + retries, + jitter_ms=jitter_ms, ) time.sleep(sleep) retries += 1 @@ -247,6 +322,7 @@ async def retry_with_backoff_async( max_interval=60000, exponent=1.5, max_elapsed_time=3600000, + jitter_ms=None, ): start = round(time.time() * 1000) retries = 0 @@ -264,8 +340,17 @@ async def retry_with_backoff_async( raise + if isinstance(exception, TemporaryError): + retry_after_ms = _parse_retry_after_ms_header(exception.response) + if retry_after_ms is not None: + exception.retry_after = retry_after_ms sleep = _get_sleep_interval( - exception, initial_interval, max_interval, exponent, retries + exception, + initial_interval, + max_interval, + exponent, + retries, + jitter_ms=jitter_ms, ) await asyncio.sleep(sleep) retries += 1 diff --git a/src/formance_sdk_python/utils/serializers.py b/src/formance_sdk_python/utils/serializers.py index d2149f8b..1031ed93 100644 --- a/src/formance_sdk_python/utils/serializers.py +++ b/src/formance_sdk_python/utils/serializers.py @@ -4,7 +4,7 @@ import functools import json import typing -from typing import Any, Dict, List, Tuple, Union, get_args +from typing import Any, Dict, Iterable, List, Mapping, Tuple, Union, get_args import typing_extensions from typing_extensions import get_origin @@ -113,10 +113,12 @@ def validate(c): def unmarshal_json(raw, typ: Any) -> Any: - return unmarshal(from_json(raw), typ) + return unmarshal(from_json(raw), typ, coerce_iterables=False) -def unmarshal(val, typ: Any) -> Any: +def unmarshal(val, typ: Any, coerce_iterables: bool = True) -> Any: + if coerce_iterables: + val = _coerce_iterables_for_type(val, typ) unmarshaller = create_model( "Unmarshaller", body=(typ, ...), @@ -193,9 +195,88 @@ def get_pydantic_model(data: Any, typ: Any) -> Any: if not _contains_pydantic_model(data): return unmarshal(data, typ) + return _coerce_iterables_for_type(data, typ) + + +def _coerce_iterables_for_type(data: Any, typ: Any) -> Any: + if data is None or isinstance(data, (BaseModel, Unset)): + return data + + typ = _resolve_type_alias(typ) + origin = get_origin(typ) + + if _is_annotated_type(origin): + args = get_args(typ) + return _coerce_iterables_for_type(data, args[0]) if args else data + + if is_union(origin): + for arg in (arg for arg in get_args(typ) if arg is not type(None)): + coerced = _coerce_iterables_for_type(data, arg) + if coerced is not data: + return coerced + return data + + if _is_list_type(typ): + item_type = get_args(typ)[0] if get_args(typ) else Any + if isinstance(data, (str, bytes, bytearray, Mapping)): + return data + if isinstance(data, Iterable): + return [_coerce_iterables_for_type(item, item_type) for item in data] + return data + + if _is_mapping_type(typ): + value_type = get_args(typ)[1] if len(get_args(typ)) > 1 else Any + if isinstance(data, Mapping): + return { + key: _coerce_iterables_for_type(value, value_type) + for key, value in data.items() + } + return data + + if _is_pydantic_model_type(typ) and isinstance(data, Mapping): + coerced = None + for field_name, field in typ.model_fields.items(): + field_type = field.annotation + for key in (field_name, field.alias): + if key is not None and key in data: + value = data[key] if coerced is None else coerced[key] + coerced_value = _coerce_iterables_for_type(value, field_type) + if coerced_value is not value: + if coerced is None: + coerced = dict(data) + coerced[key] = coerced_value + return coerced if coerced is not None else data + return data +def _resolve_type_alias(typ: Any) -> Any: + return getattr(typ, "__value__", typ) + + +def _is_annotated_type(origin: Any) -> bool: + return any( + origin is typing_obj + for typing_obj in _get_typing_objects_by_name_of("Annotated") + ) + + +def _is_list_type(typ: Any) -> bool: + typ = _resolve_type_alias(typ) + return typ is list or get_origin(typ) is list + + +def _is_mapping_type(typ: Any) -> bool: + typ = _resolve_type_alias(typ) + origin = get_origin(typ) + mapping_origin = get_origin(Mapping[Any, Any]) + return typ in (dict, Dict, Mapping) or origin in (dict, Mapping, mapping_origin) + + +def _is_pydantic_model_type(typ: Any) -> bool: + return isinstance(typ, type) and issubclass(typ, BaseModel) + + def _contains_pydantic_model(data: Any) -> bool: if isinstance(data, BaseModel): return True diff --git a/src/formance_sdk_python/v3.py b/src/formance_sdk_python/v3.py index f7d21f98..acf39f7c 100644 --- a/src/formance_sdk_python/v3.py +++ b/src/formance_sdk_python/v3.py @@ -86,6 +86,8 @@ def add_account_to_pool( operation_id="v3AddAccountToPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -176,6 +178,8 @@ async def add_account_to_pool_async( operation_id="v3AddAccountToPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -268,6 +272,8 @@ def add_bank_account_to_payment_service_user( operation_id="v3AddBankAccountToPaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -360,6 +366,8 @@ async def add_bank_account_to_payment_service_user_async( operation_id="v3AddBankAccountToPaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -452,6 +460,8 @@ def approve_payment_initiation( operation_id="v3ApprovePaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -547,6 +557,8 @@ async def approve_payment_initiation_async( operation_id="v3ApprovePaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -647,6 +659,8 @@ def create_account( operation_id="v3CreateAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -747,6 +761,8 @@ async def create_account_async( operation_id="v3CreateAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -851,6 +867,8 @@ def create_bank_account( operation_id="v3CreateBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -955,6 +973,8 @@ async def create_bank_account_async( operation_id="v3CreateBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1059,6 +1079,8 @@ def create_link_for_payment_service_user( operation_id="v3CreateLinkForPaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1163,6 +1185,8 @@ async def create_link_for_payment_service_user_async( operation_id="v3CreateLinkForPaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1263,6 +1287,8 @@ def create_payment( operation_id="v3CreatePayment", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1363,6 +1389,8 @@ async def create_payment_async( operation_id="v3CreatePayment", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1467,6 +1495,8 @@ def create_payment_service_user( operation_id="v3CreatePaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1571,6 +1601,8 @@ async def create_payment_service_user_async( operation_id="v3CreatePaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1669,6 +1701,8 @@ def create_pool( operation_id="v3CreatePool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1767,6 +1801,8 @@ async def create_pool_async( operation_id="v3CreatePool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -1862,6 +1898,8 @@ def delete_payment_initiation( operation_id="v3DeletePaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -1954,6 +1992,8 @@ async def delete_payment_initiation_async( operation_id="v3DeletePaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2046,6 +2086,8 @@ def delete_payment_service_user( operation_id="v3DeletePaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2141,6 +2183,8 @@ async def delete_payment_service_user_async( operation_id="v3DeletePaymentServiceUser", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2240,6 +2284,8 @@ def delete_payment_service_user_connection_from_connector_id( operation_id="v3DeletePaymentServiceUserConnectionFromConnectorID", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2340,6 +2386,8 @@ async def delete_payment_service_user_connection_from_connector_id_async( operation_id="v3DeletePaymentServiceUserConnectionFromConnectorID", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2436,6 +2484,8 @@ def delete_payment_service_user_connector( operation_id="v3DeletePaymentServiceUserConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2532,6 +2582,8 @@ async def delete_payment_service_user_connector_async( operation_id="v3DeletePaymentServiceUserConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2625,6 +2677,8 @@ def delete_pool( operation_id="v3DeletePool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2714,6 +2768,8 @@ async def delete_pool_async( operation_id="v3DeletePool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2809,6 +2865,8 @@ def forward_bank_account( operation_id="v3ForwardBankAccount", oauth2_scopes=None, security_source=None, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -2907,6 +2965,8 @@ async def forward_bank_account_async( operation_id="v3ForwardBankAccount", oauth2_scopes=None, security_source=None, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -3013,6 +3073,8 @@ def forward_payment_service_user_bank_account( operation_id="v3ForwardPaymentServiceUserBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -3120,6 +3182,8 @@ async def forward_payment_service_user_bank_account_async( operation_id="v3ForwardPaymentServiceUserBankAccount", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -3216,6 +3280,8 @@ def forward_payment_service_user_to_provider( operation_id="v3ForwardPaymentServiceUserToProvider", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -3308,6 +3374,8 @@ async def forward_payment_service_user_to_provider_async( operation_id="v3ForwardPaymentServiceUserToProvider", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -3397,6 +3465,8 @@ def get_account( operation_id="v3GetAccount", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3489,6 +3559,8 @@ async def get_account_async( operation_id="v3GetAccount", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3582,6 +3654,8 @@ def get_account_balances( operation_id="v3GetAccountBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3675,6 +3749,8 @@ async def get_account_balances_async( operation_id="v3GetAccountBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3764,6 +3840,8 @@ def get_bank_account( operation_id="v3GetBankAccount", oauth2_scopes=None, security_source=None, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3853,6 +3931,8 @@ async def get_bank_account_async( operation_id="v3GetBankAccount", oauth2_scopes=None, security_source=None, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -3877,6 +3957,206 @@ async def get_bank_account_async( raise errors.SDKError("Unexpected response received", http_res) + def get_connector_capabilities( + self, + *, + request: Union[ + operations.V3GetConnectorCapabilitiesRequest, + operations.V3GetConnectorCapabilitiesRequestTypedDict, + ], + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.V3GetConnectorCapabilitiesResponse: + r"""Get the plugin capabilities of an installed connector + + Returns the list of plugin capabilities advertised by the provider backing this installed connector (`FETCH_ACCOUNTS`, `CREATE_TRANSFER`, ...). The same values are also inlined on each row of `v3ListConnectors`; prefer that endpoint when listing multiple connectors. + + + If set, this operation will use `client_id` from the global security. + + :param request: The request object to send. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + if not isinstance(request, BaseModel): + request = utils.unmarshal( + request, operations.V3GetConnectorCapabilitiesRequest + ) + request = cast(operations.V3GetConnectorCapabilitiesRequest, request) + + req = self._build_request( + method="GET", + path="/api/payments/v3/connectors/{connectorID}/capabilities", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + allowed_fields=["client_id"], + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="v3GetConnectorCapabilities", + oauth2_scopes=["payments:read"], + security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return operations.V3GetConnectorCapabilitiesResponse( + v3_connector_capability_response=unmarshal_json_response( + Optional[payments.V3ConnectorCapabilityResponse], http_res + ), + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + ) + if utils.match_response(http_res, "default", "application/json"): + response_data = unmarshal_json_response( + payments.V3ErrorResponseData, http_res + ) + raise payments.V3ErrorResponse(response_data, http_res) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_connector_capabilities_async( + self, + *, + request: Union[ + operations.V3GetConnectorCapabilitiesRequest, + operations.V3GetConnectorCapabilitiesRequestTypedDict, + ], + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.V3GetConnectorCapabilitiesResponse: + r"""Get the plugin capabilities of an installed connector + + Returns the list of plugin capabilities advertised by the provider backing this installed connector (`FETCH_ACCOUNTS`, `CREATE_TRANSFER`, ...). The same values are also inlined on each row of `v3ListConnectors`; prefer that endpoint when listing multiple connectors. + + + If set, this operation will use `client_id` from the global security. + + :param request: The request object to send. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + if not isinstance(request, BaseModel): + request = utils.unmarshal( + request, operations.V3GetConnectorCapabilitiesRequest + ) + request = cast(operations.V3GetConnectorCapabilitiesRequest, request) + + req = self._build_request_async( + method="GET", + path="/api/payments/v3/connectors/{connectorID}/capabilities", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + allowed_fields=["client_id"], + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="v3GetConnectorCapabilities", + oauth2_scopes=["payments:read"], + security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return operations.V3GetConnectorCapabilitiesResponse( + v3_connector_capability_response=unmarshal_json_response( + Optional[payments.V3ConnectorCapabilityResponse], http_res + ), + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + ) + if utils.match_response(http_res, "default", "application/json"): + response_data = unmarshal_json_response( + payments.V3ErrorResponseData, http_res + ) + raise payments.V3ErrorResponse(response_data, http_res) + + raise errors.SDKError("Unexpected response received", http_res) + def get_connector_config( self, *, @@ -3946,6 +4226,8 @@ def get_connector_config( operation_id="v3GetConnectorConfig", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4039,6 +4321,8 @@ async def get_connector_config_async( operation_id="v3GetConnectorConfig", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4132,6 +4416,8 @@ def get_connector_schedule( operation_id="v3GetConnectorSchedule", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4225,6 +4511,8 @@ async def get_connector_schedule_async( operation_id="v3GetConnectorSchedule", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4328,6 +4616,8 @@ def get_conversion( operation_id="v3GetConversion", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4431,6 +4721,8 @@ async def get_conversion_async( operation_id="v3GetConversion", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4533,6 +4825,8 @@ def get_order( operation_id="v3GetOrder", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4635,6 +4929,8 @@ async def get_order_async( operation_id="v3GetOrder", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4727,6 +5023,8 @@ def get_payment( operation_id="v3GetPayment", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4819,6 +5117,8 @@ async def get_payment_async( operation_id="v3GetPayment", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -4912,6 +5212,8 @@ def get_payment_initiation( operation_id="v3GetPaymentInitiation", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5005,6 +5307,8 @@ async def get_payment_initiation_async( operation_id="v3GetPaymentInitiation", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5100,6 +5404,8 @@ def get_payment_service_user( operation_id="v3GetPaymentServiceUser", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5195,6 +5501,8 @@ async def get_payment_service_user_async( operation_id="v3GetPaymentServiceUser", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5293,6 +5601,8 @@ def get_payment_service_user_link_attempt_from_connector_id( operation_id="v3GetPaymentServiceUserLinkAttemptFromConnectorID", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5391,6 +5701,8 @@ async def get_payment_service_user_link_attempt_from_connector_id_async( operation_id="v3GetPaymentServiceUserLinkAttemptFromConnectorID", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5483,6 +5795,8 @@ def get_pool( operation_id="v3GetPool", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5575,6 +5889,8 @@ async def get_pool_async( operation_id="v3GetPool", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5668,6 +5984,8 @@ def get_pool_balances( operation_id="v3GetPoolBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5761,6 +6079,8 @@ async def get_pool_balances_async( operation_id="v3GetPoolBalances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5856,6 +6176,8 @@ def get_pool_balances_latest( operation_id="v3GetPoolBalancesLatest", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -5951,6 +6273,8 @@ async def get_pool_balances_latest_async( operation_id="v3GetPoolBalancesLatest", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6043,6 +6367,8 @@ def get_task( operation_id="v3GetTask", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6135,6 +6461,8 @@ async def get_task_async( operation_id="v3GetTask", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6235,6 +6563,8 @@ def initiate_payment( operation_id="v3InitiatePayment", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -6335,6 +6665,8 @@ async def initiate_payment_async( operation_id="v3InitiatePayment", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -6435,6 +6767,8 @@ def install_connector( operation_id="v3InstallConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -6535,6 +6869,8 @@ async def install_connector_async( operation_id="v3InstallConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -6634,6 +6970,8 @@ def list_accounts( operation_id="v3ListAccounts", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6733,6 +7071,8 @@ async def list_accounts_async( operation_id="v3ListAccounts", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6833,6 +7173,8 @@ def list_bank_accounts( operation_id="v3ListBankAccounts", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6933,6 +7275,8 @@ async def list_bank_accounts_async( operation_id="v3ListBankAccounts", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -6957,6 +7301,226 @@ async def list_bank_accounts_async( raise errors.SDKError("Unexpected response received", http_res) + def list_connector_capabilities( + self, + *, + request: Union[ + operations.V3ListConnectorCapabilitiesRequest, + operations.V3ListConnectorCapabilitiesRequestTypedDict, + ], + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.V3ListConnectorCapabilitiesResponse: + r"""List the plugin capabilities advertised by every supported provider + + Returns the static map of provider name to the list of plugin capabilities (`FETCH_ACCOUNTS`, `CREATE_TRANSFER`, ...) compiled into this binary. The catalog is immutable for the lifetime of the process and is therefore safe to cache: the response carries a strong ETag and a `Cache-Control: public, max-age=3600, must-revalidate` directive. Stateless consumers (e.g. console) should set `If-None-Match` on subsequent requests to receive a `304 Not Modified`. + + + If set, this operation will use `client_id` from the global security. + + :param request: The request object to send. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + if not isinstance(request, BaseModel): + request = utils.unmarshal( + request, operations.V3ListConnectorCapabilitiesRequest + ) + request = cast(operations.V3ListConnectorCapabilitiesRequest, request) + + req = self._build_request( + method="GET", + path="/api/payments/v3/connectors/capabilities", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + allowed_fields=["client_id"], + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="v3ListConnectorCapabilities", + oauth2_scopes=["payments:read"], + security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: not utils.match_status_codes( + ["200", "304"], c + ), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return operations.V3ListConnectorCapabilitiesResponse( + v3_connector_capabilities_response=unmarshal_json_response( + Optional[payments.V3ConnectorCapabilitiesResponse], http_res + ), + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + headers=utils.get_response_headers(http_res.headers), + ) + if utils.match_response(http_res, "304", "*"): + return operations.V3ListConnectorCapabilitiesResponse( + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + headers=utils.get_response_headers(http_res.headers), + ) + if utils.match_response(http_res, "default", "application/json"): + response_data = unmarshal_json_response( + payments.V3ErrorResponseData, http_res + ) + raise payments.V3ErrorResponse(response_data, http_res) + + raise errors.SDKError("Unexpected response received", http_res) + + async def list_connector_capabilities_async( + self, + *, + request: Union[ + operations.V3ListConnectorCapabilitiesRequest, + operations.V3ListConnectorCapabilitiesRequestTypedDict, + ], + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.V3ListConnectorCapabilitiesResponse: + r"""List the plugin capabilities advertised by every supported provider + + Returns the static map of provider name to the list of plugin capabilities (`FETCH_ACCOUNTS`, `CREATE_TRANSFER`, ...) compiled into this binary. The catalog is immutable for the lifetime of the process and is therefore safe to cache: the response carries a strong ETag and a `Cache-Control: public, max-age=3600, must-revalidate` directive. Stateless consumers (e.g. console) should set `If-None-Match` on subsequent requests to receive a `304 Not Modified`. + + + If set, this operation will use `client_id` from the global security. + + :param request: The request object to send. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + if not isinstance(request, BaseModel): + request = utils.unmarshal( + request, operations.V3ListConnectorCapabilitiesRequest + ) + request = cast(operations.V3ListConnectorCapabilitiesRequest, request) + + req = self._build_request_async( + method="GET", + path="/api/payments/v3/connectors/capabilities", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + allowed_fields=["client_id"], + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="v3ListConnectorCapabilities", + oauth2_scopes=["payments:read"], + security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: not utils.match_status_codes( + ["200", "304"], c + ), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return operations.V3ListConnectorCapabilitiesResponse( + v3_connector_capabilities_response=unmarshal_json_response( + Optional[payments.V3ConnectorCapabilitiesResponse], http_res + ), + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + headers=utils.get_response_headers(http_res.headers), + ) + if utils.match_response(http_res, "304", "*"): + return operations.V3ListConnectorCapabilitiesResponse( + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + headers=utils.get_response_headers(http_res.headers), + ) + if utils.match_response(http_res, "default", "application/json"): + response_data = unmarshal_json_response( + payments.V3ErrorResponseData, http_res + ) + raise payments.V3ErrorResponse(response_data, http_res) + + raise errors.SDKError("Unexpected response received", http_res) + def list_connector_configs( self, *, @@ -7016,6 +7580,8 @@ def list_connector_configs( operation_id="v3ListConnectorConfigs", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7099,6 +7665,8 @@ async def list_connector_configs_async( operation_id="v3ListConnectorConfigs", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7194,6 +7762,8 @@ def list_connector_schedule_instances( operation_id="v3ListConnectorScheduleInstances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7290,6 +7860,8 @@ async def list_connector_schedule_instances_async( operation_id="v3ListConnectorScheduleInstances", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7393,6 +7965,8 @@ def list_connector_schedules( operation_id="v3ListConnectorSchedules", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7495,6 +8069,8 @@ async def list_connector_schedules_async( operation_id="v3ListConnectorSchedules", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7595,6 +8171,8 @@ def list_connectors( operation_id="v3ListConnectors", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7695,6 +8273,8 @@ async def list_connectors_async( operation_id="v3ListConnectors", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7811,6 +8391,8 @@ def list_conversions( operation_id="v3ListConversions", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -7927,6 +8509,8 @@ async def list_conversions_async( operation_id="v3ListConversions", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8042,6 +8626,8 @@ def list_orders( operation_id="v3ListOrders", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8157,6 +8743,8 @@ async def list_orders_async( operation_id="v3ListOrders", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8259,6 +8847,8 @@ def list_payment_initiation_adjustments( operation_id="v3ListPaymentInitiationAdjustments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8362,6 +8952,8 @@ async def list_payment_initiation_adjustments_async( operation_id="v3ListPaymentInitiationAdjustments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8467,6 +9059,8 @@ def list_payment_initiation_related_payments( operation_id="v3ListPaymentInitiationRelatedPayments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8572,6 +9166,8 @@ async def list_payment_initiation_related_payments_async( operation_id="v3ListPaymentInitiationRelatedPayments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8675,6 +9271,8 @@ def list_payment_initiations( operation_id="v3ListPaymentInitiations", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8777,6 +9375,8 @@ async def list_payment_initiations_async( operation_id="v3ListPaymentInitiations", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8879,6 +9479,8 @@ def list_payment_service_user_connections( operation_id="v3ListPaymentServiceUserConnections", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -8982,6 +9584,8 @@ async def list_payment_service_user_connections_async( operation_id="v3ListPaymentServiceUserConnections", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9089,6 +9693,8 @@ def list_payment_service_user_connections_from_connector_id( operation_id="v3ListPaymentServiceUserConnectionsFromConnectorID", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9196,6 +9802,8 @@ async def list_payment_service_user_connections_from_connector_id_async( operation_id="v3ListPaymentServiceUserConnectionsFromConnectorID", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9304,6 +9912,8 @@ def list_payment_service_user_link_attempts_from_connector_id( operation_id="v3ListPaymentServiceUserLinkAttemptsFromConnectorID", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9412,6 +10022,8 @@ async def list_payment_service_user_link_attempts_from_connector_id_async( operation_id="v3ListPaymentServiceUserLinkAttemptsFromConnectorID", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9515,6 +10127,8 @@ def list_payment_service_users( operation_id="v3ListPaymentServiceUsers", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9617,6 +10231,8 @@ async def list_payment_service_users_async( operation_id="v3ListPaymentServiceUsers", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9716,6 +10332,8 @@ def list_payments( operation_id="v3ListPayments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9815,6 +10433,8 @@ async def list_payments_async( operation_id="v3ListPayments", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -9914,6 +10534,8 @@ def list_pools( operation_id="v3ListPools", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -10013,6 +10635,8 @@ async def list_pools_async( operation_id="v3ListPools", oauth2_scopes=["payments:read"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -10108,6 +10732,8 @@ def reject_payment_initiation( operation_id="v3RejectPaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -10200,6 +10826,8 @@ async def reject_payment_initiation_async( operation_id="v3RejectPaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -10292,6 +10920,8 @@ def remove_account_from_pool( operation_id="v3RemoveAccountFromPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -10384,6 +11014,8 @@ async def remove_account_from_pool_async( operation_id="v3RemoveAccountFromPool", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -10474,6 +11106,8 @@ def reset_connector( operation_id="v3ResetConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -10567,6 +11201,8 @@ async def reset_connector_async( operation_id="v3ResetConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -10662,6 +11298,8 @@ def retry_payment_initiation( operation_id="v3RetryPaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -10757,6 +11395,8 @@ async def retry_payment_initiation_async( operation_id="v3RetryPaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -10861,6 +11501,8 @@ def reverse_payment_initiation( operation_id="v3ReversePaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -10965,6 +11607,8 @@ async def reverse_payment_initiation_async( operation_id="v3ReversePaymentInitiation", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -11058,6 +11702,8 @@ def uninstall_connector( operation_id="v3UninstallConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -11151,6 +11797,8 @@ async def uninstall_connector_async( operation_id="v3UninstallConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["202"], c), @@ -11251,6 +11899,8 @@ def update_bank_account_metadata( operation_id="v3UpdateBankAccountMetadata", oauth2_scopes=None, security_source=None, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -11348,6 +11998,8 @@ async def update_bank_account_metadata_async( operation_id="v3UpdateBankAccountMetadata", oauth2_scopes=None, security_source=None, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -11451,6 +12103,8 @@ def update_link_for_payment_service_user_on_connector( operation_id="v3UpdateLinkForPaymentServiceUserOnConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -11557,6 +12211,8 @@ async def update_link_for_payment_service_user_on_connector_async( operation_id="v3UpdateLinkForPaymentServiceUserOnConnector", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -11661,6 +12317,8 @@ def update_payment_metadata( operation_id="v3UpdatePaymentMetadata", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -11762,6 +12420,8 @@ async def update_payment_metadata_async( operation_id="v3UpdatePaymentMetadata", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -11859,6 +12519,8 @@ def update_pool_query( operation_id="v3UpdatePoolQuery", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -11956,6 +12618,8 @@ async def update_pool_query_async( operation_id="v3UpdatePoolQuery", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -12057,6 +12721,8 @@ def v3_update_connector_config( operation_id="v3UpdateConnectorConfig", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -12158,6 +12824,8 @@ async def v3_update_connector_config_async( operation_id="v3UpdateConnectorConfig", oauth2_scopes=["payments:write"], security_source=self.sdk_configuration.security, + tags=["payments.v3"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), diff --git a/src/formance_sdk_python/wallets_v1.py b/src/formance_sdk_python/wallets_v1.py index 465c5cb1..d6cfbc8f 100644 --- a/src/formance_sdk_python/wallets_v1.py +++ b/src/formance_sdk_python/wallets_v1.py @@ -85,6 +85,8 @@ def confirm_hold( operation_id="confirmHold", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -179,6 +181,8 @@ async def confirm_hold_async( operation_id="confirmHold", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -273,6 +277,8 @@ def create_balance( operation_id="createBalance", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -370,6 +376,8 @@ async def create_balance_async( operation_id="createBalance", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -467,6 +475,8 @@ def create_wallet( operation_id="createWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -564,6 +574,8 @@ async def create_wallet_async( operation_id="createWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["201"], c), @@ -661,6 +673,8 @@ def credit_wallet( operation_id="creditWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -755,6 +769,8 @@ async def credit_wallet_async( operation_id="creditWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -849,6 +865,8 @@ def debit_wallet( operation_id="debitWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -954,6 +972,8 @@ async def debit_wallet_async( operation_id="debitWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -1052,6 +1072,8 @@ def get_balance( operation_id="getBalance", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1142,6 +1164,8 @@ async def get_balance_async( operation_id="getBalance", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1230,6 +1254,8 @@ def get_hold( operation_id="getHold", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1318,6 +1344,8 @@ async def get_hold_async( operation_id="getHold", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1406,6 +1434,8 @@ def get_holds( operation_id="getHolds", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1494,6 +1524,8 @@ async def get_holds_async( operation_id="getHolds", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1575,6 +1607,8 @@ def get_server_info_wallets( operation_id="getServerInfo_wallets", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1656,6 +1690,8 @@ async def get_server_info_wallets_async( operation_id="getServerInfo_wallets", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1745,6 +1781,8 @@ def get_transactions( operation_id="getTransactions", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1834,6 +1872,8 @@ async def get_transactions_async( operation_id="getTransactions", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1924,6 +1964,8 @@ def get_wallet( operation_id="getWallet", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2022,6 +2064,8 @@ async def get_wallet_async( operation_id="getWallet", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2121,6 +2165,8 @@ def get_wallet_summary( operation_id="getWalletSummary", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2220,6 +2266,8 @@ async def get_wallet_summary_async( operation_id="getWalletSummary", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes( @@ -2318,6 +2366,8 @@ def list_balances( operation_id="listBalances", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2407,6 +2457,8 @@ async def list_balances_async( operation_id="listBalances", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2496,6 +2548,8 @@ def list_wallets( operation_id="listWallets", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2586,6 +2640,8 @@ async def list_wallets_async( operation_id="listWallets", oauth2_scopes=["wallets:read"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -2683,6 +2739,8 @@ def update_wallet( operation_id="updateWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2777,6 +2835,8 @@ async def update_wallet_async( operation_id="updateWallet", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2862,6 +2922,8 @@ def void_hold( operation_id="voidHold", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), @@ -2947,6 +3009,8 @@ async def void_hold_async( operation_id="voidHold", oauth2_scopes=["wallets:write"], security_source=self.sdk_configuration.security, + tags=["wallets.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["204"], c), diff --git a/src/formance_sdk_python/webhooks_v1.py b/src/formance_sdk_python/webhooks_v1.py index 770db610..8652ffe0 100644 --- a/src/formance_sdk_python/webhooks_v1.py +++ b/src/formance_sdk_python/webhooks_v1.py @@ -81,6 +81,8 @@ def activate_config( operation_id="activateConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -175,6 +177,8 @@ async def activate_config_async( operation_id="activateConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -281,6 +285,8 @@ def change_config_secret( operation_id="changeConfigSecret", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -387,6 +393,8 @@ async def change_config_secret_async( operation_id="changeConfigSecret", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -482,6 +490,8 @@ def deactivate_config( operation_id="deactivateConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -577,6 +587,8 @@ async def deactivate_config_async( operation_id="deactivateConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -671,6 +683,8 @@ def delete_config( operation_id="deleteConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -762,6 +776,8 @@ async def delete_config_async( operation_id="deleteConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -853,6 +869,8 @@ def get_many_configs( operation_id="getManyConfigs", oauth2_scopes=["webhooks:read"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -947,6 +965,8 @@ async def get_many_configs_async( operation_id="getManyConfigs", oauth2_scopes=["webhooks:read"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1053,6 +1073,8 @@ def insert_config( operation_id="insertConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1159,6 +1181,8 @@ async def insert_config_async( operation_id="insertConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1253,6 +1277,8 @@ def test_config( operation_id="testConfig", oauth2_scopes=["webhooks:read"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1347,6 +1373,8 @@ async def test_config_async( operation_id="testConfig", oauth2_scopes=["webhooks:read"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1444,6 +1472,8 @@ def update_config( operation_id="updateConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), @@ -1538,6 +1568,8 @@ async def update_config_async( operation_id="updateConfig", oauth2_scopes=["webhooks:write"], security_source=self.sdk_configuration.security, + tags=["webhooks.v1"], + extensions=None, ), request=req, is_error_status_code=lambda c: not utils.match_status_codes(["200"], c), From e35e66141a9d9cbf112a19e9b28f5c40e48a517e Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:02:28 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow