@vng-api/openvtb-berichten 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/openapi.json +421 -0
- package/openapi.yaml +306 -0
- package/package.json +31 -0
package/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# @vng-api/openvtb-berichten
|
|
2
|
+
|
|
3
|
+
Gebundelde OpenAPI-specificatie voor **Berichten API** (versie 0.1.0), uit [VNG-Realisatie/Interactie-APIs](https://github.com/VNG-Realisatie/Interactie-APIs).
|
|
4
|
+
|
|
5
|
+
```js
|
|
6
|
+
const spec = require("@vng-api/openvtb-berichten"); // geparste openapi.json
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Ook beschikbaar als YAML: `@vng-api/openvtb-berichten/openapi.yaml`.
|
|
10
|
+
|
|
11
|
+
Bron: `apis/rest/openvtb-berichten/v0.1.0.yaml` — externe `$ref`s naar `schemas/` en `patterns/` zijn ge-inlined.
|
package/openapi.json
ADDED
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.3",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Berichten API",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"description": "De berichten-service bestaat uit een beschrijving van afspraken, standaarden en referentiecomponenten aangevuld met interactiepatronen, ontwerpbesluiten en aanbevelingen. Het Berichten-patroon biedt een gestandaardiseerde, flexibele oplossing voor de communicatie tussen inwoners, ondernemers en gemeenten via digitale kanalen. Met dit patroon kunnen berichten eenvoudig geregistreerd worden en door verschillende applicaties worden opgehaald, weergegeven en verwerkt. In tegenstelling tot traditionele berichtgevingen (zoals e-mail), zijn berichten centraal geregistreerd en kunnen ze eenvoudig getoond en gerelateerd worden naast zaken, taken of producten binnen het gemeentelijke landschap. \n\n**URN Pattern**\n\nOpen VTB uses URNs (Uniform Resource Names) to link to other resources, below is a description of the pattern that should be used.\n\n**Syntax:**\n\n`urn:<NID>:<NSS>[#<f-component>]`\n\n**Parts:**\n\n- `urn:` (required): fixed prefix for all URNs, every URN must start with this prefix.\n- `NID` (required): Namespace Identifier: alphanumeric characters, e.g. `nld`.\n- `NSS` (required): Namespace Specific String identifying the object, e.g. `brp:bsn:111222333`.\n- `f-component` (optional): Optional component preceded by `#`, e.g. `#section1`.\n\n**Examples:**\n\n`urn:namespace:component:resource:uuid`, `urn:example:foo#bar`\n\nFor more information, see the official specification: https://datatracker.ietf.org/doc/html/rfc8141\n",
|
|
7
|
+
"contact": {
|
|
8
|
+
"email": "standaarden.ondersteuning@vng.nl",
|
|
9
|
+
"name": "VNG",
|
|
10
|
+
"url": "https://zaakgerichtwerken.vng.cloud"
|
|
11
|
+
},
|
|
12
|
+
"license": {
|
|
13
|
+
"name": "EUPL 1.2",
|
|
14
|
+
"url": "https://opensource.org/licenses/EUPL-1.2"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"paths": {
|
|
18
|
+
"/berichten": {
|
|
19
|
+
"get": {
|
|
20
|
+
"operationId": "berichtenList",
|
|
21
|
+
"description": "Vraag alle berichten aan.",
|
|
22
|
+
"summary": "Vraag alle berichten aan.",
|
|
23
|
+
"parameters": [
|
|
24
|
+
{
|
|
25
|
+
"name": "page",
|
|
26
|
+
"required": false,
|
|
27
|
+
"in": "query",
|
|
28
|
+
"description": "Een pagina binnen de gepagineerde set resultaten.",
|
|
29
|
+
"schema": {
|
|
30
|
+
"type": "integer"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "pageSize",
|
|
35
|
+
"required": false,
|
|
36
|
+
"in": "query",
|
|
37
|
+
"description": "Het aantal resultaten terug te geven per pagina. (default: 100, maximum: 500).",
|
|
38
|
+
"schema": {
|
|
39
|
+
"type": "integer"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"tags": [
|
|
44
|
+
"berichten"
|
|
45
|
+
],
|
|
46
|
+
"security": [
|
|
47
|
+
{
|
|
48
|
+
"OpenID": []
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"tokenAuth": []
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"responses": {
|
|
55
|
+
"200": {
|
|
56
|
+
"headers": {
|
|
57
|
+
"API-version": {
|
|
58
|
+
"schema": {
|
|
59
|
+
"type": "string"
|
|
60
|
+
},
|
|
61
|
+
"description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1."
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"content": {
|
|
65
|
+
"application/json": {
|
|
66
|
+
"schema": {
|
|
67
|
+
"$ref": "#/components/schemas/PaginatedBerichtList"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"description": ""
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"post": {
|
|
76
|
+
"operationId": "berichtenCreate",
|
|
77
|
+
"description": "Maak een bericht aan.",
|
|
78
|
+
"summary": "Maak een bericht aan.",
|
|
79
|
+
"tags": [
|
|
80
|
+
"berichten"
|
|
81
|
+
],
|
|
82
|
+
"requestBody": {
|
|
83
|
+
"content": {
|
|
84
|
+
"application/json": {
|
|
85
|
+
"schema": {
|
|
86
|
+
"$ref": "#/components/schemas/Bericht"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"required": true
|
|
91
|
+
},
|
|
92
|
+
"security": [
|
|
93
|
+
{
|
|
94
|
+
"OpenID": []
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"tokenAuth": []
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"responses": {
|
|
101
|
+
"201": {
|
|
102
|
+
"headers": {
|
|
103
|
+
"API-version": {
|
|
104
|
+
"schema": {
|
|
105
|
+
"type": "string"
|
|
106
|
+
},
|
|
107
|
+
"description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1."
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"content": {
|
|
111
|
+
"application/json": {
|
|
112
|
+
"schema": {
|
|
113
|
+
"$ref": "#/components/schemas/Bericht"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"description": ""
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"/berichten/{uuid}": {
|
|
123
|
+
"get": {
|
|
124
|
+
"operationId": "berichtenRetrieve",
|
|
125
|
+
"description": "Een specifiek bericht opvragen.",
|
|
126
|
+
"summary": "Een specifiek bericht opvragen.",
|
|
127
|
+
"parameters": [
|
|
128
|
+
{
|
|
129
|
+
"in": "path",
|
|
130
|
+
"name": "uuid",
|
|
131
|
+
"schema": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"format": "uuid",
|
|
134
|
+
"description": "Unieke identificatiecode (UUID4) voor het Bericht."
|
|
135
|
+
},
|
|
136
|
+
"required": true
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"tags": [
|
|
140
|
+
"berichten"
|
|
141
|
+
],
|
|
142
|
+
"security": [
|
|
143
|
+
{
|
|
144
|
+
"OpenID": []
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"tokenAuth": []
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"responses": {
|
|
151
|
+
"200": {
|
|
152
|
+
"headers": {
|
|
153
|
+
"API-version": {
|
|
154
|
+
"schema": {
|
|
155
|
+
"type": "string"
|
|
156
|
+
},
|
|
157
|
+
"description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1."
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"content": {
|
|
161
|
+
"application/json": {
|
|
162
|
+
"schema": {
|
|
163
|
+
"$ref": "#/components/schemas/Bericht"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"description": ""
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"patch": {
|
|
172
|
+
"operationId": "berichtenPartialUpdate",
|
|
173
|
+
"description": "Werk het veld 'geopendOp' van een bericht bij.",
|
|
174
|
+
"summary": "Werk het veld 'geopendOp' van een bericht bij.",
|
|
175
|
+
"parameters": [
|
|
176
|
+
{
|
|
177
|
+
"in": "path",
|
|
178
|
+
"name": "uuid",
|
|
179
|
+
"schema": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"format": "uuid",
|
|
182
|
+
"description": "Unieke identificatiecode (UUID4) voor het Bericht."
|
|
183
|
+
},
|
|
184
|
+
"required": true
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"tags": [
|
|
188
|
+
"berichten"
|
|
189
|
+
],
|
|
190
|
+
"requestBody": {
|
|
191
|
+
"content": {
|
|
192
|
+
"application/json": {
|
|
193
|
+
"schema": {
|
|
194
|
+
"$ref": "#/components/schemas/PatchedBerichtGeopendOp"
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"security": [
|
|
200
|
+
{
|
|
201
|
+
"OpenID": []
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"tokenAuth": []
|
|
205
|
+
}
|
|
206
|
+
],
|
|
207
|
+
"responses": {
|
|
208
|
+
"200": {
|
|
209
|
+
"headers": {
|
|
210
|
+
"API-version": {
|
|
211
|
+
"schema": {
|
|
212
|
+
"type": "string"
|
|
213
|
+
},
|
|
214
|
+
"description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1."
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"content": {
|
|
218
|
+
"application/json": {
|
|
219
|
+
"schema": {
|
|
220
|
+
"$ref": "#/components/schemas/Bericht"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"description": ""
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"components": {
|
|
231
|
+
"schemas": {
|
|
232
|
+
"Bericht": {
|
|
233
|
+
"type": "object",
|
|
234
|
+
"properties": {
|
|
235
|
+
"url": {
|
|
236
|
+
"type": "string",
|
|
237
|
+
"format": "uri",
|
|
238
|
+
"readOnly": true,
|
|
239
|
+
"description": "De unieke URL van het Bericht binnen deze API.",
|
|
240
|
+
"minLength": 1,
|
|
241
|
+
"maxLength": 1000
|
|
242
|
+
},
|
|
243
|
+
"urn": {
|
|
244
|
+
"type": "string",
|
|
245
|
+
"format": "urn",
|
|
246
|
+
"example": "urn:namespace:component:resource:uuid",
|
|
247
|
+
"readOnly": true,
|
|
248
|
+
"description": "De Uniform Resource Name van het Bericht."
|
|
249
|
+
},
|
|
250
|
+
"uuid": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"format": "uuid",
|
|
253
|
+
"readOnly": true,
|
|
254
|
+
"description": "Unieke identificatiecode (UUID4) voor het Bericht."
|
|
255
|
+
},
|
|
256
|
+
"onderwerp": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"description": "Onderwerp van het bericht.",
|
|
259
|
+
"maxLength": 50
|
|
260
|
+
},
|
|
261
|
+
"berichtTekst": {
|
|
262
|
+
"type": "string",
|
|
263
|
+
"description": "Tekst van het bericht. URLs worden altijd weergegeven als klikbare URLs op alle portalen. Voor portalen van lokale overheden is de basic syntax van Markdown toegestaan, voor de Mijn Overheid berichtenbox enkel newlines (\\r\\n).",
|
|
264
|
+
"maxLength": 4000
|
|
265
|
+
},
|
|
266
|
+
"publicatiedatum": {
|
|
267
|
+
"type": "string",
|
|
268
|
+
"format": "date-time",
|
|
269
|
+
"nullable": true,
|
|
270
|
+
"description": "Datum/tijd waarop bericht zichtbaar moet worden voor de ontvanger. Dit geldt voor zowel de Mijn Overheid berichtenbox als het portaal van de lokale overheid. De standaardwaarde is de huidige datum/tijd."
|
|
271
|
+
},
|
|
272
|
+
"referentie": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"description": "Zenderreferentie / interne referentie.",
|
|
275
|
+
"maxLength": 25
|
|
276
|
+
},
|
|
277
|
+
"ontvanger": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"format": "urn",
|
|
280
|
+
"example": "urn:namespace:component:resource:uuid",
|
|
281
|
+
"description": "URN van een NATUURLIJK PERSOON of NIET-NATUURLIJK PERSOON. Bijvoorbeeld: `urn:nld:brp:bsn:111222333`, `urn:nld:hr:kvknummer:444555666` of `urn:nld:hr:kvknummer:444555666:vestigingsnummer:777888999`",
|
|
282
|
+
"pattern": "^urn:[A-Za-z0-9](?:[A-Za-z0-9]|-){0,30}[A-Za-z0-9]:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/)*(?:\\?\\+(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\\?)*)?(?:\\?=(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\\?)*)?(?:#(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\\?)*)?$",
|
|
283
|
+
"maxLength": 255
|
|
284
|
+
},
|
|
285
|
+
"geopendOp": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"format": "date-time",
|
|
288
|
+
"nullable": true,
|
|
289
|
+
"description": "Het bericht is door de geadresseerde geopend op dit tijdstip in het portaal van de lokale overheid. Deze waarde is onafhankelijk Mijn Overheid."
|
|
290
|
+
},
|
|
291
|
+
"berichtType": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"description": "Een code voor het technisch identificeren van een bericht soort & origine. Wordt ook gebruikt in de Mijn Overheid berichtenbox.",
|
|
294
|
+
"maxLength": 8
|
|
295
|
+
},
|
|
296
|
+
"handelingsPerspectief": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"description": "De door de toegewezen persoon of bedrijf uit te voeren handeling. Bijvoorbeeld: `lezen`, `naleveren`, `invullen`.",
|
|
299
|
+
"maxLength": 50
|
|
300
|
+
},
|
|
301
|
+
"einddatumHandelingsTermijn": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"format": "date-time",
|
|
304
|
+
"nullable": true,
|
|
305
|
+
"description": "Datum/tijd waarop handeling afgerond moet zijn."
|
|
306
|
+
},
|
|
307
|
+
"mijnOverheidBerichtenbox": {
|
|
308
|
+
"type": "boolean",
|
|
309
|
+
"description": "Geeft aan of dit bericht geschikt is voor publicatie in de MijnOverheid Berichtenbox. Als dit op ``False`` staat, is het bericht niet bedoeld voor publicatie in de Berichtenbox."
|
|
310
|
+
},
|
|
311
|
+
"bijlagen": {
|
|
312
|
+
"type": "array",
|
|
313
|
+
"items": {
|
|
314
|
+
"$ref": "#/components/schemas/Bijlage"
|
|
315
|
+
},
|
|
316
|
+
"description": "Lijst van bijlagen bij het bericht. Let op; In het geval dat dit bericht naar de Mijn Overheid Berichtenbox moet, moet rekening gehouden worden met de requirements van Logius in haar technische aansluithandleiding."
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
"required": [
|
|
320
|
+
"berichtTekst",
|
|
321
|
+
"mijnOverheidBerichtenbox",
|
|
322
|
+
"onderwerp",
|
|
323
|
+
"ontvanger",
|
|
324
|
+
"url",
|
|
325
|
+
"urn",
|
|
326
|
+
"uuid"
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
"Bijlage": {
|
|
330
|
+
"type": "object",
|
|
331
|
+
"properties": {
|
|
332
|
+
"informatieObject": {
|
|
333
|
+
"type": "string",
|
|
334
|
+
"format": "urn",
|
|
335
|
+
"example": "urn:namespace:component:resource:uuid",
|
|
336
|
+
"description": "URN naar het ENKELVOUDIGINFORMATIEOBJECT. Bijvoorbeeld: `urn:nld:gemeenteutrecht:informatieobject:uuid:717815f6-1939-4fd2-93f0-83d25bad154e`",
|
|
337
|
+
"pattern": "^urn:[A-Za-z0-9](?:[A-Za-z0-9]|-){0,30}[A-Za-z0-9]:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/)*(?:\\?\\+(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\\?)*)?(?:\\?=(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\\?)*)?(?:#(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\\?)*)?$",
|
|
338
|
+
"maxLength": 255
|
|
339
|
+
},
|
|
340
|
+
"omschrijving": {
|
|
341
|
+
"type": "string",
|
|
342
|
+
"description": "Een korte omschrijving of de titel van de bijlage. Deze wordt typisch getoond in een portaal.",
|
|
343
|
+
"maxLength": 40
|
|
344
|
+
},
|
|
345
|
+
"isBerichtTypeBijlage": {
|
|
346
|
+
"type": "boolean",
|
|
347
|
+
"default": false,
|
|
348
|
+
"description": "Geeft aan of dit document een standaardbijlage is die vooraf geüpload is in het Berichtenbox Leveranciersportaal. Standaard `false`. Indien `true` moet deze bijlage door het outputmanagementcomponent genegeerd worden - als de Berichtenbox het doelkanaal is."
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"required": [
|
|
352
|
+
"informatieObject"
|
|
353
|
+
]
|
|
354
|
+
},
|
|
355
|
+
"PaginatedBerichtList": {
|
|
356
|
+
"type": "object",
|
|
357
|
+
"required": [
|
|
358
|
+
"count",
|
|
359
|
+
"results"
|
|
360
|
+
],
|
|
361
|
+
"properties": {
|
|
362
|
+
"count": {
|
|
363
|
+
"type": "integer",
|
|
364
|
+
"example": 123
|
|
365
|
+
},
|
|
366
|
+
"next": {
|
|
367
|
+
"type": "string",
|
|
368
|
+
"nullable": true,
|
|
369
|
+
"format": "uri",
|
|
370
|
+
"example": "http://api.example.org/accounts/?page=4"
|
|
371
|
+
},
|
|
372
|
+
"previous": {
|
|
373
|
+
"type": "string",
|
|
374
|
+
"nullable": true,
|
|
375
|
+
"format": "uri",
|
|
376
|
+
"example": "http://api.example.org/accounts/?page=2"
|
|
377
|
+
},
|
|
378
|
+
"results": {
|
|
379
|
+
"type": "array",
|
|
380
|
+
"items": {
|
|
381
|
+
"$ref": "#/components/schemas/Bericht"
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"PatchedBerichtGeopendOp": {
|
|
387
|
+
"type": "object",
|
|
388
|
+
"properties": {
|
|
389
|
+
"geopendOp": {
|
|
390
|
+
"type": "string",
|
|
391
|
+
"format": "date-time",
|
|
392
|
+
"nullable": true,
|
|
393
|
+
"description": "Het bericht is door de geadresseerde geopend op dit tijdstip in het portaal van de lokale overheid. Deze waarde is onafhankelijk Mijn Overheid."
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"securitySchemes": {
|
|
399
|
+
"OpenID": {
|
|
400
|
+
"type": "openIdConnect",
|
|
401
|
+
"openIdConnectUrl": "https://example.com/.well-known/openid-configuration"
|
|
402
|
+
},
|
|
403
|
+
"tokenAuth": {
|
|
404
|
+
"type": "apiKey",
|
|
405
|
+
"in": "header",
|
|
406
|
+
"name": "Authorization",
|
|
407
|
+
"description": "Token-based authentication with required prefix \"Token\""
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"servers": [
|
|
412
|
+
{
|
|
413
|
+
"url": "/berichten/api/v1"
|
|
414
|
+
}
|
|
415
|
+
],
|
|
416
|
+
"tags": [
|
|
417
|
+
{
|
|
418
|
+
"name": "berichten"
|
|
419
|
+
}
|
|
420
|
+
]
|
|
421
|
+
}
|
package/openapi.yaml
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
openapi: 3.0.3
|
|
2
|
+
info:
|
|
3
|
+
title: Berichten API
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
description: |
|
|
6
|
+
De berichten-service bestaat uit een beschrijving van afspraken, standaarden en referentiecomponenten aangevuld met interactiepatronen, ontwerpbesluiten en aanbevelingen. Het Berichten-patroon biedt een gestandaardiseerde, flexibele oplossing voor de communicatie tussen inwoners, ondernemers en gemeenten via digitale kanalen. Met dit patroon kunnen berichten eenvoudig geregistreerd worden en door verschillende applicaties worden opgehaald, weergegeven en verwerkt. In tegenstelling tot traditionele berichtgevingen (zoals e-mail), zijn berichten centraal geregistreerd en kunnen ze eenvoudig getoond en gerelateerd worden naast zaken, taken of producten binnen het gemeentelijke landschap.
|
|
7
|
+
|
|
8
|
+
**URN Pattern**
|
|
9
|
+
|
|
10
|
+
Open VTB uses URNs (Uniform Resource Names) to link to other resources, below is a description of the pattern that should be used.
|
|
11
|
+
|
|
12
|
+
**Syntax:**
|
|
13
|
+
|
|
14
|
+
`urn:<NID>:<NSS>[#<f-component>]`
|
|
15
|
+
|
|
16
|
+
**Parts:**
|
|
17
|
+
|
|
18
|
+
- `urn:` (required): fixed prefix for all URNs, every URN must start with this prefix.
|
|
19
|
+
- `NID` (required): Namespace Identifier: alphanumeric characters, e.g. `nld`.
|
|
20
|
+
- `NSS` (required): Namespace Specific String identifying the object, e.g. `brp:bsn:111222333`.
|
|
21
|
+
- `f-component` (optional): Optional component preceded by `#`, e.g. `#section1`.
|
|
22
|
+
|
|
23
|
+
**Examples:**
|
|
24
|
+
|
|
25
|
+
`urn:namespace:component:resource:uuid`, `urn:example:foo#bar`
|
|
26
|
+
|
|
27
|
+
For more information, see the official specification: https://datatracker.ietf.org/doc/html/rfc8141
|
|
28
|
+
contact:
|
|
29
|
+
email: standaarden.ondersteuning@vng.nl
|
|
30
|
+
name: VNG
|
|
31
|
+
url: https://zaakgerichtwerken.vng.cloud
|
|
32
|
+
license:
|
|
33
|
+
name: EUPL 1.2
|
|
34
|
+
url: https://opensource.org/licenses/EUPL-1.2
|
|
35
|
+
paths:
|
|
36
|
+
/berichten:
|
|
37
|
+
get:
|
|
38
|
+
operationId: berichtenList
|
|
39
|
+
description: Vraag alle berichten aan.
|
|
40
|
+
summary: Vraag alle berichten aan.
|
|
41
|
+
parameters:
|
|
42
|
+
- name: page
|
|
43
|
+
required: false
|
|
44
|
+
in: query
|
|
45
|
+
description: Een pagina binnen de gepagineerde set resultaten.
|
|
46
|
+
schema:
|
|
47
|
+
type: integer
|
|
48
|
+
- name: pageSize
|
|
49
|
+
required: false
|
|
50
|
+
in: query
|
|
51
|
+
description: 'Het aantal resultaten terug te geven per pagina. (default: 100, maximum: 500).'
|
|
52
|
+
schema:
|
|
53
|
+
type: integer
|
|
54
|
+
tags:
|
|
55
|
+
- berichten
|
|
56
|
+
security:
|
|
57
|
+
- OpenID: []
|
|
58
|
+
- tokenAuth: []
|
|
59
|
+
responses:
|
|
60
|
+
'200':
|
|
61
|
+
headers:
|
|
62
|
+
API-version:
|
|
63
|
+
schema:
|
|
64
|
+
type: string
|
|
65
|
+
description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
|
|
66
|
+
content:
|
|
67
|
+
application/json:
|
|
68
|
+
schema:
|
|
69
|
+
$ref: '#/components/schemas/PaginatedBerichtList'
|
|
70
|
+
description: ''
|
|
71
|
+
post:
|
|
72
|
+
operationId: berichtenCreate
|
|
73
|
+
description: Maak een bericht aan.
|
|
74
|
+
summary: Maak een bericht aan.
|
|
75
|
+
tags:
|
|
76
|
+
- berichten
|
|
77
|
+
requestBody:
|
|
78
|
+
content:
|
|
79
|
+
application/json:
|
|
80
|
+
schema:
|
|
81
|
+
$ref: '#/components/schemas/Bericht'
|
|
82
|
+
required: true
|
|
83
|
+
security:
|
|
84
|
+
- OpenID: []
|
|
85
|
+
- tokenAuth: []
|
|
86
|
+
responses:
|
|
87
|
+
'201':
|
|
88
|
+
headers:
|
|
89
|
+
API-version:
|
|
90
|
+
schema:
|
|
91
|
+
type: string
|
|
92
|
+
description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
|
|
93
|
+
content:
|
|
94
|
+
application/json:
|
|
95
|
+
schema:
|
|
96
|
+
$ref: '#/components/schemas/Bericht'
|
|
97
|
+
description: ''
|
|
98
|
+
/berichten/{uuid}:
|
|
99
|
+
get:
|
|
100
|
+
operationId: berichtenRetrieve
|
|
101
|
+
description: Een specifiek bericht opvragen.
|
|
102
|
+
summary: Een specifiek bericht opvragen.
|
|
103
|
+
parameters:
|
|
104
|
+
- in: path
|
|
105
|
+
name: uuid
|
|
106
|
+
schema:
|
|
107
|
+
type: string
|
|
108
|
+
format: uuid
|
|
109
|
+
description: Unieke identificatiecode (UUID4) voor het Bericht.
|
|
110
|
+
required: true
|
|
111
|
+
tags:
|
|
112
|
+
- berichten
|
|
113
|
+
security:
|
|
114
|
+
- OpenID: []
|
|
115
|
+
- tokenAuth: []
|
|
116
|
+
responses:
|
|
117
|
+
'200':
|
|
118
|
+
headers:
|
|
119
|
+
API-version:
|
|
120
|
+
schema:
|
|
121
|
+
type: string
|
|
122
|
+
description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
|
|
123
|
+
content:
|
|
124
|
+
application/json:
|
|
125
|
+
schema:
|
|
126
|
+
$ref: '#/components/schemas/Bericht'
|
|
127
|
+
description: ''
|
|
128
|
+
patch:
|
|
129
|
+
operationId: berichtenPartialUpdate
|
|
130
|
+
description: Werk het veld 'geopendOp' van een bericht bij.
|
|
131
|
+
summary: Werk het veld 'geopendOp' van een bericht bij.
|
|
132
|
+
parameters:
|
|
133
|
+
- in: path
|
|
134
|
+
name: uuid
|
|
135
|
+
schema:
|
|
136
|
+
type: string
|
|
137
|
+
format: uuid
|
|
138
|
+
description: Unieke identificatiecode (UUID4) voor het Bericht.
|
|
139
|
+
required: true
|
|
140
|
+
tags:
|
|
141
|
+
- berichten
|
|
142
|
+
requestBody:
|
|
143
|
+
content:
|
|
144
|
+
application/json:
|
|
145
|
+
schema:
|
|
146
|
+
$ref: '#/components/schemas/PatchedBerichtGeopendOp'
|
|
147
|
+
security:
|
|
148
|
+
- OpenID: []
|
|
149
|
+
- tokenAuth: []
|
|
150
|
+
responses:
|
|
151
|
+
'200':
|
|
152
|
+
headers:
|
|
153
|
+
API-version:
|
|
154
|
+
schema:
|
|
155
|
+
type: string
|
|
156
|
+
description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
|
|
157
|
+
content:
|
|
158
|
+
application/json:
|
|
159
|
+
schema:
|
|
160
|
+
$ref: '#/components/schemas/Bericht'
|
|
161
|
+
description: ''
|
|
162
|
+
components:
|
|
163
|
+
schemas:
|
|
164
|
+
Bericht:
|
|
165
|
+
type: object
|
|
166
|
+
properties:
|
|
167
|
+
url:
|
|
168
|
+
type: string
|
|
169
|
+
format: uri
|
|
170
|
+
readOnly: true
|
|
171
|
+
description: De unieke URL van het Bericht binnen deze API.
|
|
172
|
+
minLength: 1
|
|
173
|
+
maxLength: 1000
|
|
174
|
+
urn:
|
|
175
|
+
type: string
|
|
176
|
+
format: urn
|
|
177
|
+
example: urn:namespace:component:resource:uuid
|
|
178
|
+
readOnly: true
|
|
179
|
+
description: De Uniform Resource Name van het Bericht.
|
|
180
|
+
uuid:
|
|
181
|
+
type: string
|
|
182
|
+
format: uuid
|
|
183
|
+
readOnly: true
|
|
184
|
+
description: Unieke identificatiecode (UUID4) voor het Bericht.
|
|
185
|
+
onderwerp:
|
|
186
|
+
type: string
|
|
187
|
+
description: Onderwerp van het bericht.
|
|
188
|
+
maxLength: 50
|
|
189
|
+
berichtTekst:
|
|
190
|
+
type: string
|
|
191
|
+
description: Tekst van het bericht. URLs worden altijd weergegeven als klikbare URLs op alle portalen. Voor portalen van lokale overheden is de basic syntax van Markdown toegestaan, voor de Mijn Overheid berichtenbox enkel newlines (\r\n).
|
|
192
|
+
maxLength: 4000
|
|
193
|
+
publicatiedatum:
|
|
194
|
+
type: string
|
|
195
|
+
format: date-time
|
|
196
|
+
nullable: true
|
|
197
|
+
description: Datum/tijd waarop bericht zichtbaar moet worden voor de ontvanger. Dit geldt voor zowel de Mijn Overheid berichtenbox als het portaal van de lokale overheid. De standaardwaarde is de huidige datum/tijd.
|
|
198
|
+
referentie:
|
|
199
|
+
type: string
|
|
200
|
+
description: Zenderreferentie / interne referentie.
|
|
201
|
+
maxLength: 25
|
|
202
|
+
ontvanger:
|
|
203
|
+
type: string
|
|
204
|
+
format: urn
|
|
205
|
+
example: urn:namespace:component:resource:uuid
|
|
206
|
+
description: 'URN van een NATUURLIJK PERSOON of NIET-NATUURLIJK PERSOON. Bijvoorbeeld: `urn:nld:brp:bsn:111222333`, `urn:nld:hr:kvknummer:444555666` of `urn:nld:hr:kvknummer:444555666:vestigingsnummer:777888999`'
|
|
207
|
+
pattern: ^urn:[A-Za-z0-9](?:[A-Za-z0-9]|-){0,30}[A-Za-z0-9]:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/)*(?:\?\+(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\?)*)?(?:\?=(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\?)*)?(?:#(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
|
|
208
|
+
maxLength: 255
|
|
209
|
+
geopendOp:
|
|
210
|
+
type: string
|
|
211
|
+
format: date-time
|
|
212
|
+
nullable: true
|
|
213
|
+
description: Het bericht is door de geadresseerde geopend op dit tijdstip in het portaal van de lokale overheid. Deze waarde is onafhankelijk Mijn Overheid.
|
|
214
|
+
berichtType:
|
|
215
|
+
type: string
|
|
216
|
+
description: Een code voor het technisch identificeren van een bericht soort & origine. Wordt ook gebruikt in de Mijn Overheid berichtenbox.
|
|
217
|
+
maxLength: 8
|
|
218
|
+
handelingsPerspectief:
|
|
219
|
+
type: string
|
|
220
|
+
description: 'De door de toegewezen persoon of bedrijf uit te voeren handeling. Bijvoorbeeld: `lezen`, `naleveren`, `invullen`.'
|
|
221
|
+
maxLength: 50
|
|
222
|
+
einddatumHandelingsTermijn:
|
|
223
|
+
type: string
|
|
224
|
+
format: date-time
|
|
225
|
+
nullable: true
|
|
226
|
+
description: Datum/tijd waarop handeling afgerond moet zijn.
|
|
227
|
+
mijnOverheidBerichtenbox:
|
|
228
|
+
type: boolean
|
|
229
|
+
description: Geeft aan of dit bericht geschikt is voor publicatie in de MijnOverheid Berichtenbox. Als dit op ``False`` staat, is het bericht niet bedoeld voor publicatie in de Berichtenbox.
|
|
230
|
+
bijlagen:
|
|
231
|
+
type: array
|
|
232
|
+
items:
|
|
233
|
+
$ref: '#/components/schemas/Bijlage'
|
|
234
|
+
description: Lijst van bijlagen bij het bericht. Let op; In het geval dat dit bericht naar de Mijn Overheid Berichtenbox moet, moet rekening gehouden worden met de requirements van Logius in haar technische aansluithandleiding.
|
|
235
|
+
required:
|
|
236
|
+
- berichtTekst
|
|
237
|
+
- mijnOverheidBerichtenbox
|
|
238
|
+
- onderwerp
|
|
239
|
+
- ontvanger
|
|
240
|
+
- url
|
|
241
|
+
- urn
|
|
242
|
+
- uuid
|
|
243
|
+
Bijlage:
|
|
244
|
+
type: object
|
|
245
|
+
properties:
|
|
246
|
+
informatieObject:
|
|
247
|
+
type: string
|
|
248
|
+
format: urn
|
|
249
|
+
example: urn:namespace:component:resource:uuid
|
|
250
|
+
description: 'URN naar het ENKELVOUDIGINFORMATIEOBJECT. Bijvoorbeeld: `urn:nld:gemeenteutrecht:informatieobject:uuid:717815f6-1939-4fd2-93f0-83d25bad154e`'
|
|
251
|
+
pattern: ^urn:[A-Za-z0-9](?:[A-Za-z0-9]|-){0,30}[A-Za-z0-9]:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/)*(?:\?\+(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\?)*)?(?:\?=(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\?)*)?(?:#(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])(?:(?:[A-Za-z0-9]|[-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
|
|
252
|
+
maxLength: 255
|
|
253
|
+
omschrijving:
|
|
254
|
+
type: string
|
|
255
|
+
description: Een korte omschrijving of de titel van de bijlage. Deze wordt typisch getoond in een portaal.
|
|
256
|
+
maxLength: 40
|
|
257
|
+
isBerichtTypeBijlage:
|
|
258
|
+
type: boolean
|
|
259
|
+
default: false
|
|
260
|
+
description: Geeft aan of dit document een standaardbijlage is die vooraf geüpload is in het Berichtenbox Leveranciersportaal. Standaard `false`. Indien `true` moet deze bijlage door het outputmanagementcomponent genegeerd worden - als de Berichtenbox het doelkanaal is.
|
|
261
|
+
required:
|
|
262
|
+
- informatieObject
|
|
263
|
+
PaginatedBerichtList:
|
|
264
|
+
type: object
|
|
265
|
+
required:
|
|
266
|
+
- count
|
|
267
|
+
- results
|
|
268
|
+
properties:
|
|
269
|
+
count:
|
|
270
|
+
type: integer
|
|
271
|
+
example: 123
|
|
272
|
+
next:
|
|
273
|
+
type: string
|
|
274
|
+
nullable: true
|
|
275
|
+
format: uri
|
|
276
|
+
example: http://api.example.org/accounts/?page=4
|
|
277
|
+
previous:
|
|
278
|
+
type: string
|
|
279
|
+
nullable: true
|
|
280
|
+
format: uri
|
|
281
|
+
example: http://api.example.org/accounts/?page=2
|
|
282
|
+
results:
|
|
283
|
+
type: array
|
|
284
|
+
items:
|
|
285
|
+
$ref: '#/components/schemas/Bericht'
|
|
286
|
+
PatchedBerichtGeopendOp:
|
|
287
|
+
type: object
|
|
288
|
+
properties:
|
|
289
|
+
geopendOp:
|
|
290
|
+
type: string
|
|
291
|
+
format: date-time
|
|
292
|
+
nullable: true
|
|
293
|
+
description: Het bericht is door de geadresseerde geopend op dit tijdstip in het portaal van de lokale overheid. Deze waarde is onafhankelijk Mijn Overheid.
|
|
294
|
+
securitySchemes:
|
|
295
|
+
OpenID:
|
|
296
|
+
type: openIdConnect
|
|
297
|
+
openIdConnectUrl: https://example.com/.well-known/openid-configuration
|
|
298
|
+
tokenAuth:
|
|
299
|
+
type: apiKey
|
|
300
|
+
in: header
|
|
301
|
+
name: Authorization
|
|
302
|
+
description: Token-based authentication with required prefix "Token"
|
|
303
|
+
servers:
|
|
304
|
+
- url: /berichten/api/v1
|
|
305
|
+
tags:
|
|
306
|
+
- name: berichten
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vng-api/openvtb-berichten",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "OpenAPI-specificatie voor Berichten API — De berichten-service bestaat uit een beschrijving van afspraken, standaarden en referentiecomponenten aangevuld met interactiepatronen, ontwerpbesluiten en aanbevelingen. Het Berichten-patroon biedt een gesta",
|
|
5
|
+
"main": "openapi.json",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./openapi.json",
|
|
8
|
+
"./openapi.json": "./openapi.json",
|
|
9
|
+
"./openapi.yaml": "./openapi.yaml"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"openapi.yaml",
|
|
13
|
+
"openapi.json",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"keywords": [
|
|
17
|
+
"openapi",
|
|
18
|
+
"vng",
|
|
19
|
+
"api",
|
|
20
|
+
"openvtb-berichten"
|
|
21
|
+
],
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/VNG-Realisatie/Interactie-APIs.git",
|
|
25
|
+
"directory": "apis/rest/openvtb-berichten"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://github.com/VNG-Realisatie/Interactie-APIs",
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
}
|
|
31
|
+
}
|