207 lines
5.5 KiB
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: []
|