UNPKG

@redocly/openapi-core

Version:

See https://github.com/Redocly/redocly-cli

414 lines 11.8 kB
interface Oas3DefinitionBase<T extends Oas3Schema | Oas3_1Schema> { openapi: string; info?: Oas3Info; servers?: Oas3Server[]; paths?: Oas3Paths<T>; components?: T extends Oas3_1Schema ? Oas3_1Components : Oas3Components; security?: Oas3SecurityRequirement[]; tags?: Oas3Tag[]; externalDocs?: Oas3ExternalDocs; } export interface Oas3Definition extends Oas3DefinitionBase<Oas3Schema> { 'x-webhooks'?: Oas3Webhooks<Oas3Schema>; } export interface Oas3_1Definition extends Oas3DefinitionBase<Oas3_1Schema> { webhooks?: Oas3Webhooks<Oas3_1Schema>; } export interface Oas3_2Definition extends Oas3_1Definition { $self?: string; tags?: Oas3_2Tag[]; } export interface Oas3Info { title: string; version: string; description?: string; termsOfService?: string; contact?: Oas3Contact; license?: Oas3License; } export interface Oas3Server { url: string; description?: string; variables?: { [name: string]: Oas3ServerVariable; }; name?: string; } export interface Oas3ServerVariable { enum?: string[]; default: string; description?: string; } export interface Oas3Paths<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { [path: string]: Referenced<Oas3PathItem<T>>; } export interface OasRef { $ref: string; } export type Referenced<T> = OasRef | T; export interface Oas3PathItem<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { summary?: string; description?: string; get?: Oas3Operation<T>; put?: Oas3Operation<T>; post?: Oas3Operation<T>; delete?: Oas3Operation<T>; options?: Oas3Operation<T>; head?: Oas3Operation<T>; patch?: Oas3Operation<T>; trace?: Oas3Operation<T>; query?: Oas3Operation<T>; additionalOperations?: { [name: string]: Referenced<Oas3Operation<T>>; }; servers?: Oas3Server[]; parameters?: Array<Referenced<Oas3Parameter<T>>>; } export interface Oas3XCodeSample { lang: string; label?: string; source: string; } export interface Oas3Operation<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { tags?: string[]; summary?: string; description?: string; externalDocs?: Oas3ExternalDocs; operationId?: string; parameters?: Array<Referenced<Oas3Parameter<T>>>; requestBody?: Referenced<Oas3RequestBody<T>>; responses: Oas3Responses<T>; callbacks?: { [name: string]: Referenced<Oas3Callback<T>>; }; deprecated?: boolean; security?: Oas3SecurityRequirement[]; servers?: Oas3Server[]; 'x-codeSamples'?: Oas3XCodeSample[]; 'x-code-samples'?: Oas3XCodeSample[]; 'x-hideTryItPanel'?: boolean; } export interface Oas3Parameter<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { name: string; in?: Oas3ParameterLocation; description?: string; required?: boolean; deprecated?: boolean; allowEmptyValue?: boolean; style?: Oas3ParameterStyle; explode?: boolean; allowReserved?: boolean; schema?: Referenced<T>; example?: unknown; examples?: { [media: string]: Referenced<Oas3Example>; }; content?: { [media: string]: Oas3MediaType<T>; }; } export interface Oas3Example { value: unknown; dataValue?: unknown; serializedValue?: string; summary?: string; description?: string; externalValue?: string; } export interface Oas3Xml { name?: string; namespace?: string; prefix?: string; attribute?: string; wrapped?: string; } interface Oas3XSchemaBase<T extends Oas3Schema | Oas3_1Schema> { $ref?: string; properties?: { [name: string]: Referenced<T>; }; additionalProperties?: boolean | T; description?: string; default?: unknown; required?: string[]; readOnly?: boolean; writeOnly?: boolean; deprecated?: boolean; format?: string; externalDocs?: Oas3ExternalDocs; discriminator?: Oas3Discriminator; oneOf?: T[]; anyOf?: T[]; allOf?: T[]; not?: T; title?: string; multipleOf?: number; maximum?: number; minimum?: number; maxLength?: number; minLength?: number; pattern?: string; items?: boolean | T; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; enum?: unknown[]; example?: unknown; xml?: Oas3Xml; 'x-tags'?: string[]; } export interface Oas3Schema extends Oas3XSchemaBase<Oas3Schema> { type?: string; exclusiveMaximum?: boolean; exclusiveMinimum?: boolean; nullable?: boolean; } export interface Oas3_1Schema extends Oas3XSchemaBase<Oas3_1Schema> { $id?: string; $schema?: string; $anchor?: string; $dynamicAnchor?: string; $dynamicRef?: string; $defs?: { [name: string]: Referenced<Oas3_1Schema>; }; $vocabulary?: { [uri: string]: boolean; }; $comment?: string; type?: string | string[]; examples?: unknown[]; prefixItems?: Oas3_1Schema[]; exclusiveMaximum?: number; exclusiveMinimum?: number; const?: unknown; contains?: Oas3_1Schema; minContains?: number; maxContains?: number; propertyNames?: Oas3_1Schema; if?: Oas3_1Schema; then?: Oas3_1Schema; else?: Oas3_1Schema; dependentRequired?: { [name: string]: string[]; }; dependentSchemas?: { [name: string]: Referenced<Oas3_1Schema>; }; patternProperties?: { [name: string]: Referenced<Oas3_1Schema>; }; unevaluatedItems?: boolean | Oas3_1Schema; unevaluatedProperties?: boolean | Oas3_1Schema; contentSchema?: Oas3_1Schema; contentMediaType?: string; contentEncoding?: string; } export interface Oas3Webhooks<T extends Oas3Schema | Oas3_1Schema> { [webhook: string]: Referenced<Oas3PathItem<T>>; } export interface Oas3Discriminator { propertyName: string; mapping?: { [name: string]: string; }; defaultMapping?: string; 'x-explicitMappingOnly'?: boolean; } export interface Oas3MediaType<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { schema?: Referenced<T>; example?: unknown; examples?: { [name: string]: Referenced<Oas3Example>; }; encoding?: { [field: string]: Oas3Encoding<T>; }; itemSchema?: Referenced<T>; prefixEncoding?: Oas3Encoding<T>[]; itemEncoding?: Referenced<Oas3Encoding<T>>; } export interface Oas3Encoding<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { contentType: string; headers?: { [name: string]: Referenced<Oas3Header<T>>; }; style: Oas3ParameterStyle; explode: boolean; allowReserved: boolean; } export type Oas3ParameterLocation = 'query' | 'querystring' | 'header' | 'path' | 'cookie'; export type Oas3ParameterStyle = 'matrix' | 'label' | 'form' | 'simple' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject'; export interface Oas3RequestBody<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { description?: string; required?: boolean; content: { [mime: string]: Oas3MediaType<T>; }; } export interface Oas3Responses<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { [code: string]: Oas3Response<T>; } export interface Oas3Response<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { description?: string; summary?: string; headers?: { [name: string]: Referenced<Oas3Header<T>>; }; content?: { [mime: string]: Oas3MediaType<T>; }; links?: { [name: string]: Referenced<Oas3Link>; }; } export interface Oas3Link { operationRef?: string; operationId?: string; parameters?: { [name: string]: unknown; }; requestBody?: unknown; description?: string; server?: Oas3Server; } export type Oas3Header<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> = Omit<Oas3Parameter<T>, 'in' | 'name'>; export interface Oas3Callback<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> { [name: string]: Oas3PathItem<T>; } export interface Oas3ComponentsBase<T extends Oas3Schema | Oas3_1Schema> { schemas?: { [name: string]: Referenced<T>; }; responses?: { [name: string]: Referenced<Oas3Response<T>>; }; parameters?: { [name: string]: Referenced<Oas3Parameter<T>>; }; examples?: { [name: string]: Referenced<Oas3Example>; }; requestBodies?: { [name: string]: Referenced<Oas3RequestBody<T>>; }; headers?: { [name: string]: Referenced<Oas3Header<T>>; }; securitySchemes?: { [name: string]: Referenced<Oas3SecurityScheme>; }; links?: { [name: string]: Referenced<Oas3Link>; }; callbacks?: { [name: string]: Referenced<Oas3Callback<T>>; }; } export interface Oas3_1Components extends Oas3ComponentsBase<Oas3_1Schema> { pathItems?: { [name: string]: Referenced<Oas3PathItem<Oas3_1Schema>>; }; } export interface Oas3Components extends Oas3ComponentsBase<Oas3Schema> { } export type Oas3ComponentName<T extends Oas3Schema | Oas3_1Schema = Oas3Schema | Oas3_1Schema> = keyof Oas3ComponentsBase<T>; export interface Oas3SecurityRequirement { [name: string]: string[]; } type SecuritySchemeBase = { description?: string; deprecated?: boolean; [key: `x-${string}`]: unknown; }; export type ApiKeyAuth = { type: 'apiKey'; in: 'query' | 'header' | 'cookie'; name: string; } & SecuritySchemeBase; export type HttpAuth = { type: 'http'; scheme: string; } & SecuritySchemeBase; export type BasicAuth = { type: 'http'; scheme: 'basic'; } & SecuritySchemeBase; export type BearerAuth = { type: 'http'; scheme: 'bearer'; bearerFormat?: string; } & SecuritySchemeBase; export type DigestAuth = { type: 'http'; scheme: 'digest'; } & SecuritySchemeBase; export type MutualTLSAuth = { type: 'mutualTLS'; } & SecuritySchemeBase; export type OAuth2Auth = { type: 'oauth2'; flows: { implicit?: { authorizationUrl: string; scopes: Record<string, string>; refreshUrl?: string; }; password?: { tokenUrl: string; scopes: Record<string, string>; refreshUrl?: string; }; clientCredentials?: { tokenUrl: string; scopes: Record<string, string>; refreshUrl?: string; }; authorizationCode?: { authorizationUrl: string; tokenUrl: string; scopes: Record<string, string>; refreshUrl?: string; }; deviceAuthorization?: { deviceAuthorizationUrl: string; tokenUrl: string; scopes: Record<string, string>; refreshUrl?: string; }; }; oauth2MetadataUrl?: string; } & SecuritySchemeBase; export type OpenIDAuth = { type: 'openIdConnect'; openIdConnectUrl: string; } & SecuritySchemeBase; export type Oas3SecurityScheme = ApiKeyAuth | HttpAuth | BasicAuth | BearerAuth | DigestAuth | MutualTLSAuth | OAuth2Auth | OpenIDAuth; export interface Oas3Tag { name: string; description?: string; externalDocs?: Oas3ExternalDocs; 'x-displayName'?: string; } export type Oas3_2Tag = Omit<Oas3Tag, 'x-displayName'> & { kind?: string; parent?: string; summary?: string; }; export interface Oas3ExternalDocs { description?: string; url: string; } export interface Oas3Contact { name?: string; url?: string; email?: string; } export interface Oas3License { name: string; url?: string; } export {}; //# sourceMappingURL=openapi.d.ts.map