UNPKG

7.53 kBTypeScriptView Raw
1export interface OpenAPIObject {
2 openapi: string;
3 info: InfoObject;
4 servers?: ServerObject[];
5 paths: PathsObject;
6 components?: ComponentsObject;
7 security?: SecurityRequirementObject[];
8 tags?: TagObject[];
9 externalDocs?: ExternalDocumentationObject;
10}
11export interface InfoObject {
12 title: string;
13 description?: string;
14 termsOfService?: string;
15 contact?: ContactObject;
16 license?: LicenseObject;
17 version: string;
18}
19export interface ContactObject {
20 name?: string;
21 url?: string;
22 email?: string;
23}
24export interface LicenseObject {
25 name: string;
26 url?: string;
27}
28export interface ServerObject {
29 url: string;
30 description?: string;
31 variables?: Record<string, ServerVariableObject>;
32}
33export interface ServerVariableObject {
34 enum?: string[] | boolean[] | number[];
35 default: string | boolean | number;
36 description?: string;
37}
38export interface ComponentsObject {
39 schemas?: Record<string, SchemaObject | ReferenceObject>;
40 responses?: Record<string, ResponseObject | ReferenceObject>;
41 parameters?: Record<string, ParameterObject | ReferenceObject>;
42 examples?: Record<string, ExampleObject | ReferenceObject>;
43 requestBodies?: Record<string, RequestBodyObject | ReferenceObject>;
44 headers?: Record<string, HeaderObject | ReferenceObject>;
45 securitySchemes?: Record<string, SecuritySchemeObject | ReferenceObject>;
46 links?: Record<string, LinkObject | ReferenceObject>;
47 callbacks?: Record<string, CallbackObject | ReferenceObject>;
48}
49export declare type PathsObject = Record<string, PathItemObject>;
50export interface PathItemObject {
51 $ref?: string;
52 summary?: string;
53 description?: string;
54 get?: OperationObject;
55 put?: OperationObject;
56 post?: OperationObject;
57 delete?: OperationObject;
58 options?: OperationObject;
59 head?: OperationObject;
60 patch?: OperationObject;
61 trace?: OperationObject;
62 servers?: ServerObject[];
63 parameters?: (ParameterObject | ReferenceObject)[];
64}
65export interface OperationObject {
66 tags?: string[];
67 summary?: string;
68 description?: string;
69 externalDocs?: ExternalDocumentationObject;
70 operationId?: string;
71 parameters?: (ParameterObject | ReferenceObject)[];
72 requestBody?: RequestBodyObject | ReferenceObject;
73 responses: ResponsesObject;
74 callbacks?: CallbacksObject;
75 deprecated?: boolean;
76 security?: SecurityRequirementObject[];
77 servers?: ServerObject[];
78}
79export interface ExternalDocumentationObject {
80 description?: string;
81 url: string;
82}
83export declare type ParameterLocation = 'query' | 'header' | 'path' | 'cookie';
84export declare type ParameterStyle = 'matrix' | 'label' | 'form' | 'simple' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject';
85export interface BaseParameterObject {
86 description?: string;
87 required?: boolean;
88 deprecated?: boolean;
89 allowEmptyValue?: boolean;
90 style?: ParameterStyle;
91 explode?: boolean;
92 allowReserved?: boolean;
93 schema?: SchemaObject | ReferenceObject;
94 examples?: Record<string, ExampleObject | ReferenceObject>;
95 example?: any;
96 content?: ContentObject;
97}
98export interface ParameterObject extends BaseParameterObject {
99 name: string;
100 in: ParameterLocation;
101}
102export interface RequestBodyObject {
103 description?: string;
104 content: ContentObject;
105 required?: boolean;
106}
107export declare type ContentObject = Record<string, MediaTypeObject>;
108export interface MediaTypeObject {
109 schema?: SchemaObject | ReferenceObject;
110 examples?: ExamplesObject;
111 example?: any;
112 encoding?: EncodingObject;
113}
114export declare type EncodingObject = Record<string, EncodingPropertyObject>;
115export interface EncodingPropertyObject {
116 contentType?: string;
117 headers?: Record<string, HeaderObject | ReferenceObject>;
118 style?: string;
119 explode?: boolean;
120 allowReserved?: boolean;
121}
122export interface ResponsesObject extends Record<string, ResponseObject | ReferenceObject | undefined> {
123 default?: ResponseObject | ReferenceObject;
124}
125export interface ResponseObject {
126 description: string;
127 headers?: HeadersObject;
128 content?: ContentObject;
129 links?: LinksObject;
130}
131export declare type CallbacksObject = Record<string, CallbackObject | ReferenceObject>;
132export declare type CallbackObject = Record<string, PathItemObject>;
133export declare type HeadersObject = Record<string, HeaderObject | ReferenceObject>;
134export interface ExampleObject {
135 summary?: string;
136 description?: string;
137 value?: any;
138 externalValue?: string;
139}
140export declare type LinksObject = Record<string, LinkObject | ReferenceObject>;
141export interface LinkObject {
142 operationRef?: string;
143 operationId?: string;
144 parameters?: LinkParametersObject;
145 requestBody?: any | string;
146 description?: string;
147 server?: ServerObject;
148}
149export declare type LinkParametersObject = Record<string, any>;
150export declare type HeaderObject = BaseParameterObject;
151export interface TagObject {
152 name: string;
153 description?: string;
154 externalDocs?: ExternalDocumentationObject;
155}
156export declare type ExamplesObject = Record<string, ExampleObject | ReferenceObject>;
157export interface ReferenceObject {
158 $ref: string;
159}
160export interface SchemaObject {
161 nullable?: boolean;
162 discriminator?: DiscriminatorObject;
163 readOnly?: boolean;
164 writeOnly?: boolean;
165 xml?: XmlObject;
166 externalDocs?: ExternalDocumentationObject;
167 example?: any;
168 deprecated?: boolean;
169 type?: string;
170 allOf?: (SchemaObject | ReferenceObject)[];
171 oneOf?: (SchemaObject | ReferenceObject)[];
172 anyOf?: (SchemaObject | ReferenceObject)[];
173 not?: SchemaObject | ReferenceObject;
174 items?: SchemaObject | ReferenceObject;
175 properties?: Record<string, SchemaObject | ReferenceObject>;
176 additionalProperties?: SchemaObject | ReferenceObject | boolean;
177 patternProperties?: SchemaObject | ReferenceObject | any;
178 description?: string;
179 format?: string;
180 default?: any;
181 title?: string;
182 multipleOf?: number;
183 maximum?: number;
184 exclusiveMaximum?: boolean;
185 minimum?: number;
186 exclusiveMinimum?: boolean;
187 maxLength?: number;
188 minLength?: number;
189 pattern?: string;
190 maxItems?: number;
191 minItems?: number;
192 uniqueItems?: boolean;
193 maxProperties?: number;
194 minProperties?: number;
195 required?: string[];
196 enum?: any[];
197}
198export declare type SchemasObject = Record<string, SchemaObject>;
199export interface DiscriminatorObject {
200 propertyName: string;
201 mapping?: Record<string, string>;
202}
203export interface XmlObject {
204 name?: string;
205 namespace?: string;
206 prefix?: string;
207 attribute?: boolean;
208 wrapped?: boolean;
209}
210export declare type SecuritySchemeType = 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
211export interface SecuritySchemeObject {
212 type: SecuritySchemeType;
213 description?: string;
214 name?: string;
215 in?: string;
216 scheme?: string;
217 bearerFormat?: string;
218 flows?: OAuthFlowsObject;
219 openIdConnectUrl?: string;
220}
221export interface OAuthFlowsObject {
222 implicit?: OAuthFlowObject;
223 password?: OAuthFlowObject;
224 clientCredentials?: OAuthFlowObject;
225 authorizationCode?: OAuthFlowObject;
226}
227export interface OAuthFlowObject {
228 authorizationUrl?: string;
229 tokenUrl?: string;
230 refreshUrl?: string;
231 scopes: ScopesObject;
232}
233export declare type ScopesObject = Record<string, any>;
234export declare type SecurityRequirementObject = Record<string, string[]>;