Skip to main content

SDK generation

Generated from apiome-rest/openapi.yaml (API version 1.204.1) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: sdk-generation · 3 operations

GET /v1/projects/{tenant_slug}/{project_ref}/sdk-settings​

Get the generation settings in force for a project

The package naming, licence header and user-agent this project's generated artifacts carry, and where they came from: project (an override saved here), tenant (the workspace default), merged (both), or default (nothing saved anywhere).

resolved carries the same settings with their tokens substituted for this project — the package names a publisher would actually use.

Settings are merged key by key, tenant first: a project that overrides only its user-agent still inherits its tenant's package patterns. packageNamePatterns merges one ecosystem at a time.

A key absent from a body inherits the next scope up; a key present as null is deliberately none, and blocks that inheritance.

Patterns may contain the tokens {tenant}, {project}, {version}, {year}, substituted from the scope being resolved. A package pattern is validated by resolving it against probe values and checking the result against its registry's naming rules, so @acme/{project}-sdk is accepted and @ACME/{project} is not.

Ecosystems: npm, pypi, gomod. licenseHeader is capped at 4,000 characters; userAgent at 200 and to characters legal in an HTTP header.

publicSdkEnabled (boolean, default false) is the SDK-3.3 gate: it opens the public browse portal's Get SDK client-kit download and its anonymous per-operation snippets for the project. It is the one setting that is an access control rather than branding, so an unset value means not allowed — a workspace or project owner must opt in.

Requires projects:view.

Operation id: get_project_sdk_settings_v1_projects__tenant_slug___project_ref__sdk_settings_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get the generation settings in force for a project.application/json SdkGenerationSettingsOut
404Project not found in this tenant.—
422Validation Errorapplication/json HTTPValidationError

PUT /v1/projects/{tenant_slug}/{project_ref}/sdk-settings​

Set this project's generation settings

Save an override for one project, replacing whatever it held. The workspace defaults still supply every key this body does not name.

Settings are merged key by key, tenant first: a project that overrides only its user-agent still inherits its tenant's package patterns. packageNamePatterns merges one ecosystem at a time.

A key absent from a body inherits the next scope up; a key present as null is deliberately none, and blocks that inheritance.

Patterns may contain the tokens {tenant}, {project}, {version}, {year}, substituted from the scope being resolved. A package pattern is validated by resolving it against probe values and checking the result against its registry's naming rules, so @acme/{project}-sdk is accepted and @ACME/{project} is not.

Ecosystems: npm, pypi, gomod. licenseHeader is capped at 4,000 characters; userAgent at 200 and to characters legal in an HTTP header.

publicSdkEnabled (boolean, default false) is the SDK-3.3 gate: it opens the public browse portal's Get SDK client-kit download and its anonymous per-operation snippets for the project. It is the one setting that is an access control rather than branding, so an unset value means not allowed — a workspace or project owner must opt in.

Requires projects:edit. Audited as governance.sdk_generation_settings.update.

Operation id: put_project_sdk_settings_v1_projects__tenant_slug___project_ref__sdk_settings_put

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for set this project's generation settings.

Responses

StatusDescriptionBody
200Successful response for set this project's generation settings.application/json SdkGenerationSettingsOut
404Project not found in this tenant.—
422The settings body is not valid.—

DELETE /v1/projects/{tenant_slug}/{project_ref}/sdk-settings​

Drop this project's override

Remove the project's settings, so it inherits the workspace defaults again. Returns the settings now in force, not a bare 204, so a caller can see what it fell back to.

Requires projects:edit. Audited as governance.sdk_generation_settings.clear.

Operation id: delete_project_sdk_settings_v1_projects__tenant_slug___project_ref__sdk_settings_delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for drop this project's override.application/json SdkGenerationSettingsOut
404Project not found in this tenant.—
422Validation Errorapplication/json HTTPValidationError

Schemas used​

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

SdkGenerationSettingsOut​

The settings in force for a scope, and where each part of them came from.

Attributes: schema_version: The body shape these settings were read as. source: default (nothing saved anywhere), tenant, project, or merged when both scopes contributed. content_fingerprint: sha256: digest of the merged body — identical settings produce identical artifacts, and this is the value that proves it. settings: The merged settings themselves. resolved: The settings with their tokens substituted for this scope, ready to apply. scope: The scope this request addressed (tenant or project). scope_body: The body saved at exactly that scope, verbatim, or None when nothing is saved there. An editor needs this and not just settings: only the raw body says whether a key is absent (inherit) or present as null (deliberately none), and the merged view cannot tell those apart. tenant_settings_id: The contributing tenant-scope row, when there is one. project_settings_id: The contributing project-scope row, when there is one. updated_at: When the most specific contributing row was last written. updated_by: Who wrote it. degraded: True when a stored row could not be read and was skipped.

PropertyTypeRequiredDescription
schemaVersionstringnoThe settings body shape.
sourcestringyesdefault | tenant | project | merged.
contentFingerprintstringyessha256 digest of the merged settings body.
settingsSdkGenerationSettingsnoSettings.
resolvedResolvedBrandingOutyesThe settings with tokens substituted for this scope.
scopestringnoThe scope this request addressed: tenant | project.
scopeBodyobject or nullnoThe body saved at exactly this scope, verbatim, or null when nothing is saved here. Only this distinguishes an absent key (inherit) from an explicit null (deliberately none).
tenantSettingsIdstring or nullnoTenant Settings ID.
projectSettingsIdstring or nullnoProject Settings ID.
updatedAtstring (date-time) or nullnoUpdated At.
updatedBystring or nullnoUpdated By.
degradedbooleannoTrue when a stored row could not be read and was skipped.

SdkGenerationSettingsPutRequest​

Body for saving SDK generation settings.

Attributes: settings: The sdk.generation-settings.v1 body. Only the keys it names are stored.

PropertyTypeRequiredDescription
settingsobjectnoThe settings to save. Only the keys named here are stored, so a body naming one setting configures exactly that one and leaves the rest inheriting.