Files
openapi-types/3.0/extensions.ts
2025-10-01 19:33:18 +00:00

48 lines
1.4 KiB
TypeScript

/**
* -----
* Extension Type
* -----
*
* Vendor extensions allow adding custom properties to OpenAPI objects.
* All extension property names MUST begin with "x-" followed by any valid identifier.
* The value can be any valid JSON value (null, primitive, array, or object).
*
* | Version | Reference |
* |---|-----|
* | 3.0.4 | {@link https://spec.openapis.org/oas/v3.0.4#specification-extensions | OpenAPI 3.0.4 Extensions} |
* | 3.0.3 | {@link https://spec.openapis.org/oas/v3.0.3#specification-extensions | OpenAPI 3.0.3 Extensions} |
* | 3.0.2 | {@link https://spec.openapis.org/oas/v3.0.2#specification-extensions | OpenAPI 3.0.2 Extensions} |
* | 3.0.1 | {@link https://spec.openapis.org/oas/v3.0.1#specification-extensions | OpenAPI 3.0.1 Extensions} |
* | 3.0.0 | {@link https://spec.openapis.org/oas/v3.0.0#specification-extensions | OpenAPI 3.0.0 Extensions} |
*
* -----
* Fields
* -----
*
* @property `x-${string}` - Specification Extensions
*
* @note
* All extension property names MUST begin with "x-".
*
* -----
* Examples
* -----
*
* @example (simple extension):
* ```ts
* const extension: Extension = {
* "x-internal-id": "12345"
* };
* ```
*
* @example (complex extension):
* ```ts
* const extension: Extension = {
* "x-custom-feature": { enabled: true, version: "1.0" }
* };
* ```
*/
export type Extension = {
[K in `x-${string}`]: unknown;
};