Skip to content

chore: 🐝 Update SDK - Generate 8.3.0#61

Open
github-actions[bot] wants to merge 2 commits into
mainfrom
speakeasy-sdk-regen-1784594856
Open

chore: 🐝 Update SDK - Generate 8.3.0#61
github-actions[bot] wants to merge 2 commits into
mainfrom
speakeasy-sdk-regen-1784594856

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

SDK update

Versioning

Version Bump Type: [minor] - 🤖 (automated)

Tip

If updates to your OpenAPI document introduce breaking changes, be sure to update the info.version field to trigger the correct version bump.
Speakeasy supports manual control of SDK versioning through multiple methods.

Python SDK Changes:

  • sdk.payments.v3.get_account(): response.data.raw Changed (Breaking ⚠️)
  • sdk.payments.v3.get_connector_config(): response.data.union(V3KrakenproConfig) Added (Breaking ⚠️)
  • sdk.payments.v1.create_account(): response.data.raw Changed (Breaking ⚠️)
  • sdk.payments.v1.create_payment(): response.data Changed (Breaking ⚠️)
  • sdk.payments.v1.get_account_payments(): response.data.raw Changed (Breaking ⚠️)
  • sdk.payments.v1.get_payment(): response.data Changed (Breaking ⚠️)
  • sdk.payments.v1.list_accounts_payments(): response.cursor.data[].raw Changed (Breaking ⚠️)
  • sdk.payments.v1.list_payments(): response.cursor.data[] Changed (Breaking ⚠️)
  • sdk.payments.v3.create_account(): response.data.raw Changed (Breaking ⚠️)
  • sdk.payments.v3.create_payment(): response.data.adjustments[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.list_payments(): response.cursor.data[].adjustments[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.get_order(): response.data.adjustments[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.list_payment_initiation_related_payments(): response.cursor.data[].adjustments[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.get_payment(): response.data.adjustments[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.list_orders(): response.cursor.data[].adjustments[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.list_accounts(): response.cursor.data[].raw Changed (Breaking ⚠️)
  • sdk.payments.v3.list_connectors(): response.cursor.data[].capabilities Added
  • sdk.payments.v3.install_connector():
    • request.v3connector_config.union(V3KrakenproConfig) Added
  • sdk.payments.v3.get_connector_capabilities(): Added
  • sdk.payments.v3.list_connector_capabilities(): Added
  • sdk.payments.v3.v3update_connector_config():
    • request.v3connector_config.union(V3KrakenproConfig) Added

View full SDK changelog

OpenAPI Change Summary
├─┬Paths
│ ├──[+] path (7456:5)
│ └──[+] path (7252:5)
└─┬Components
  ├──[+] schemas (22554:37)
  ├──[+] schemas (19386:32)
  ├──[+] schemas (19408:51)
  ├──[+] schemas (19428:49)
  ├─┬payments_Account
  │ └─┬raw
  │   └──[+] additionalProperties (18025:37)❌ 
  ├─┬payments_PaymentAdjustment
  │ └─┬raw
  │   └──[+] additionalProperties (17859:37)❌ 
  ├─┬payments_V3Connector
  │ ├──[+] properties (19664:11)
  │ ├─┬config
  │ │ ├──[+] items (19666:22)❌ 
  │ │ ├──[🔀] type (19665:21)❌ 
  │ │ └──[+] description (19669:28)
  │ ├─┬createdAt
  │ │ ├──[🔀] type (19662:21)❌ 
  │ │ └──[-] format (19467:23)❌ 
  │ ├─┬scheduledForDeletion
  │ │ └──[🔀] type (19646:21)❌ 
  │ ├─┬updatedAt
  │ │ ├──[🔀] type (19659:21)❌ 
  │ │ ├──[-] format (19480:23)❌ 
  │ │ └──[-] nullable (19481:25)❌ 
  │ └─┬id
  │   └──[+] format (19653:23)❌ 
  ├─┬payments_V3PaymentAdjustment
  │ └─┬raw
  │   └──[+] additionalProperties (20072:37)❌ 
  ├─┬payments_Payment
  │ └─┬raw
  │   └──[+] additionalProperties (17805:37)❌ 
  ├─┬payments_V3Account
  │ └─┬raw
  │   └──[+] additionalProperties (19019:37)❌ 
  ├─┬payments_V3ConnectorConfig
  │ ├──[+] oneOf (22841:36)
  │ ├──Discriminator
  │ └─┬ONEOF
  │   └──[🔀] $ref (22555:17)❌ 
  └─┬payments_V3OrderAdjustment
    └─┬raw
      └──[+] additionalProperties (20382:37)❌ 
Document Element Total Changes Breaking Changes
components 24 16
paths 2 0

View full report

Linting Report 0 errors, 0 warnings, 27 hints

View full report

PYTHON CHANGELOG

additionalProperties: 1.0.2 - 2026-07-08

🐛 Bug Fixes

  • generate self-recursive additionalProperties maps as maps of their value type instead of empty models (commit by @AshGodfrey)

core: 6.0.34 - 2026-07-02

🐝 New Features

  • omit gen.lock checksums under versioningStrategy manual and persistentEdits never to prevent merge conflicts (commit by @ThomasRooney)

core: 6.0.33 - 2026-06-26

🐛 Bug Fixes

core: 6.0.32 - 2026-06-26

🐛 Bug Fixes

  • cap pydantic dependency to <2.13 as a stopgap for nullable discriminated-union request fields being dropped during serialization (commit by @AshGodfrey)

core: 6.0.31 - 2026-06-19

🐝 New Features

  • splice Pydantic validators from .speakeasy/addons/model_validator/ into generated model classes (commit by @2ynn)

core: 6.0.30 - 2026-06-12

🐛 Bug Fixes

  • base64 file inputs no longer drain seekable streams during repeated validation, preventing empty payloads when pydantic retries union members (commit by @ThomasRooney)

core: 6.0.28 - 2026-06-10

🐛 Bug Fixes

core: 6.0.27 - 2026-06-08

🐛 Bug Fixes

  • lazy-loaded sub-SDKs now use relative imports when imports.relative is enabled (commit by @2ynn)

core: 6.0.26 - 2026-06-05

🐝 New Features

  • add typed event-stream parsing to raw response helpers (commit by @2ynn)

core: 6.0.25 - 2026-06-05

🐝 New Features

  • add support for relative import paths (commit by @2ynn)

errors: 3.4.4 - 2026-06-22

🐛 Bug Fixes

  • wrap mid-stream SSE decode errors as ResponseValidationError instead of raw pydantic.ValidationError (commit by @2ynn)

errors: 3.4.3 - 2026-06-22

🐛 Bug Fixes

  • raise error responses eagerly in raw/streaming response helpers instead of deferring to .parse() (commit by @2ynn)

errors: 3.4.2 - 2026-06-18

🐝 New Features

  • add support for lenient response validation mode (commit by @2ynn)

errors: 3.4.1 - 2026-06-17

🐝 New Features

  • allow disabling response validation errors on success responses (commit by @2ynn)

errors: 3.4.0 - 2026-06-15

🐝 New Features

  • add errorSchemaValidation config flag to opt out of error-body schema validation (commit by @2ynn)

retries: 3.0.7 - 2026-06-17

🐝 New Features

  • support runtime jitter and status codes override in retry configuration (commit by @2ynn)

retries: 3.0.6 - 2026-05-27

🐝 New Features

sdkHooks: 1.3.0 - 2026-06-22

🐝 New Features

  • expose operation tags and x- extensions on HookContext (commit by @AshGodfrey)

sdkHooks: 1.2.2 - 2026-06-16

🐝 New Features

  • add ParseErrorHook and response_mode on HookContext when rawResponseHelpers is enabled (commit by @2ynn)

unions: 3.1.7 - 2026-06-25

🐛 Bug Fixes

  • resolve lenient response unions by declaration order and never raise on uncoercible values, returning them as-is (commit by @2ynn)

unions: 3.1.6 - 2026-06-11

🐛 Bug Fixes

  • fall back to the Unknown variant when a known open-union discriminator payload fails validation, instead of raising (commit by @ThomasRooney)

uploadStreams: 1.0.3 - 2026-06-09

🐛 Bug Fixes

  • accept io.BytesIO, io.StringIO, and other file-like objects for multipart file uploads (commit by @AshGodfrey)

Based on Speakeasy CLI 1.791.0

Last updated by Speakeasy workflow

@github-actions github-actions Bot added the minor Minor version bump label Jul 21, 2026
@NumaryBot

NumaryBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

✅ Approve — automated review

All previously identified correctness issues (V3Connector.config type mismatch, Bitstamp union shadowing, io.IOBase serializer gap, HookContext backward-incompatible constructor, and HTTP 304 handling in the capabilities endpoint) were raised and fully discussed in prior automated review threads, all of which are marked resolved. The current independent review found no new, non-duplicative issues beyond those already covered. There is nothing remaining that warrants blocking or commenting on this PR.

No findings.

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 1 new inline finding.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 2 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/v3.py
Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
@github-actions
github-actions Bot force-pushed the speakeasy-sdk-regen-1784594856 branch from 44a5f2c to b0644e8 Compare July 22, 2026 00:47

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 2 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
Comment thread src/formance_sdk_python/v3.py

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
Comment thread src/formance_sdk_python/v3.py
Comment thread src/formance_sdk_python/models/operations/v2importlogs.py
@github-actions
github-actions Bot force-pushed the speakeasy-sdk-regen-1784594856 branch from c40c1f3 to ad880dd Compare July 23, 2026 00:50

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
Comment thread src/formance_sdk_python/v3.py
Comment thread src/formance_sdk_python/models/operations/v2importlogs.py

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
Comment thread src/formance_sdk_python/v3.py
Comment thread src/formance_sdk_python/models/operations/v2importlogs.py
@github-actions
github-actions Bot force-pushed the speakeasy-sdk-regen-1784594856 branch from bd5949c to 3f12d30 Compare July 24, 2026 00:47

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connector.py
Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
Comment thread src/formance_sdk_python/v3.py

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 1 new inline finding.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
@github-actions
github-actions Bot force-pushed the speakeasy-sdk-regen-1784594856 branch from 958b577 to 93d54e1 Compare July 25, 2026 00:50

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connector.py
Comment thread src/formance_sdk_python/_hooks/types.py
Comment thread src/formance_sdk_python/models/operations/v2importlogs.py

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

Comment thread src/formance_sdk_python/models/payments/v3connector.py
Comment thread src/formance_sdk_python/models/payments/v3connectorconfig.py
Comment thread src/formance_sdk_python/models/operations/v2importlogs.py
* `sdk.payments.v3.get_account()`:  `response.data.raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.get_connector_config()`:  `response.data.union(V3KrakenproConfig)` **Added** (Breaking ⚠️)
* `sdk.payments.v1.create_account()`:  `response.data.raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v1.create_payment()`:  `response.data` **Changed** (Breaking ⚠️)
* `sdk.payments.v1.get_account_payments()`:  `response.data.raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v1.get_payment()`:  `response.data` **Changed** (Breaking ⚠️)
* `sdk.payments.v1.list_accounts_payments()`:  `response.cursor.data[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v1.list_payments()`:  `response.cursor.data[]` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.create_account()`:  `response.data.raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.create_payment()`:  `response.data.adjustments[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.list_payments()`:  `response.cursor.data[].adjustments[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.get_order()`:  `response.data.adjustments[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.list_payment_initiation_related_payments()`:  `response.cursor.data[].adjustments[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.get_payment()`:  `response.data.adjustments[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.list_orders()`:  `response.cursor.data[].adjustments[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.list_accounts()`:  `response.cursor.data[].raw` **Changed** (Breaking ⚠️)
* `sdk.payments.v3.list_connectors()`:  `response.cursor.data[].capabilities` **Added**
* `sdk.payments.v3.install_connector()`: 
  *  `request.v3connector_config.union(V3KrakenproConfig)` **Added**
* `sdk.payments.v3.get_connector_capabilities()`: **Added**
* `sdk.payments.v3.list_connector_capabilities()`: **Added**
* `sdk.payments.v3.v3update_connector_config()`: 
  *  `request.v3connector_config.union(V3KrakenproConfig)` **Added**
@github-actions
github-actions Bot force-pushed the speakeasy-sdk-regen-1784594856 branch from 5f0d0b1 to d713738 Compare July 26, 2026 00:54

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot posted 3 new inline findings.

Summary: #61 (comment)

provider: str
reference: str
scheduled_for_deletion: bool
capabilities: NotRequired[List[V3Capability]]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 [blocker] Connector config field type mismatch causes ResponseValidationError on list_connectors()
reported by codex, NumaryBot

The config field on V3Connector is still declared as the empty Config BaseModel, but the updated 8.3 API returns config as an array of capability strings. Every call to list_connectors() against the new API will fail with a Pydantic ResponseValidationError before any data can be read, including the newly added capabilities field.

Suggestion: Update the config field declaration to match the new array type returned by the API (e.g. config: List[str]), or use a Union that tolerates both the old and new shapes during a transition period.

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)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 [major] Accepted io.IOBase raw body types not handled by serializer
reported by codex, NumaryBot

The request model accepts io.IOBase subclasses (e.g. io.FileIO) as a valid raw body type, but serialize_request_body() only handles bytes, bytearray, BytesIO, and BufferedReader. Passing an io.FileIO or other IOBase subclass will pass model validation and then raise an error during serialization inside import_logs(), making the documented interface misleading and causing runtime failures.

Suggestion: Either restrict the accepted types in the model annotation to match what the serializer supports (bytes, bytearray, BytesIO, BufferedReader), or update serialize_request_body() to handle the full io.IOBase hierarchy (e.g. by calling .read() on any IOBase instance that is not already a BytesIO/BufferedReader).

raw_response=http_res,
headers=utils.get_response_headers(http_res.headers),
)
if utils.match_response(http_res, "304", "*"):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 [major] HTTP 304 response from capabilities endpoint raises 'Unexpected response' error
reported by codex, NumaryBot

When a client sends an If-None-Match header and the server returns the documented 304 Not Modified, the response handler never matches the branch because utils.match_response does not treat "*" as a wildcard for content-type matching and 304 responses typically carry no Content-Type header. The code falls through to the 'Unexpected response received' error path. Both the sync and async variants of the method are affected.

Suggestion: Add an explicit status-code check for 304 before the media-type matching step, returning the documented empty/not-modified response object directly. For example: if http_res.status_code == 304: return models.GetCapabilitiesResponse(...)

@NumaryBot NumaryBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumaryBot review complete: no remaining inline findings.

Resolved 6 stale NumaryBot review threads (6 fixed, 0 outdated).

Summary: #61 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor Minor version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants