@@ -262,19 +262,29 @@ export namespace OpenAPIV3 {
262
262
| 'string'
263
263
| 'integer' ;
264
264
export type ArraySchemaObjectType = 'array' ;
265
- export type SchemaObject = ArraySchemaObject | NonArraySchemaObject ;
266
265
267
- export interface ArraySchemaObject extends BaseSchemaObject {
268
- type : ArraySchemaObjectType ;
266
+ export type SchemaObject = ArraySchemaObject | NonArraySchemaObject | CompositionSchemaObject ;
267
+
268
+ export interface ArraySchemaObject extends BaseSchemaObject < ArraySchemaObjectType > {
269
269
items : ReferenceObject | SchemaObject ;
270
270
}
271
271
272
- export interface NonArraySchemaObject extends BaseSchemaObject {
273
- type : NonArraySchemaObjectType ;
272
+ export interface NonArraySchemaObject extends BaseSchemaObject < NonArraySchemaObjectType > {
274
273
}
275
274
276
- interface BaseSchemaObject {
275
+ export interface CompositionSchemaObject extends BaseSchemaObject < undefined > {
277
276
// JSON schema allowed properties, adjusted for OpenAPI
277
+ allOf ?: Array < ReferenceObject | SchemaObject > ;
278
+ oneOf ?: Array < ReferenceObject | SchemaObject > ;
279
+ anyOf ?: Array < ReferenceObject | SchemaObject > ;
280
+ not ?: ReferenceObject | SchemaObject ;
281
+ // OpenAPI-specific properties
282
+ discriminator ?: DiscriminatorObject ;
283
+ }
284
+
285
+ interface BaseSchemaObject < T > {
286
+ // JSON schema allowed properties, adjusted for OpenAPI
287
+ type ?: T ;
278
288
title ?: string ;
279
289
description ?: string ;
280
290
format ?: string ;
@@ -298,14 +308,9 @@ export namespace OpenAPIV3 {
298
308
properties ?: {
299
309
[ name : string ] : ReferenceObject | SchemaObject ;
300
310
} ;
301
- allOf ?: Array < ReferenceObject | SchemaObject > ;
302
- oneOf ?: Array < ReferenceObject | SchemaObject > ;
303
- anyOf ?: Array < ReferenceObject | SchemaObject > ;
304
- not ?: ReferenceObject | SchemaObject ;
305
311
306
312
// OpenAPI-specific properties
307
313
nullable ?: boolean ;
308
- discriminator ?: DiscriminatorObject ;
309
314
readOnly ?: boolean ;
310
315
writeOnly ?: boolean ;
311
316
xml ?: XMLObject ;
0 commit comments