1 | import { JsonSchemaDraft04 } from './jsonSchemaDraft04';
|
2 | export declare namespace OpenApisV2 {
|
3 | interface SchemaJson {
|
4 | swagger: '2.0';
|
5 | info: SchemaJson.Definitions.Info;
|
6 | host?: string;
|
7 | basePath?: string;
|
8 | schemes?: SchemaJson.Definitions.SchemesList;
|
9 | consumes?: SchemaJson.Definitions.MimeType[];
|
10 | produces?: SchemaJson.Definitions.MimeType[];
|
11 | paths: SchemaJson.Definitions.Paths;
|
12 | definitions?: SchemaJson.Definitions.Definitions;
|
13 | parameters?: SchemaJson.Definitions.ParameterDefinitions;
|
14 | responses?: SchemaJson.Definitions.ResponseDefinitions;
|
15 | security?: SchemaJson.Definitions.Security;
|
16 | securityDefinitions?: SchemaJson.Definitions.SecurityDefinitions;
|
17 | tags?: SchemaJson.Definitions.Tag[];
|
18 | externalDocs?: SchemaJson.Definitions.ExternalDocs;
|
19 | }
|
20 | namespace SchemaJson {
|
21 | namespace Definitions {
|
22 | interface ApiKeySecurity {
|
23 | type: 'apiKey';
|
24 | name: string;
|
25 | in: 'header' | 'query';
|
26 | description?: string;
|
27 | }
|
28 | interface BasicAuthenticationSecurity {
|
29 | type: 'basic';
|
30 | description?: string;
|
31 | }
|
32 | interface BodyParameter {
|
33 | description?: string;
|
34 | name: string;
|
35 | in: 'body';
|
36 | required?: boolean;
|
37 | schema: Schema;
|
38 | }
|
39 | type CollectionFormat = 'csv' | 'ssv' | 'tsv' | 'pipes';
|
40 | type CollectionFormatWithMulti = 'csv' | 'ssv' | 'tsv' | 'pipes' | 'multi';
|
41 | interface Contact {
|
42 | name?: string;
|
43 | url?: string;
|
44 | email?: string;
|
45 | }
|
46 | type Default = JsonSchemaDraft04.Schema.Properties.Default;
|
47 | interface Definitions {
|
48 | [name: string]: Schema;
|
49 | }
|
50 | type Enum = JsonSchemaDraft04.Schema.Properties.Enum;
|
51 | interface Examples {
|
52 | [name: string]: any;
|
53 | }
|
54 | type ExclusiveMaximum = JsonSchemaDraft04.Schema.Properties.ExclusiveMaximum;
|
55 | type ExclusiveMinimum = JsonSchemaDraft04.Schema.Properties.ExclusiveMinimum;
|
56 | interface ExternalDocs {
|
57 | description?: string;
|
58 | url: string;
|
59 | }
|
60 | interface FileSchema {
|
61 | format?: string;
|
62 | title?: JsonSchemaDraft04.Schema.Properties.Title;
|
63 | description?: JsonSchemaDraft04.Schema.Properties.Description;
|
64 | default?: JsonSchemaDraft04.Schema.Properties.Default;
|
65 | required?: JsonSchemaDraft04.Schema.Definitions.StringArray;
|
66 | type: 'file';
|
67 | readOnly?: boolean;
|
68 | externalDocs?: ExternalDocs;
|
69 | example?: any;
|
70 | }
|
71 | interface FormDataParameterSubSchema {
|
72 | required?: boolean;
|
73 | in: 'formData';
|
74 | description?: string;
|
75 | name: string;
|
76 | allowEmptyValue?: boolean;
|
77 | type?: 'string' | 'number' | 'boolean' | 'integer' | 'array' | 'file';
|
78 | format?: string;
|
79 | items?: PrimitivesItems;
|
80 | collectionFormat?: CollectionFormatWithMulti;
|
81 | default?: Default;
|
82 | maximum?: Maximum;
|
83 | exclusiveMaximum?: ExclusiveMaximum;
|
84 | minimum?: Minimum;
|
85 | exclusiveMinimum?: ExclusiveMinimum;
|
86 | maxLength?: MaxLength;
|
87 | minLength?: MinLength;
|
88 | pattern?: Pattern;
|
89 | maxItems?: MaxItems;
|
90 | minItems?: MinItems;
|
91 | uniqueItems?: UniqueItems;
|
92 | enum?: Enum;
|
93 | multipleOf?: MultipleOf;
|
94 | }
|
95 | interface Header {
|
96 | type: 'string' | 'number' | 'integer' | 'boolean' | 'array';
|
97 | format?: string;
|
98 | items?: PrimitivesItems;
|
99 | collectionFormat?: CollectionFormat;
|
100 | default?: Default;
|
101 | maximum?: Maximum;
|
102 | exclusiveMaximum?: ExclusiveMaximum;
|
103 | minimum?: Minimum;
|
104 | exclusiveMinimum?: ExclusiveMinimum;
|
105 | maxLength?: MaxLength;
|
106 | minLength?: MinLength;
|
107 | pattern?: Pattern;
|
108 | maxItems?: MaxItems;
|
109 | minItems?: MinItems;
|
110 | uniqueItems?: UniqueItems;
|
111 | enum?: Enum;
|
112 | multipleOf?: MultipleOf;
|
113 | description?: string;
|
114 | }
|
115 | interface HeaderParameterSubSchema {
|
116 | required?: boolean;
|
117 | in: 'header';
|
118 | description?: string;
|
119 | name: string;
|
120 | type?: 'string' | 'number' | 'boolean' | 'integer' | 'array';
|
121 | format?: string;
|
122 | items?: PrimitivesItems;
|
123 | collectionFormat?: CollectionFormat;
|
124 | default?: Default;
|
125 | maximum?: Maximum;
|
126 | exclusiveMaximum?: ExclusiveMaximum;
|
127 | minimum?: Minimum;
|
128 | exclusiveMinimum?: ExclusiveMinimum;
|
129 | maxLength?: MaxLength;
|
130 | minLength?: MinLength;
|
131 | pattern?: Pattern;
|
132 | maxItems?: MaxItems;
|
133 | minItems?: MinItems;
|
134 | uniqueItems?: UniqueItems;
|
135 | enum?: Enum;
|
136 | multipleOf?: MultipleOf;
|
137 | }
|
138 | interface Headers {
|
139 | [name: string]: Header;
|
140 | }
|
141 | interface Info {
|
142 | title: string;
|
143 | version: string;
|
144 | description?: string;
|
145 | termsOfService?: string;
|
146 | contact?: Contact;
|
147 | license?: License;
|
148 | }
|
149 | interface JsonReference {
|
150 | $ref: string;
|
151 | }
|
152 | interface License {
|
153 | name: string;
|
154 | url?: string;
|
155 | }
|
156 | type MaxItems = JsonSchemaDraft04.Schema.Definitions.PositiveInteger;
|
157 | type MaxLength = JsonSchemaDraft04.Schema.Definitions.PositiveInteger;
|
158 | type Maximum = JsonSchemaDraft04.Schema.Properties.Maximum;
|
159 | type MediaTypeList = MimeType[];
|
160 | type MimeType = string;
|
161 | type MinItems = JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0;
|
162 | type MinLength = JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0;
|
163 | type Minimum = JsonSchemaDraft04.Schema.Properties.Minimum;
|
164 | type MultipleOf = JsonSchemaDraft04.Schema.Properties.MultipleOf;
|
165 | type NonBodyParameter = HeaderParameterSubSchema | FormDataParameterSubSchema | QueryParameterSubSchema | PathParameterSubSchema;
|
166 | interface Oauth2AccessCodeSecurity {
|
167 | type: 'oauth2';
|
168 | flow: 'accessCode';
|
169 | scopes?: Oauth2Scopes;
|
170 | authorizationUrl: string;
|
171 | tokenUrl: string;
|
172 | description?: string;
|
173 | }
|
174 | interface Oauth2ApplicationSecurity {
|
175 | type: 'oauth2';
|
176 | flow: 'application';
|
177 | scopes?: Oauth2Scopes;
|
178 | tokenUrl: string;
|
179 | description?: string;
|
180 | }
|
181 | interface Oauth2ImplicitSecurity {
|
182 | type: 'oauth2';
|
183 | flow: 'implicit';
|
184 | scopes?: Oauth2Scopes;
|
185 | authorizationUrl: string;
|
186 | description?: string;
|
187 | }
|
188 | interface Oauth2PasswordSecurity {
|
189 | type: 'oauth2';
|
190 | flow: 'password';
|
191 | scopes?: Oauth2Scopes;
|
192 | tokenUrl: string;
|
193 | description?: string;
|
194 | }
|
195 | interface Oauth2Scopes {
|
196 | [name: string]: string;
|
197 | }
|
198 | interface Operation {
|
199 | tags?: string[];
|
200 | summary?: string;
|
201 | description?: string;
|
202 | externalDocs?: ExternalDocs;
|
203 | operationId?: string;
|
204 | produces?: MimeType[];
|
205 | consumes?: MimeType[];
|
206 | parameters?: ParametersList;
|
207 | responses: Responses;
|
208 | schemes?: SchemesList;
|
209 | deprecated?: boolean;
|
210 | security?: Security;
|
211 | }
|
212 | type Parameter = BodyParameter | NonBodyParameter;
|
213 | interface ParameterDefinitions {
|
214 | [name: string]: Parameter;
|
215 | }
|
216 | type ParametersList = (Parameter | JsonReference)[];
|
217 | interface PathItem {
|
218 | $ref?: string;
|
219 | get?: Operation;
|
220 | put?: Operation;
|
221 | post?: Operation;
|
222 | delete?: Operation;
|
223 | options?: Operation;
|
224 | head?: Operation;
|
225 | patch?: Operation;
|
226 | parameters?: ParametersList;
|
227 | }
|
228 | interface PathParameterSubSchema {
|
229 | required: true;
|
230 | in: 'path';
|
231 | description?: string;
|
232 | name: string;
|
233 | type?: 'string' | 'number' | 'boolean' | 'integer' | 'array';
|
234 | format?: string;
|
235 | items?: PrimitivesItems;
|
236 | collectionFormat?: CollectionFormat;
|
237 | default?: Default;
|
238 | maximum?: Maximum;
|
239 | exclusiveMaximum?: ExclusiveMaximum;
|
240 | minimum?: Minimum;
|
241 | exclusiveMinimum?: ExclusiveMinimum;
|
242 | maxLength?: MaxLength;
|
243 | minLength?: MinLength;
|
244 | pattern?: Pattern;
|
245 | maxItems?: MaxItems;
|
246 | minItems?: MinItems;
|
247 | uniqueItems?: UniqueItems;
|
248 | enum?: Enum;
|
249 | multipleOf?: MultipleOf;
|
250 | }
|
251 | interface Paths {
|
252 | [pattern: string]: PathItem;
|
253 | }
|
254 | type Pattern = JsonSchemaDraft04.Schema.Properties.Pattern;
|
255 | interface PrimitivesItems {
|
256 | type?: 'string' | 'number' | 'integer' | 'boolean' | 'array';
|
257 | format?: string;
|
258 | items?: PrimitivesItems;
|
259 | collectionFormat?: CollectionFormat;
|
260 | default?: Default;
|
261 | maximum?: Maximum;
|
262 | exclusiveMaximum?: ExclusiveMaximum;
|
263 | minimum?: Minimum;
|
264 | exclusiveMinimum?: ExclusiveMinimum;
|
265 | maxLength?: MaxLength;
|
266 | minLength?: MinLength;
|
267 | pattern?: Pattern;
|
268 | maxItems?: MaxItems;
|
269 | minItems?: MinItems;
|
270 | uniqueItems?: UniqueItems;
|
271 | enum?: Enum;
|
272 | multipleOf?: MultipleOf;
|
273 | }
|
274 | interface QueryParameterSubSchema {
|
275 | required?: boolean;
|
276 | in: 'query';
|
277 | description?: string;
|
278 | name: string;
|
279 | allowEmptyValue?: boolean;
|
280 | type?: 'string' | 'number' | 'boolean' | 'integer' | 'array';
|
281 | format?: string;
|
282 | items?: PrimitivesItems;
|
283 | collectionFormat?: CollectionFormatWithMulti;
|
284 | default?: Default;
|
285 | maximum?: Maximum;
|
286 | exclusiveMaximum?: ExclusiveMaximum;
|
287 | minimum?: Minimum;
|
288 | exclusiveMinimum?: ExclusiveMinimum;
|
289 | maxLength?: MaxLength;
|
290 | minLength?: MinLength;
|
291 | pattern?: Pattern;
|
292 | maxItems?: MaxItems;
|
293 | minItems?: MinItems;
|
294 | uniqueItems?: UniqueItems;
|
295 | enum?: Enum;
|
296 | multipleOf?: MultipleOf;
|
297 | }
|
298 | interface Response {
|
299 | description: string;
|
300 | schema?: Schema | FileSchema;
|
301 | headers?: Headers;
|
302 | examples?: Examples;
|
303 | }
|
304 | interface ResponseDefinitions {
|
305 | [name: string]: Response;
|
306 | }
|
307 | type ResponseValue = Response | JsonReference;
|
308 | interface Responses {
|
309 | [pattern: string]: ResponseValue;
|
310 | }
|
311 | interface Schema {
|
312 | $ref?: string;
|
313 | format?: string;
|
314 | title?: JsonSchemaDraft04.Schema.Properties.Title;
|
315 | description?: JsonSchemaDraft04.Schema.Properties.Description;
|
316 | default?: JsonSchemaDraft04.Schema.Properties.Default;
|
317 | multipleOf?: JsonSchemaDraft04.Schema.Properties.MultipleOf;
|
318 | maximum?: JsonSchemaDraft04.Schema.Properties.Maximum;
|
319 | exclusiveMaximum?: JsonSchemaDraft04.Schema.Properties.ExclusiveMaximum;
|
320 | minimum?: JsonSchemaDraft04.Schema.Properties.Minimum;
|
321 | exclusiveMinimum?: JsonSchemaDraft04.Schema.Properties.ExclusiveMinimum;
|
322 | maxLength?: JsonSchemaDraft04.Schema.Definitions.PositiveInteger;
|
323 | minLength?: JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0;
|
324 | pattern?: JsonSchemaDraft04.Schema.Properties.Pattern;
|
325 | maxItems?: JsonSchemaDraft04.Schema.Definitions.PositiveInteger;
|
326 | minItems?: JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0;
|
327 | uniqueItems?: JsonSchemaDraft04.Schema.Properties.UniqueItems;
|
328 | maxProperties?: JsonSchemaDraft04.Schema.Definitions.PositiveInteger;
|
329 | minProperties?: JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0;
|
330 | required?: JsonSchemaDraft04.Schema.Definitions.StringArray;
|
331 | enum?: JsonSchemaDraft04.Schema.Properties.Enum;
|
332 | additionalProperties?: Schema | boolean;
|
333 | type?: JsonSchemaDraft04.Schema.Properties.Type;
|
334 | items?: Schema | [
|
335 | Schema,
|
336 | ...Schema[]
|
337 | ];
|
338 | allOf?: [
|
339 | Schema,
|
340 | ...Schema[]
|
341 | ];
|
342 | properties?: {
|
343 | [name: string]: Schema;
|
344 | };
|
345 | discriminator?: string;
|
346 | readOnly?: boolean;
|
347 | xml?: Xml;
|
348 | externalDocs?: ExternalDocs;
|
349 | example?: any;
|
350 | }
|
351 | type SchemesList = ('http' | 'https' | 'ws' | 'wss')[];
|
352 | type Security = SecurityRequirement[];
|
353 | interface SecurityDefinitions {
|
354 | [name: string]: BasicAuthenticationSecurity | ApiKeySecurity | Oauth2ImplicitSecurity | Oauth2PasswordSecurity | Oauth2ApplicationSecurity | Oauth2AccessCodeSecurity;
|
355 | }
|
356 | interface SecurityRequirement {
|
357 | [name: string]: string[];
|
358 | }
|
359 | interface Tag {
|
360 | name: string;
|
361 | description?: string;
|
362 | externalDocs?: ExternalDocs;
|
363 | }
|
364 | type UniqueItems = JsonSchemaDraft04.Schema.Properties.UniqueItems;
|
365 | interface Xml {
|
366 | name?: string;
|
367 | namespace?: string;
|
368 | prefix?: string;
|
369 | attribute?: boolean;
|
370 | wrapped?: boolean;
|
371 | }
|
372 | }
|
373 | }
|
374 | }
|
375 | export import SwaggerIo = OpenApisV2;
|