chore(openapi): update OpenAPI client to 2026.05.05.1506-da651a2#584
Conversation
Co-Authored-By: lino <lino@rapidata.ai>
…assifyWorkflow Co-Authored-By: lino <lino@rapidata.ai>
Code Review — PR #584: OpenAPI client update to 2026.05.05.1506-da651a2OverviewThis PR is a clean reopen of #581, cherry-picking the generator commit ( ✅ What looks goodThe workflow fix is correct. Schema nullability is now explicit. New New
|
| Old name | New name |
|---|---|
PagedResultOfQueryJobsResult |
QueryAudienceJobsEndpointPagedResultOfOutput |
QueryJobsResult |
QueryAudienceJobsEndpointOutput |
AudienceJobState |
AudienceJobStatus (in audience.openapi.json) |
audience_api.py return type for audience_audience_id_jobs_get changes accordingly. Any downstream code that imported these types by name from rapidata.api_client.models will get an ImportError. This is expected for an auto-generated layer, but worth calling out in release notes if the SDK has external consumers who reach into api_client.
2. AudienceJobState is partially retained — possible confusion
In rapidata.filtered.openapi.json and rapidata.openapi.json, AudienceJobState is re-added in the diff alongside the new AudienceJobStatus. This looks intentional (both schemas exist in the aggregated spec because different endpoints still reference the old enum in those contexts), but it means AudienceJobState will still be generated as a Python class. Worth verifying there's no accidental duplication or two classes with different values.
3. Category Python file not deleted?
The diff removes the Category import from both i_rapid_blueprint_attach_category_rapid_blueprint.py and _classify_workflow.py, but there's no diff --git entry deleting src/rapidata/api_client/models/category.py. If that file still exists on disk (orphaned by the generator), it's harmless but untidy. Worth a quick git status/ls sanity check post-merge.
4. CLAUDE.md: mustache templates
Per project convention, changes to auto-generated files must be reflected in the mustache templates under openapi/templates/. This PR doesn't touch those templates. If the nullable-field serialization pattern (e.g. the to_dict guard blocks added in boosting_profile_model.py, bounding_box_result_model_box.py, etc.) comes from a template, the templates should already cover it. If you confirm the template already generates those blocks, this is a non-issue.
Minor observations
- The updated
api_client_README.mdfills in previously-blank endpoint descriptions (e.g.campaign_boost_preheat_post,orders_get). Good. - The new
AudienceJobStatusenum hasMANUALAPPROVAL = 'ManualApproval'— no word separator. This is consistent with the existing generator output style (SUBMITTED,RUNNING, etc.).
Summary
The fix is correct, minimal, and type-safe. The rest is mechanical generator output. Main thing to double-check before merge:
- Confirm
category.pyis genuinely gone (or intentionally kept for another use). - Verify the
AudienceJobState/AudienceJobStatusdual presence is intentional in the aggregated schemas. - Note the API-client-level type renames in the changelog/release notes if the
api_clientlayer is considered part of the public API.
Otherwise this looks good to merge. 🟢
Summary
Reopens #581 on a fresh branch with the type-check failure fixed.
The OpenAPI generator renamed the inline category model on
IRapidBlueprintAttachCategoryRapidBlueprint.categoriesfromCategorytoAttachCategoryRapidBlueprintCategory, butClassifyWorkflow._to_modelwas still constructingCategory(...)instances — pyright caught the mismatch.Changes
a18e35a) untouched: 95 files, +2416 / -758, the schema bump to2026.05.05.1506-da651a2.fix(workflow): insrc/rapidata/rapidata_client/workflow/_classify_workflow.py, swapCategory→AttachCategoryRapidBlueprintCategory(same shape:label: str,value: str).Test plan
pyright(v1.1.396, CI version) passes fromsrc/rapidata/rapidata_client—0 errors, 0 warnings, 0 informationstype-checkto go green on this PR🔗 Session: session-b375f1aa