Skip to content

Instantly share code, notes, and snippets.

@StephanMeijer
Created May 3, 2023 12:22
Show Gist options
  • Save StephanMeijer/c0fff32d93dc9f40da01850e74347ac5 to your computer and use it in GitHub Desktop.
Save StephanMeijer/c0fff32d93dc9f40da01850e74347ac5 to your computer and use it in GitHub Desktop.
openapi: 3.0.3
info:
title: Rule Engine API
version: 2.0.2
description: The Rule Engine (Validation) API for the NLdoc Publicatietool.
contact:
name: Toegang voor Iedereen
url: https://www.toegangvooriedereen.nl/
license:
name: European Union Public License 1.2
url: https://spdx.org/licenses/EUPL-1.2.html
paths:
/validate:
post:
summary: >-
Validate Element Structure
(application/vnd.nldoc-elementstructure+json).
description: >-
This specific API only supports type
`application/vnd.nldoc-elementstructure+json`.
tags:
- Rule Engine
responses:
'200':
description: The validated Element Structure
content:
application/vnd.nldoc-elementstructure+json:
schema:
$ref: '#/components/schemas/PublicatietoolElementDocument'
example:
type: document
content: null
members:
- type: table
content: >-
<table><colgroup><col><col></colgroup><thead><tr><th
colspan="2"><strong>Onderwijer</strong></th></tr></thead><tbody><tr><td>MOOI
Deelname</td><td>[Lente
kerncentrale]</td></tr><tr><td>Banaan
spoorwegovergang</td><td>[Bevat
homeopatisch]</td></tr><tr><td>Beraad
klimaatbeheersing</td><td>[Plein
scheldpartij]</td></tr><tr><td>Beraadslaging</td><td><p>Verhaal
&amp; achtertuin
(KRAAI)</p></td></tr><tr><td>Uitstroom</td><td>Homeopatisch</td></tr><tr><td>Koningshuis
(stamppot &amp; kookboek)</td><td>Barmhartigheid bier
brandweer</td></tr><tr><td>Belemmeringëmei</td><td>Brandweervrouw
paal televisie - Zelfverrijking</td></tr><tr><td>Strand-
kiwi
bellemeringen</td></tr><tr><td>Rekenmachine</td></tr><tr><td>Zakenreis</td><td><p>Homeopatisch:</p><p>sigaret://sport.boon.zomer/OUDER/SPOORWEG/Kinderboerderij/nacht-schaar-kerstboom.gitaar</p><p><a><u>trappen://stamppotboerenkool.bord/veter-peer-hockey/banaan/penningmeester</u></a></p><p><a><u>gerecht://aansteker.levensstijl.wagen/geld-baan/geweldig/tijd-banaan-scheldpartij-huisartsenpost-stoffen-gevolg-klusjesman-maart-lijst-binnenkort-voorzitter-Filter-Terras-kreeft-Chocoladetaart#kustwachtcommunicatie</u></a></p><p><a><u>schroef://structuur.verzekering.veter/kist-heet/verdriet/penningmeester-pastoor-schoolplein-magie-hamer-filter-vergaderzaal-kofferbak-bouwvakker-communicatie-zaal-lucht-bloemen-openbaar-Oplaadpaal-Kreeft-Gebouw-graden-Rekeningnummer#September=Spijkeren</u></a></p></td></tr><tr><td>Aandelenmarkt</td><td>BOON
7223</td></tr></tbody></table>
attributes: {}
validation:
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: >-
table > tbody > tr:nth-child(10) > td:nth-child(2) >
p:nth-child(3) > a
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: >-
table > tbody > tr:nth-child(10) > td:nth-child(2) >
p:nth-child(4) > a
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: >-
table > tbody > tr:nth-child(10) > td:nth-child(2) >
p:nth-child(5) > a
- type: text
content: >-
<p>Woord schiet snel brandweervrouw
sigarettenpeuk?</p><p>Schaar zelfverrijking brandweervrouw
adres verantwoording gerecht. <a><u>Drie Sausje leven vier
lijst draai vlug efficient Huisartsenpost miljoen</u></a>.
Leden accu bestuursfunctie grijs lucht BLAUW bestuur
museum structuur.</p><p><u><a>HUT</a>boekenkast bank nest
rekeningnummer ambacht</u> <u>april koek peer boon
brandweerman boeken, zaal nacht</u> <u>paal fundament</u>
<u>bevat rust kwalificatie kiwi.</u> Konijnenvoer niet
bezwaar: verhaal bewzwaarlijk loterij hockey ambachtelijk
krant bruin lijn educatie?</p><p>Emotie draai bank gebit
voortzetting gebit winkel natuurkundig, sigaret gebit
beschuldiging geel plein zakenreis? Lijst azijn voet troep
rekening lente. Voet woorden familiebedrijf oranje gebit
<a>winkel stof angst pinpas pracht muis leidinggevende
liniaal, geweer tand tabak ooievaar voorloper</a>.</p>
attributes: {}
validation:
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: p:nth-child(2) > a
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: p:nth-child(3) > u:nth-child(1) > a
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: p:nth-child(4) > a
- type: title
validation: []
attributes: {}
content: Zakelijk fles woord vliegensvlug?
- type: text
content: >-
<p>Patat familiebedrijf peer afscheid aanstekers banaan
geloof april meer troep misdadigheid miljoen. Broek
huisartsenpost muikant rauw dirigent brood snel
zonnepanelen banaan kreeft tankstation verantwoording.</p>
attributes: {}
validation: []
- type: heading
content: ''
validation: []
attributes:
level: 1
- type: heading
content: >-
Ongelukje stop tuin lichaamstaal internet brood
vergadering?
validation: []
attributes:
level: 1
- type: text
content: >-
<p>Patat professioneel voortzetting excuseer zolder
vriendelijke oranje. Cocktail feestdag week’bos
kattenstaart kennis rekeninghouder dinsdag. Groen augustus
bord pinpas bril stop klimaatregeling lijst vlaag LEEUW
lucht banket pracht familiebedrijf miljoen hockey ring
dinsdag. Paal levensverwachting schroefje kaas wolk
inzichtelijk troep tomatenplant. Schroeven gebied
gitaarles licht BAAN Andijvie spoorweg vinger zakdoek
koffer. Terras vlaag pinda wijze verantwoording pincode
kraai boek kattenbak batterij taart broer vijf zomer
factuurbedrag politieagent oranje.</p><p><strong>Zwart
bier:</strong> twee muziek concentratie vriend warm
tuinman vergunningen tien familiebedrijf zonnetje woning
kansspelen voetbalwedstrijdje. Twee espresso geld leiding
beschuldiging levensstijl trap aandelenmarkt straf. Sausje
schaar frikandel klimaat appel gloed, muts lokaal
rekeninghouder paars vier roze zwakte leeuw éékoe leeftijd
competentie. Wodka mies tunnel plastic? Donderdag rood
lijst boon pistool doos auteur loodwaar espresso stop
lucht genootschap, voet bestuur kraag lucht plein
behoefte.</p>
attributes: {}
validation: []
- type: heading
content: Woord sportieveling
validation: []
attributes:
level: 1
- type: text
content: >-
<p>Traag hockey meer fles hockey natuur gloed
huisartsenpost draai adres politieagent?</p>
attributes: {}
validation: []
- type: heading
content: ''
validation: []
attributes:
level: 1
- type: heading
content: Krokodilëspel gehoorapparaat
validation: []
attributes:
level: 1
- type: text
content: >-
<p><a><u>SCHOEN – Gebied fantastisch
verlangen</u></a></p><p><a><strong>WIJZE – Kwaliteit
woensdag</strong></a></p>
attributes: {}
validation:
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: p:nth-child(1) > a
- severity: error
message: Attribute href is required on <a>
identifier: attribute-href-required-on-html-element
selector: p:nth-child(2) > a
- severity: warning
message: >-
Please make use of interpunction at the end of every
paragraph.
identifier: paragraph-should-have-proper-interpunction
selector: p:nth-child(1)
- severity: warning
message: >-
Please make use of interpunction at the end of every
paragraph.
identifier: paragraph-should-have-proper-interpunction
selector: p:nth-child(2)
attributes:
assets: []
validation: []
'400':
description: '**Bad Request:** request body is invalid or not in JSON format.'
content:
application/json:
schema:
type: object
properties:
statusCode:
type: integer
enum:
- 400
example: 400
error:
type: string
enum:
- Bad Request
example: Bad Request
message:
type: string
examples:
- Invalid request payload input
- Invalid request payload JSON format
required:
- statusCode
- error
- message
additionalProperties: false
description: >-
**Bad Request:** request body is invalid or not in JSON
format.
'415':
description: >-
**Unsupported Media Type:** request did not include proper
Content-Type header.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: integer
enum:
- 415
example: 415
error:
type: string
enum:
- Unsupported Media Type
example: Unsupported Media Type
message:
type: string
example: Unsupported Media Type
required:
- statusCode
- error
- message
additionalProperties: false
description: >-
**Unsupported Media Type:** request did not include proper
Content-Type header.
requestBody:
description: Example of request
required: true
content:
application/vnd.nldoc-elementstructure+json:
schema:
$ref: '#/components/schemas/PublicatietoolElementDocument'
example:
type: document
content: null
members:
- type: table
content: >-
<table><colgroup><col><col></colgroup><thead><tr><th
colspan="2"><strong>Onderwijer</strong></th></tr></thead><tbody><tr><td>MOOI
Deelname</td><td>[Lente
kerncentrale]</td></tr><tr><td>Banaan
spoorwegovergang</td><td>[Bevat
homeopatisch]</td></tr><tr><td>Beraad
klimaatbeheersing</td><td>[Plein
scheldpartij]</td></tr><tr><td>Beraadslaging</td><td><p>Verhaal
&amp; achtertuin
(KRAAI)</p></td></tr><tr><td>Uitstroom</td><td>Homeopatisch</td></tr><tr><td>Koningshuis
(stamppot &amp; kookboek)</td><td>Barmhartigheid bier
brandweer</td></tr><tr><td>Belemmeringëmei</td><td>Brandweervrouw
paal televisie - Zelfverrijking</td></tr><tr><td>Strand-
kiwi
bellemeringen</td></tr><tr><td>Rekenmachine</td></tr><tr><td>Zakenreis</td><td><p>Homeopatisch:</p><p>sigaret://sport.boon.zomer/OUDER/SPOORWEG/Kinderboerderij/nacht-schaar-kerstboom.gitaar</p><p><a><u>trappen://stamppotboerenkool.bord/veter-peer-hockey/banaan/penningmeester</u></a></p><p><a><u>gerecht://aansteker.levensstijl.wagen/geld-baan/geweldig/tijd-banaan-scheldpartij-huisartsenpost-stoffen-gevolg-klusjesman-maart-lijst-binnenkort-voorzitter-Filter-Terras-kreeft-Chocoladetaart#kustwachtcommunicatie</u></a></p><p><a><u>schroef://structuur.verzekering.veter/kist-heet/verdriet/penningmeester-pastoor-schoolplein-magie-hamer-filter-vergaderzaal-kofferbak-bouwvakker-communicatie-zaal-lucht-bloemen-openbaar-Oplaadpaal-Kreeft-Gebouw-graden-Rekeningnummer#September=Spijkeren</u></a></p></td></tr><tr><td>Aandelenmarkt</td><td>BOON
7223</td></tr></tbody></table>
attributes: {}
validation: []
- type: text
content: >-
<p>Woord schiet snel brandweervrouw
sigarettenpeuk?</p><p>Schaar zelfverrijking brandweervrouw
adres verantwoording gerecht. <a><u>Drie Sausje leven vier
lijst draai vlug efficient Huisartsenpost miljoen</u></a>.
Leden accu bestuursfunctie grijs lucht BLAUW bestuur museum
structuur.</p><p><u><a>HUT</a>boekenkast bank nest
rekeningnummer ambacht</u> <u>april koek peer boon
brandweerman boeken, zaal nacht</u> <u>paal fundament</u>
<u>bevat rust kwalificatie kiwi.</u> Konijnenvoer niet
bezwaar: verhaal bewzwaarlijk loterij hockey ambachtelijk
krant bruin lijn educatie?</p><p>Emotie draai bank gebit
voortzetting gebit winkel natuurkundig, sigaret gebit
beschuldiging geel plein zakenreis? Lijst azijn voet troep
rekening lente. Voet woorden familiebedrijf oranje gebit
<a>winkel stof angst pinpas pracht muis leidinggevende
liniaal, geweer tand tabak ooievaar voorloper</a>.</p>
attributes: {}
validation: []
- type: title
validation: []
attributes: {}
content: Zakelijk fles woord vliegensvlug?
- type: text
content: >-
<p>Patat familiebedrijf peer afscheid aanstekers banaan
geloof april meer troep misdadigheid miljoen. Broek
huisartsenpost muikant rauw dirigent brood snel zonnepanelen
banaan kreeft tankstation verantwoording.</p>
attributes: {}
validation: []
- type: heading
content: ''
validation: []
attributes:
level: 1
- type: heading
content: Ongelukje stop tuin lichaamstaal internet brood vergadering?
validation: []
attributes:
level: 1
- type: text
content: >-
<p>Patat professioneel voortzetting excuseer zolder
vriendelijke oranje. Cocktail feestdag week’bos kattenstaart
kennis rekeninghouder dinsdag. Groen augustus bord pinpas
bril stop klimaatregeling lijst vlaag LEEUW lucht banket
pracht familiebedrijf miljoen hockey ring dinsdag. Paal
levensverwachting schroefje kaas wolk inzichtelijk troep
tomatenplant. Schroeven gebied gitaarles licht BAAN Andijvie
spoorweg vinger zakdoek koffer. Terras vlaag pinda wijze
verantwoording pincode kraai boek kattenbak batterij taart
broer vijf zomer factuurbedrag politieagent
oranje.</p><p><strong>Zwart bier:</strong> twee muziek
concentratie vriend warm tuinman vergunningen tien
familiebedrijf zonnetje woning kansspelen
voetbalwedstrijdje. Twee espresso geld leiding beschuldiging
levensstijl trap aandelenmarkt straf. Sausje schaar
frikandel klimaat appel gloed, muts lokaal rekeninghouder
paars vier roze zwakte leeuw éékoe leeftijd competentie.
Wodka mies tunnel plastic? Donderdag rood lijst boon pistool
doos auteur loodwaar espresso stop lucht genootschap, voet
bestuur kraag lucht plein behoefte.</p>
attributes: {}
validation: []
- type: heading
content: Woord sportieveling
validation: []
attributes:
level: 1
- type: text
content: >-
<p>Traag hockey meer fles hockey natuur gloed huisartsenpost
draai adres politieagent?</p>
attributes: {}
validation: []
- type: heading
content: ''
validation: []
attributes:
level: 1
- type: heading
content: Krokodilëspel gehoorapparaat
validation: []
attributes:
level: 1
- type: text
content: >-
<p><a><u>SCHOEN – Gebied fantastisch
verlangen</u></a></p><p><a><strong>WIJZE – Kwaliteit
woensdag</strong></a></p>
attributes: {}
validation: []
attributes:
assets: []
validation: []
components:
schemas:
Asset:
type: object
properties:
filename:
type: string
contentLocation:
type: string
required:
- filename
- contentLocation
additionalProperties: false
title: Asset
PublicatietoolElementDocument:
type: object
properties:
type:
type: string
enum:
- document
content:
type: string
nullable: true
members:
type: array
items:
anyOf:
- $ref: '#/components/schemas/PublicatietoolElementHeading'
- $ref: '#/components/schemas/PublicatietoolElementImage'
- $ref: '#/components/schemas/PublicatietoolElementListOrdered'
- $ref: '#/components/schemas/PublicatietoolElementListUnordered'
- $ref: '#/components/schemas/PublicatietoolElementQuotation'
- $ref: '#/components/schemas/PublicatietoolElementTable'
- $ref: '#/components/schemas/PublicatietoolElementText'
- $ref: '#/components/schemas/PublicatietoolElementTitle'
default: []
attributes:
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/Asset'
default: []
additionalProperties: false
default:
assets: []
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementDocument
PublicatietoolElementHeading:
type: object
properties:
type:
type: string
enum:
- heading
content:
type: string
nullable: true
attributes:
type: object
properties:
level:
type: integer
minimum: 1
required:
- level
additionalProperties: false
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
- attributes
additionalProperties: false
title: PublicatietoolElementHeading
PublicatietoolElementImage:
type: object
properties:
type:
type: string
enum:
- image
content:
type: string
nullable: true
attributes:
type: object
properties:
src:
type: string
nullable: true
alt:
type: string
nullable: true
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementImage
PublicatietoolElementListMember:
type: object
properties:
type:
type: string
enum:
- list-member
content:
type: string
nullable: true
attributes:
type: object
properties: {}
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementListMember
PublicatietoolElementListOrdered:
type: object
properties:
type:
type: string
enum:
- list-ordered
content:
type: string
nullable: true
members:
type: array
items:
$ref: '#/components/schemas/PublicatietoolElementListMember'
default: []
attributes:
type: object
properties:
styleType:
type: string
default: decimal
start:
type: integer
default: 1
reversed:
type: boolean
default: false
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementListOrdered
PublicatietoolElementListUnordered:
type: object
properties:
type:
type: string
enum:
- list-unordered
content:
type: string
nullable: true
members:
type: array
items:
$ref: '#/components/schemas/PublicatietoolElementListMember'
default: []
attributes:
type: object
properties:
styleType:
type: string
styleTypeCharacter:
type: string
oneOf:
- x-required: true
- {}
required:
- styleType
additionalProperties: false
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
- attributes
additionalProperties: false
title: PublicatietoolElementListUnordered
PublicatietoolElementQuotation:
type: object
properties:
type:
type: string
enum:
- quotation
content:
type: string
nullable: true
attributes:
type: object
properties: {}
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementQuotation
PublicatietoolElementTable:
type: object
properties:
type:
type: string
enum:
- table
content:
type: string
nullable: true
attributes:
type: object
properties: {}
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementTable
PublicatietoolElementText:
type: object
properties:
type:
type: string
enum:
- text
content:
type: string
nullable: true
attributes:
type: object
properties: {}
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementText
PublicatietoolElementTitle:
type: object
properties:
type:
type: string
enum:
- title
content:
type: string
nullable: true
attributes:
type: object
properties: {}
additionalProperties: false
default: {}
validation:
type: array
items:
$ref: '#/components/schemas/PublicatietoolValidationMessage'
default: []
required:
- type
additionalProperties: false
title: PublicatietoolElementTitle
PublicatietoolValidationMessage:
type: object
properties:
severity:
type: string
enum:
- internal
- info
- warning
- error
message:
type: string
identifier:
type: string
selector:
type: string
nullable: true
required:
- severity
- message
- identifier
additionalProperties: false
title: PublicatietoolValidationMessage
responses: {}
parameters: {}
examples: {}
requestBodies: {}
headers: {}
securitySchemes: {}
links: {}
callbacks: {}
tags: []
servers: []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment