@beignet/core
Version:
Core framework primitives for Beignet
71 lines • 2.21 kB
TypeScript
/**
* OpenAPI operation-level metadata for HTTP contracts.
*/
/**
* Inline OpenAPI schema metadata or a `$ref` to a schema component.
*/
export type OpenAPISchemaMeta = Record<string, unknown> | {
$ref: string;
};
/**
* OpenAPI media type metadata for request and response content entries.
*/
export type OpenAPIMediaTypeMeta = {
schema?: OpenAPISchemaMeta;
examples?: Record<string, {
summary?: string;
value?: unknown;
}>;
};
/**
* OpenAPI request body metadata used to override generated JSON request bodies.
*/
export type OpenAPIRequestBodyMeta = {
required?: boolean;
description?: string;
content: Record<string, OpenAPIMediaTypeMeta>;
};
/**
* OpenAPI response metadata used to add or replace generated responses.
*/
export type OpenAPIResponseMeta = {
description: string;
content?: Record<string, OpenAPIMediaTypeMeta>;
};
/**
* OpenAPI operation parameter metadata used for custom parameters such as cookies.
*/
export type OpenAPIParameterMeta = {
name: string;
in: "path" | "query" | "header" | "cookie";
required?: boolean;
schema?: OpenAPISchemaMeta;
description?: string;
deprecated?: boolean;
};
export type OpenAPIOperationMeta = {
/** Brief operation summary. */
summary?: string;
/** Detailed operation description. */
description?: string;
/** Tags used to group operations. */
tags?: string[];
/** Whether the operation is deprecated. */
deprecated?: boolean;
/** External documentation reference. */
externalDocs?: {
description?: string;
url: string;
};
/** Operation ID override. Defaults to `contract.name`. */
operationId?: string;
/** Per-operation security requirements. */
security?: Array<Record<string, string[]>>;
/** Additional or replacement operation parameters. */
parameters?: OpenAPIParameterMeta[];
/** Replacement request body for non-JSON media such as multipart uploads. */
requestBody?: OpenAPIRequestBodyMeta;
/** Additional or replacement responses, useful for files and streams. */
responses?: Record<string, OpenAPIResponseMeta>;
};
//# sourceMappingURL=openapi-meta.d.ts.map