60 lines
No EOL
1.5 KiB
YAML
60 lines
No EOL
1.5 KiB
YAML
openapi: "3.0.3"
|
|
info:
|
|
title: Deep recursive cyclic refs example
|
|
version: "1.0"
|
|
paths:
|
|
/foo:
|
|
$ref: ./paths/foo.yml
|
|
components:
|
|
schemas:
|
|
FilterColumnIncludes:
|
|
type: object
|
|
properties:
|
|
$includes:
|
|
$ref: '#/components/schemas/FilterPredicate'
|
|
additionalProperties: false
|
|
maxProperties: 1
|
|
minProperties: 1
|
|
FilterPredicate:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/FilterValue'
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/FilterPredicate'
|
|
minLength: 1
|
|
- $ref: '#/components/schemas/FilterPredicateOp'
|
|
- $ref: '#/components/schemas/FilterPredicateRangeOp'
|
|
FilterPredicateOp:
|
|
type: object
|
|
properties:
|
|
$any:
|
|
oneOf:
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/FilterPredicate'
|
|
$none:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/FilterPredicate'
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/FilterPredicate'
|
|
additionalProperties: false
|
|
maxProperties: 1
|
|
minProperties: 1
|
|
FilterPredicateRangeOp:
|
|
type: object
|
|
properties:
|
|
$lt:
|
|
$ref: '#/components/schemas/FilterRangeValue'
|
|
additionalProperties: false
|
|
maxProperties: 2
|
|
minProperties: 2
|
|
FilterRangeValue:
|
|
oneOf:
|
|
- type: number
|
|
- type: string
|
|
FilterValue:
|
|
oneOf:
|
|
- type: number
|
|
- type: string
|
|
- type: boolean |