UNPKG

swagger2

Version:

Typescript-based tools for working with Swagger v2.0 documents

116 lines (115 loc) 2.99 kB
export type Extension = null | number | boolean | string | object | Array<Extension>; export type ParameterType = 'query' | 'path' | 'body' | 'header' | 'formData'; export type DataType = 'array' | 'string' | 'number' | 'integer' | 'boolean'; export type DataFormat = 'uuid' | 'int32' | 'int64' | 'float' | 'double' | 'byte' | 'binary' | 'date' | 'date-time' | 'password'; export type Schemes = 'http' | 'https' | 'ws' | 'wss'; export type CollectionFormat = 'csv' | 'ssv' | 'tsv' | 'pipes' | 'multi'; export interface Contact { name?: string; url?: string; email?: string; [extension: string]: Extension; } export interface License { name: string; url?: string; [extension: string]: Extension; } export interface Info { title: string; description?: string; termsOfService?: string; contact?: Contact; license?: License; version: string; [extension: string]: Extension; } export interface Definitions { [name: string]: any; } export interface ParametersDefinitions { [name: string]: any; } export interface ResponsesDefinitions { [name: string]: any; } export interface SecurityDefinitions { [name: string]: any; } export interface SecurityRequirement { [name: string]: any; } export interface ExternalDocumentation { description?: string; url: string; [extension: string]: Extension; } export interface Tag { name: string; description?: string; externalDocs?: ExternalDocumentation; [extension: string]: Extension; } export interface Definition { $ref?: string; type?: DataType; format?: DataFormat; schema?: any; required?: boolean; items?: any; collectionFormat?: string; } export interface Parameter extends Definition { name?: string; in?: ParameterType; description?: string; } export interface Response extends Definition { description: string; headers?: any; examples?: any; } export interface Operation { summary?: string; operationId?: string; description?: string; tags?: string[]; produces?: string[]; parameters?: Parameter[]; responses: { [statusCode: string]: Response; }; security?: any; } export interface PathItem { $ref?: Operation; get?: Operation; put?: Operation; post?: Operation; delete?: Operation; options?: Operation; head?: Operation; patch?: Operation; parameters?: Operation; } export interface Paths { [path: string]: PathItem; } export interface Document { swagger: '2.0'; info: Info; host?: string; basePath?: string; schemes?: Schemes[]; consumes?: string[]; produces?: string[]; paths: Paths; definitions?: Definitions; parameters?: ParametersDefinitions; responses?: ResponsesDefinitions; securityDefinitions?: SecurityDefinitions; security?: SecurityRequirement; tags?: Tag; externalDocs?: ExternalDocumentation; [extension: string]: Extension; }