Parent: #317
Stack position: 3 of 7. Establishes the model facade used by the remaining model moves.
Goal
Introduce the incremental models.rs facade and extract the shared and smaller model domains without changing the public Rust or wire API.
Scope
- Keep
models.rs as the facade, with private child modules and explicit pub use re-exports.
- Keep the
discriminated_union! macro in a location usable by child modules.
- Extract genuinely shared leaves such as
ApiResponse, assigned-role types, IP access-list types, resource tags, and License.
- Extract organizations, members, invitations, RBAC, BYOC, quotas, organization private endpoints, API keys, activity, SCIM, and UDF models into domain files.
- Move each enum with its
Display/VALUES implementation and each union/default implementation with the model that owns it.
Acceptance
Out of scope
- Service, backup, Postgres, ClickPipes, and ClickStack models.
- Any model, enum, Serde, or wire-contract change.
Parent: #317
Stack position: 3 of 7. Establishes the model facade used by the remaining model moves.
Goal
Introduce the incremental
models.rsfacade and extract the shared and smaller model domains without changing the public Rust or wire API.Scope
models.rsas the facade, with private child modules and explicitpub usere-exports.discriminated_union!macro in a location usable by child modules.ApiResponse, assigned-role types, IP access-list types, resource tags, andLicense.Display/VALUESimplementation and each union/default implementation with the model that owns it.Acceptance
clickhouse_cloud_api::Typeandclickhouse_cloud_api::models::Typepaths continue to compile.deprecated-fieldsfeature builds compile.cargo check --workspace --all-featurespass.Out of scope