UNPKG

9.47 kBTypeScriptView Raw
1import { JsonSchemaDraft07 } from './jsonSchemaDraft07';
2export declare namespace OpenApisV3 {
3 interface SchemaJson {
4 openapi: string;
5 info: SchemaJson.Definitions.Info;
6 servers?: SchemaJson.Definitions.Server[];
7 paths: SchemaJson.Definitions.Paths;
8 components?: SchemaJson.Definitions.Components;
9 security?: SchemaJson.Definitions.SecurityRequirement[];
10 tags?: SchemaJson.Definitions.Tag[];
11 externalDocs?: SchemaJson.Definitions.ExternalDocs;
12 }
13 namespace SchemaJson {
14 namespace Definitions {
15 interface Any {
16 [name: string]: any;
17 }
18 type AnyOrExpression = Any | Expression;
19 interface AnysOrExpressions {
20 [name: string]: AnyOrExpression;
21 }
22 interface Callback {
23 }
24 type CallbackOrReference = Callback | Reference;
25 interface CallbacksOrReferences {
26 [name: string]: CallbackOrReference;
27 }
28 interface Components {
29 schemas?: SchemasOrReferences;
30 responses?: ResponsesOrReferences;
31 parameters?: ParametersOrReferences;
32 examples?: ExamplesOrReferences;
33 requestBodies?: RequestBodiesOrReferences;
34 headers?: HeadersOrReferences;
35 securitySchemes?: SecuritySchemesOrReferences;
36 links?: LinksOrReferences;
37 callbacks?: CallbacksOrReferences;
38 }
39 interface Contact {
40 name?: string;
41 url?: string;
42 email?: string;
43 }
44 type DefaultType = null | any[] | unknown | number | boolean | string;
45 interface Discriminator {
46 propertyName: string;
47 mapping?: Strings;
48 }
49 interface Encoding {
50 contentType?: string;
51 headers?: HeadersOrReferences;
52 style?: string;
53 explode?: boolean;
54 allowReserved?: boolean;
55 }
56 interface Encodings {
57 [name: string]: Encoding;
58 }
59 interface Example {
60 summary?: string;
61 description?: string;
62 value?: Any;
63 externalValue?: string;
64 }
65 type ExampleOrReference = Example | Reference;
66 interface ExamplesOrReferences {
67 [name: string]: ExampleOrReference;
68 }
69 interface Expression {
70 [name: string]: any;
71 }
72 interface ExternalDocs {
73 description?: string;
74 url: string;
75 }
76 interface Header {
77 description?: string;
78 required?: boolean;
79 deprecated?: boolean;
80 allowEmptyValue?: boolean;
81 style?: string;
82 explode?: boolean;
83 allowReserved?: boolean;
84 schema?: SchemaOrReference;
85 example?: Any;
86 examples?: ExamplesOrReferences;
87 content?: MediaTypes;
88 }
89 type HeaderOrReference = Header | Reference;
90 interface HeadersOrReferences {
91 [name: string]: HeaderOrReference;
92 }
93 interface Info {
94 title: string;
95 description?: string;
96 termsOfService?: string;
97 contact?: Contact;
98 license?: License;
99 version: string;
100 }
101 interface License {
102 name: string;
103 url?: string;
104 }
105 interface Link {
106 operationRef?: string;
107 operationId?: string;
108 parameters?: AnysOrExpressions;
109 requestBody?: AnyOrExpression;
110 description?: string;
111 server?: Server;
112 }
113 type LinkOrReference = Link | Reference;
114 interface LinksOrReferences {
115 [name: string]: LinkOrReference;
116 }
117 interface MediaType {
118 schema?: SchemaOrReference;
119 example?: Any;
120 examples?: ExamplesOrReferences;
121 encoding?: Encodings;
122 }
123 interface MediaTypes {
124 [name: string]: MediaType;
125 }
126 interface OauthFlow {
127 authorizationUrl?: string;
128 tokenUrl?: string;
129 refreshUrl?: string;
130 scopes?: Strings;
131 }
132 interface OauthFlows {
133 implicit?: OauthFlow;
134 password?: OauthFlow;
135 clientCredentials?: OauthFlow;
136 authorizationCode?: OauthFlow;
137 }
138 interface Operation {
139 tags?: string[];
140 summary?: string;
141 description?: string;
142 externalDocs?: ExternalDocs;
143 operationId?: string;
144 parameters?: ParameterOrReference[];
145 requestBody?: RequestBodyOrReference;
146 responses: ResponsesOrReferences;
147 callbacks?: CallbacksOrReferences;
148 deprecated?: boolean;
149 security?: SecurityRequirement[];
150 servers?: Server[];
151 }
152 interface Parameter {
153 name: string;
154 in: string;
155 description?: string;
156 required?: boolean;
157 deprecated?: boolean;
158 allowEmptyValue?: boolean;
159 style?: string;
160 explode?: boolean;
161 allowReserved?: boolean;
162 schema?: SchemaOrReference;
163 example?: Any;
164 examples?: ExamplesOrReferences;
165 content?: MediaTypes;
166 }
167 type ParameterOrReference = Parameter | Reference;
168 interface ParametersOrReferences {
169 [name: string]: ParameterOrReference;
170 }
171 interface PathItem {
172 $ref?: string;
173 summary?: string;
174 description?: string;
175 get?: Operation;
176 put?: Operation;
177 post?: Operation;
178 delete?: Operation;
179 options?: Operation;
180 head?: Operation;
181 patch?: Operation;
182 trace?: Operation;
183 servers?: Server[];
184 parameters?: ParameterOrReference[];
185 }
186 type PathItemOrReference = PathItem | Reference;
187 interface Paths {
188 [name: string]: PathItemOrReference;
189 }
190 interface Reference {
191 $ref: string;
192 }
193 interface RequestBodiesOrReferences {
194 [name: string]: RequestBodyOrReference;
195 }
196 interface RequestBody {
197 description?: string;
198 content: MediaTypes;
199 required?: boolean;
200 }
201 type RequestBodyOrReference = RequestBody | Reference;
202 interface Response {
203 description: string;
204 headers?: HeadersOrReferences;
205 content?: MediaTypes;
206 links?: LinksOrReferences;
207 }
208 type ResponseOrReference = Response | Reference;
209 interface ResponsesOrReferences {
210 [name: string]: ResponseOrReference;
211 }
212 type SchemaOrReference = JsonSchemaDraft07.SchemaObject | Reference;
213 interface SchemasOrReferences {
214 [name: string]: SchemaOrReference;
215 }
216 interface SecurityRequirement {
217 }
218 interface SecurityScheme {
219 type: string;
220 description?: string;
221 name?: string;
222 in?: string;
223 scheme?: string;
224 bearerFormat?: string;
225 flows?: OauthFlows;
226 openIdConnectUrl?: string;
227 }
228 type SecuritySchemeOrReference = SecurityScheme | Reference;
229 interface SecuritySchemesOrReferences {
230 [name: string]: SecuritySchemeOrReference;
231 }
232 interface Server {
233 url: string;
234 description?: string;
235 variables?: ServerVariables;
236 }
237 interface ServerVariable {
238 enum?: string[];
239 default: string;
240 description?: string;
241 }
242 interface ServerVariables {
243 [name: string]: ServerVariable;
244 }
245 type SpecificationExtension = null | number | boolean | string | unknown | any[];
246 interface Strings {
247 [name: string]: string;
248 }
249 interface Tag {
250 name: string;
251 description?: string;
252 externalDocs?: ExternalDocs;
253 }
254 interface Xml {
255 name?: string;
256 namespace?: string;
257 prefix?: string;
258 attribute?: boolean;
259 wrapped?: boolean;
260 }
261 }
262 }
263}