Files
swagger-ui/test/e2e-cypress/static/documents/features/oas3-one-of-any-of-example.yaml

207 lines
5.5 KiB
YAML

openapi: 3.0.3
info:
title: Example app
description: This is my test applicaiton
version: 1.0.0
contact:
name: John Doe
email: jonhdoe@contact.com
servers:
- url: https://dev.app.com/appApplicationName
description: DEV
paths:
/documentsWithCombineOneOf:
post:
description: ''
summary: Add a document - KO
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ModelPostDocumentOneOfCombineModelFile'
operationId: testOneOf
security:
- Basic: []
tags: []
responses:
'200':
$ref: '#/components/responses/Default'
/documentsWithCombineAnyOf:
post:
description: ''
summary: Add a document - KO
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ModelPostDocumentAnyOfCombineModelFile'
operationId: testAnyOf
security:
- Basic: []
tags: []
responses:
'200':
$ref: '#/components/responses/Default'
components:
schemas:
AbstractModelPostDocument:
type: object
properties:
title:
type: string
default: ''
maxLength: 64
example: NestedSchemaExample.pdf'
category:
type: string
pattern: ''
type:
type: string
description: Type depends on category
issuingApplicationId:
type: string
enum:
- App1
- App2
- App3
- App4
documentDate:
type: string
description: >-
Creation date of the document. Example : For ID card, it is the
issuing date of the card.
format: date
sharedWith:
type: array
items:
type: string
enum:
- CustomerPortal
- PartnerPortal
uniqueItems: true
minItems: 0
maxItems: 2
required:
- title
- category
- type
- documentDate
- file
ModelPostDocumentPolicy:
allOf:
- $ref: '#/components/schemas/AbstractModelPostDocument'
- type: object
properties:
policyNumber:
type: string
description: Policy Number
example: '132456'
minLength: 1
maxLength: 36
pattern: ''
description: Metadata for policy documents
required:
- policyNumber
ModelPostDocumentCustomer:
allOf:
- $ref: '#/components/schemas/AbstractModelPostDocument'
- type: object
properties:
customerNumber:
type: number
description: Customer Number
exclusiveMinimum: true
minimum: 0
exclusiveMaximum: true
maximum: 99999999999999
organisationName:
type: string
enum:
- Organisation1
- Organisation2
- Organisation3
description: Organisation Name
required:
- organisationName
- customerNumber
description: Metadata for Customer Documents
ModelPostDocumentInvoice:
allOf:
- $ref: '#/components/schemas/AbstractModelPostDocument'
- type: object
properties:
invoiceNumber:
type: string
description: Invoice Number
example: '132456'
minLength: 1
maxLength: 36
pattern: ''
amount:
type: number
example: 1234.56
description: Invoice Amount
description: Metadata for invoice documents
required:
- amount
- invoiceNumber
ModelPostDocumentOneOf:
oneOf:
- $ref: '#/components/schemas/ModelPostDocumentPolicy'
- $ref: '#/components/schemas/ModelPostDocumentCustomer'
- $ref: '#/components/schemas/ModelPostDocumentInvoice'
ModelFile:
type: object
properties:
content:
type: string
format: binary
required:
- content
ModelPostDocumentOneOfCombineModelFile:
allOf:
- $ref: '#/components/schemas/ModelFile'
- type: object
properties:
metadata:
$ref: '#/components/schemas/ModelPostDocumentOneOf'
required:
- metadata
ModelPostDocumentAnyOf:
anyOf:
- $ref: '#/components/schemas/ModelPostDocumentPolicy'
- $ref: '#/components/schemas/ModelPostDocumentCustomer'
- $ref: '#/components/schemas/ModelPostDocumentInvoice'
example:
title: ParentSchemaExample.pdf
category: Policy
type: Policy
issuingApplicationId: App1
documentDate: '2021-01-01'
sharedWith:
- CustomerPortal
policyNumber: '132456'
ModelPostDocumentAnyOfCombineModelFile:
allOf:
- $ref: '#/components/schemas/ModelFile'
- type: object
properties:
metadata:
$ref: '#/components/schemas/ModelPostDocumentAnyOf'
required:
- metadata
securitySchemes:
Basic:
type: http
scheme: basic
responses:
Default:
description: Not needed
headers: {}
content:
application/json:
schema:
type: string
description: not needed
tags: []