@vng-api/openproduct-producten 1.6.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.
Files changed (4) hide show
  1. package/README.md +11 -0
  2. package/openapi.json +2504 -0
  3. package/openapi.yaml +1886 -0
  4. package/package.json +31 -0
package/openapi.yaml ADDED
@@ -0,0 +1,1886 @@
1
+ openapi: 3.0.3
2
+ info:
3
+ title: Producten API
4
+ version: 1.6.0
5
+ description: |+
6
+
7
+ Een API voor Producten.
8
+
9
+ De Producten API heeft 1 endpoint `producten`. Hiermee kunnen producten zelf, de bijbehorende eigenaren en documenten/zaken/taken worden aangemaakt.
10
+
11
+ ## Uitleg per resource
12
+
13
+ ### Product
14
+ Een product is een instantie van een producttype (zie producttypen API), in een product worden onder andere de gegevens van de eigenaar, de benodigde data voor het product en bijvoorbeeld de status vastgelegd.
15
+ Specifieke product data kan worden opgeslagen in de JSON velden `dataobject` en `verbruiksobject`. Deze velden worden gevalideerd door de `verbruiksobject_schema` & `dataobject_schema` velden van het producttype ([zie jsonschema](https://json-schema.org)).
16
+ De status van een product kan alleen worden veranderd naar de een van de `toegestane statussen` gedefineerd op het producttype.
17
+
18
+ ### Eigenaar
19
+ Aan een product kunnen één of meerdere eigenaren worden gelinkt. Een eigenaar kan een Klant/Partij (Klantinteracties API), natuurlijk of niet natuurlijke persoon zijn.
20
+
21
+ ### Document, Zaak, Taak
22
+ Een document is een verwijzing naar een `EnkelvoudigInformatieObject` uit de [documenten API](https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/).
23
+ Een zaak is een verwijzing naar een `Zaak` uit de [zaken API](https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/).
24
+ Taken is een verwijzingen naar taken uit externe API's.
25
+ Een verwijzing kan als een URN en/of URL worden opgeslagen waarna via URN_MAPPING_CONFIG de missende urn/url automatisch wordt ingevuld.
26
+
27
+ ---
28
+ *Zie de opmerkingen bij de endpoints voor verdere toelichting op specifieke velden.*
29
+
30
+ ### Notificaties
31
+
32
+ Deze API publiceert notificaties op het kanaal `producten`.
33
+
34
+ **Main resource**
35
+
36
+ `product`
37
+
38
+
39
+
40
+ **Kenmerken**
41
+
42
+ * `producttype.uuid`: uuid van het producttype
43
+ * `producttype.uniforme_product_naam`: Uniforme product naam gedefinieerd door de overheid.
44
+ * `producttype.code`: code van het producttype.
45
+
46
+ **Resources en acties**
47
+ - `product`: create, update, destroy
48
+
49
+
50
+
51
+ ### Autorisatie
52
+
53
+ Voor schrijfacties (POST, PUT, PATCH, DELETE) moet de user de juiste permissie hebben. Deze permissies zijn in te stellen in de Admin.
54
+ - CREATE: ``producten.add_product``
55
+ - UPDATE: ``producten.change_product``
56
+ - DELETE: ``producten.delete_product``
57
+
58
+ De producten endpoints worden daarnaast geautoriseerd via producttypen. Een user moet read/write permissies hebben om producten van een producttype te kunnen lezen/aanmaken/updaten of verwijderen.
59
+ Deze permissies zijn ook in te stellen in de Admin.
60
+
61
+
62
+ contact:
63
+ email: support@maykinmedia.nl
64
+ name: Maykin Media
65
+ url: https://www.maykinmedia.nl
66
+ license:
67
+ name: EUPL 1.2
68
+ url: https://opensource.org/licenses/EUPL-1.2
69
+ paths:
70
+ /producten:
71
+ get:
72
+ operationId: producten_list
73
+ description: Deze lijst kan gefilterd wordt met query-string parameters.
74
+ summary: Alle PRODUCTEN opvragen.
75
+ parameters:
76
+ - in: query
77
+ name: aanmaak_datum
78
+ schema:
79
+ type: string
80
+ format: date-time
81
+ description: De datum waarop het object is aangemaakt.
82
+ - in: query
83
+ name: aanmaak_datum__gte
84
+ schema:
85
+ type: string
86
+ format: date-time
87
+ description: De datum waarop het object is aangemaakt.
88
+ - in: query
89
+ name: aanmaak_datum__lte
90
+ schema:
91
+ type: string
92
+ format: date-time
93
+ description: De datum waarop het object is aangemaakt.
94
+ - in: query
95
+ name: aanvraag_zaak_url
96
+ schema:
97
+ type: string
98
+ description: De zaak waaruit dit product is ontstaan.
99
+ - in: query
100
+ name: aanvraag_zaak_url__contains
101
+ schema:
102
+ type: string
103
+ description: De zaak waaruit dit product is ontstaan.
104
+ - in: query
105
+ name: aanvraag_zaak_urn
106
+ schema:
107
+ type: string
108
+ description: De zaak waaruit dit product is ontstaan. (<organisatie>:<systeem>:<component>:<resource>:<identificatie>)
109
+ - in: query
110
+ name: aanvraag_zaak_urn__contains
111
+ schema:
112
+ type: string
113
+ description: De zaak waaruit dit product is ontstaan. (<organisatie>:<systeem>:<component>:<resource>:<identificatie>)
114
+ - in: query
115
+ name: dataobject_attr
116
+ schema:
117
+ type: string
118
+ description: |
119
+
120
+ Een json filter parameter heeft de format `key__operator__waarde`.
121
+ `key` is de naam van de attribuut, `operator` is de operator die gebruikt moet worden en `waarde` is de waarde waarop zal worden gezocht.
122
+
123
+ Waardes kunnen een string, nummer of datum (ISO format; YYYY-MM-DD) zijn.
124
+
125
+ De ondersteunde operators zijn:
126
+ * `exact` - gelijk aan
127
+ * `gt` - groter dan
128
+ * `gte` - groter dan of gelijk aan
129
+ * `lt` - kleiner dan
130
+ * `lte` - kleiner dan of gelijk aan
131
+ * `icontains` - hoofdletterongevoelige gedeeltelijke match
132
+ * `in` - in een lijst van waarden gescheiden door `|`
133
+
134
+ `key` mag ook geen komma's bevatten.
135
+
136
+ Voorbeeld: om producten met `kenteken`: `AA-111-B` in het dataobject vinden: `dataobject_attr=kenteken__exact__AA-111-B`.
137
+ Als `kenteken` genest zit in `auto`: `dataobject_attr=auto__kenteken__exact__AA-111-B`
138
+
139
+
140
+
141
+ Meerdere filters kunnen worden toegevoegd door `dataobject_attr` meerdere keren aan het request toe te voegen.
142
+ Bijvoorbeeld: `dataobject_attr=kenteken__exact__AA-111-B&objectdata_attr=zone__exact__B`
143
+ - in: query
144
+ name: documenten__url
145
+ schema:
146
+ type: string
147
+ - in: query
148
+ name: documenten__url__contains
149
+ schema:
150
+ type: string
151
+ - in: query
152
+ name: documenten__urn
153
+ schema:
154
+ type: string
155
+ - in: query
156
+ name: documenten__urn__contains
157
+ schema:
158
+ type: string
159
+ - in: query
160
+ name: eigenaren__bsn
161
+ schema:
162
+ type: string
163
+ description: Het BSN van de product eigenaar, BSN van 8 karakters moet met een extra 0 beginnen.
164
+ - in: query
165
+ name: eigenaren__klantnummer
166
+ schema:
167
+ type: string
168
+ description: generiek veld voor de identificatie van een klant of partij.
169
+ - in: query
170
+ name: eigenaren__kvk_nummer
171
+ schema:
172
+ type: string
173
+ description: Het kvk nummer van de product eigenaar
174
+ - in: query
175
+ name: eigenaren__uuid
176
+ schema:
177
+ type: string
178
+ format: uuid
179
+ - in: query
180
+ name: eigenaren__vestigingsnummer
181
+ schema:
182
+ type: string
183
+ description: Een korte unieke aanduiding van een vestiging.
184
+ - in: query
185
+ name: eind_datum
186
+ schema:
187
+ type: string
188
+ format: date
189
+ description: De einddatum van dit product. Op deze datum zal de status van het product automatisch naar VERLOPEN worden gezet. Op het moment dat de eind_datum wordt ingevuld moet de status VERLOPEN op het producttype zijn toegestaan.
190
+ - in: query
191
+ name: eind_datum__gte
192
+ schema:
193
+ type: string
194
+ format: date
195
+ description: De einddatum van dit product. Op deze datum zal de status van het product automatisch naar VERLOPEN worden gezet. Op het moment dat de eind_datum wordt ingevuld moet de status VERLOPEN op het producttype zijn toegestaan.
196
+ - in: query
197
+ name: eind_datum__lte
198
+ schema:
199
+ type: string
200
+ format: date
201
+ description: De einddatum van dit product. Op deze datum zal de status van het product automatisch naar VERLOPEN worden gezet. Op het moment dat de eind_datum wordt ingevuld moet de status VERLOPEN op het producttype zijn toegestaan.
202
+ - in: query
203
+ name: frequentie
204
+ schema:
205
+ type: string
206
+ title: Prijs frequentie
207
+ enum:
208
+ - eenmalig
209
+ - jaarlijks
210
+ - maandelijks
211
+ description: |-
212
+ De frequentie van betalingen.
213
+
214
+ * `eenmalig` - Eenmalig
215
+ * `maandelijks` - Maandelijks
216
+ * `jaarlijks` - Jaarlijks
217
+ - in: query
218
+ name: gepubliceerd
219
+ schema:
220
+ type: boolean
221
+ description: Geeft aan of het product getoond kan worden.
222
+ - in: query
223
+ name: naam
224
+ schema:
225
+ type: string
226
+ description: De naam van dit product.
227
+ - name: page
228
+ required: false
229
+ in: query
230
+ description: Een pagina binnen de gepagineerde set resultaten.
231
+ schema:
232
+ type: integer
233
+ - name: page_size
234
+ required: false
235
+ in: query
236
+ description: 'Het aantal resultaten terug te geven per pagina. (default: 100, maximum: 500).'
237
+ schema:
238
+ type: integer
239
+ - in: query
240
+ name: prijs
241
+ schema:
242
+ type: number
243
+ description: De prijs van het product.
244
+ - in: query
245
+ name: prijs__gte
246
+ schema:
247
+ type: number
248
+ description: De prijs van het product.
249
+ - in: query
250
+ name: prijs__lte
251
+ schema:
252
+ type: number
253
+ description: De prijs van het product.
254
+ - in: query
255
+ name: producttype__code
256
+ schema:
257
+ type: string
258
+ description: code van het producttype.
259
+ - in: query
260
+ name: producttype__code__in
261
+ schema:
262
+ type: array
263
+ items:
264
+ type: string
265
+ description: Meerdere waarden kunnen gescheiden worden door komma's.
266
+ explode: false
267
+ style: form
268
+ - in: query
269
+ name: producttype__gepubliceerd
270
+ schema:
271
+ type: boolean
272
+ - in: query
273
+ name: producttype__locaties__uuid
274
+ schema:
275
+ type: string
276
+ format: uuid
277
+ - in: query
278
+ name: producttype__naam
279
+ schema:
280
+ type: string
281
+ description: De Nederlandse naam van het producttype
282
+ - in: query
283
+ name: producttype__naam__icontains
284
+ schema:
285
+ type: string
286
+ description: De Nederlandse naam van het producttype
287
+ - in: query
288
+ name: producttype__naam__in
289
+ schema:
290
+ type: array
291
+ items:
292
+ type: string
293
+ description: De Nederlandse naam van het producttype
294
+ explode: false
295
+ style: form
296
+ - in: query
297
+ name: producttype__organisaties__code
298
+ schema:
299
+ type: string
300
+ description: code van de organisatie.
301
+ - in: query
302
+ name: producttype__organisaties__uuid
303
+ schema:
304
+ type: string
305
+ format: uuid
306
+ - in: query
307
+ name: producttype__themas__naam
308
+ schema:
309
+ type: string
310
+ description: Naam van het thema.
311
+ - in: query
312
+ name: producttype__themas__naam__in
313
+ schema:
314
+ type: array
315
+ items:
316
+ type: string
317
+ description: Lijst van thema namen waarop kan worden gezocht.
318
+ explode: false
319
+ style: form
320
+ - in: query
321
+ name: producttype__themas__uuid
322
+ schema:
323
+ type: string
324
+ format: uuid
325
+ - in: query
326
+ name: producttype__themas__uuid__in
327
+ schema:
328
+ type: array
329
+ items:
330
+ type: string
331
+ format: uuid
332
+ description: Lijst van thema uuids waarop kan worden gezocht.
333
+ explode: false
334
+ style: form
335
+ - in: query
336
+ name: producttype__uuid
337
+ schema:
338
+ type: string
339
+ format: uuid
340
+ - in: query
341
+ name: producttype__uuid__in
342
+ schema:
343
+ type: array
344
+ items:
345
+ type: string
346
+ format: uuid
347
+ description: Meerdere waarden kunnen gescheiden worden door komma's.
348
+ explode: false
349
+ style: form
350
+ - in: query
351
+ name: start_datum
352
+ schema:
353
+ type: string
354
+ format: date
355
+ description: De start datum van dit product. Op deze datum zal de status van het product automatisch naar ACTIEF worden gezet. Op het moment dat de start_datum wordt ingevuld moet de status ACTIEF op het producttype zijn toegestaan.
356
+ - in: query
357
+ name: start_datum__gte
358
+ schema:
359
+ type: string
360
+ format: date
361
+ description: De start datum van dit product. Op deze datum zal de status van het product automatisch naar ACTIEF worden gezet. Op het moment dat de start_datum wordt ingevuld moet de status ACTIEF op het producttype zijn toegestaan.
362
+ - in: query
363
+ name: start_datum__lte
364
+ schema:
365
+ type: string
366
+ format: date
367
+ description: De start datum van dit product. Op deze datum zal de status van het product automatisch naar ACTIEF worden gezet. Op het moment dat de start_datum wordt ingevuld moet de status ACTIEF op het producttype zijn toegestaan.
368
+ - in: query
369
+ name: status
370
+ schema:
371
+ type: string
372
+ enum:
373
+ - actief
374
+ - gereed
375
+ - geweigerd
376
+ - in_aanvraag
377
+ - ingetrokken
378
+ - initieel
379
+ - verlopen
380
+ description: |-
381
+ De status opties worden bepaald door het veld 'toegestane statussen' van het gerelateerde producttype. Via start & eind_datum kan de status automatisch naar ACTIEF of VERLOPEN worden gezet (mits deze statussen zijn toegestaan op het producttype).
382
+
383
+ * `initieel` - Initieel
384
+ * `in_aanvraag` - In aanvraag
385
+ * `gereed` - Gereed
386
+ * `actief` - Actief
387
+ * `ingetrokken` - Ingetrokken
388
+ * `geweigerd` - Geweigerd
389
+ * `verlopen` - Verlopen
390
+ - in: query
391
+ name: taken__url
392
+ schema:
393
+ type: string
394
+ - in: query
395
+ name: taken__url__contains
396
+ schema:
397
+ type: string
398
+ - in: query
399
+ name: taken__urn
400
+ schema:
401
+ type: string
402
+ - in: query
403
+ name: taken__urn__contains
404
+ schema:
405
+ type: string
406
+ - in: query
407
+ name: uniforme_product_naam
408
+ schema:
409
+ type: string
410
+ description: Uniforme product naam
411
+ - in: query
412
+ name: update_datum
413
+ schema:
414
+ type: string
415
+ format: date-time
416
+ description: De datum waarop het object voor het laatst is gewijzigd.
417
+ - in: query
418
+ name: update_datum__gte
419
+ schema:
420
+ type: string
421
+ format: date-time
422
+ description: De datum waarop het object voor het laatst is gewijzigd.
423
+ - in: query
424
+ name: update_datum__lte
425
+ schema:
426
+ type: string
427
+ format: date-time
428
+ description: De datum waarop het object voor het laatst is gewijzigd.
429
+ - in: query
430
+ name: verbruiksobject_attr
431
+ schema:
432
+ type: string
433
+ description: |
434
+
435
+ Een json filter parameter heeft de format `key__operator__waarde`.
436
+ `key` is de naam van de attribuut, `operator` is de operator die gebruikt moet worden en `waarde` is de waarde waarop zal worden gezocht.
437
+
438
+ Waardes kunnen een string, nummer of datum (ISO format; YYYY-MM-DD) zijn.
439
+
440
+ De ondersteunde operators zijn:
441
+ * `exact` - gelijk aan
442
+ * `gt` - groter dan
443
+ * `gte` - groter dan of gelijk aan
444
+ * `lt` - kleiner dan
445
+ * `lte` - kleiner dan of gelijk aan
446
+ * `icontains` - hoofdletterongevoelige gedeeltelijke match
447
+ * `in` - in een lijst van waarden gescheiden door `|`
448
+
449
+ `key` mag ook geen komma's bevatten.
450
+
451
+ Voorbeeld: om producten met `kenteken`: `AA-111-B` in het dataobject vinden: `dataobject_attr=kenteken__exact__AA-111-B`.
452
+ Als `kenteken` genest zit in `auto`: `dataobject_attr=auto__kenteken__exact__AA-111-B`
453
+
454
+
455
+
456
+ Meerdere filters kunnen worden toegevoegd door `dataobject_attr` meerdere keren aan het request toe te voegen.
457
+ Bijvoorbeeld: `dataobject_attr=kenteken__exact__AA-111-B&objectdata_attr=zone__exact__B`
458
+ - in: query
459
+ name: zaken__url
460
+ schema:
461
+ type: string
462
+ - in: query
463
+ name: zaken__url__contains
464
+ schema:
465
+ type: string
466
+ - in: query
467
+ name: zaken__urn
468
+ schema:
469
+ type: string
470
+ - in: query
471
+ name: zaken__urn__contains
472
+ schema:
473
+ type: string
474
+ tags:
475
+ - producten
476
+ security:
477
+ - OpenID: []
478
+ - tokenAuth: []
479
+ responses:
480
+ '200':
481
+ headers:
482
+ API-version:
483
+ schema:
484
+ type: string
485
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
486
+ content:
487
+ application/json:
488
+ schema:
489
+ $ref: '#/components/schemas/PaginatedProductList'
490
+ examples:
491
+ ProductResponse:
492
+ value:
493
+ count: 123
494
+ next: http://api.example.org/accounts/?page=4
495
+ previous: http://api.example.org/accounts/?page=2
496
+ results:
497
+ - uuid: da0df49a-cd71-4e24-9bae-5be8b01f2c36
498
+ url: https://gemeente.open-product.nl/producten/api/v0/producten/da0df49a-cd71-4e24-9bae-5be8b01f2c36
499
+ naam: 'verhuurvergunning: straatweg 14'
500
+ start_datum: '2024-12-01'
501
+ eind_datum: '2026-12-01'
502
+ aanmaak_datum: '2019-08-24T14:15:22Z'
503
+ update_datum: '2019-08-24T14:15:22Z'
504
+ producttype:
505
+ uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
506
+ code: 129380-A21231
507
+ keywords:
508
+ - auto
509
+ uniforme_product_naam: parkeervergunning
510
+ toegestane_statussen:
511
+ - gereed
512
+ gepubliceerd: true
513
+ aanmaak_datum: '2019-08-24T14:15:22Z'
514
+ update_datum: '2019-08-24T14:15:22Z'
515
+ themas:
516
+ - uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
517
+ naam: Parkeren
518
+ beschrijving: .....
519
+ gepubliceerd: true
520
+ aanmaak_datum: '2019-08-24T14:15:22Z'
521
+ update_datum: '2019-08-24T14:15:22Z'
522
+ hoofd_thema: 41ec14a8-ca7d-43a9-a4a8-46f9587c8d91
523
+ publicatie_start_datum: '2019-09-24'
524
+ publicatie_eind_datum: '2030-09-24'
525
+ gepubliceerd: true
526
+ eigenaren:
527
+ - uuid: 9de01697-7fc5-4113-803c-a8c9a8dad4f2
528
+ bsn: '111222333'
529
+ documenten:
530
+ - urn: urn:nld:maykin:openzaak:drc:document:uuid:99a8bd4f-4144-4105-9850-e477628852fc
531
+ url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
532
+ zaken:
533
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
534
+ url: https://gemeente-a.zgw.nl/zaken/eb188bea-51f2-44f0-8acc-eec1c710b4bf
535
+ taken:
536
+ - urn: urn:nld:maykin:openzaak:ttc:taak:uuid:cec996f4-2efa-4307-a035-32c2c9032e89
537
+ url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
538
+ status: gereed
539
+ prijs: '20.20'
540
+ frequentie: eenmalig
541
+ verbruiksobject:
542
+ uren: 130
543
+ dataobject:
544
+ max_uren: 150
545
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
546
+ aanvraag_zaak_url: https://maykin.ztc.com/zaken/d42613cd-ee22-4455-808c-c19c7b8442a2
547
+ summary: product response
548
+ description: ''
549
+ '400':
550
+ headers:
551
+ API-version:
552
+ schema:
553
+ type: string
554
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
555
+ content:
556
+ application/json:
557
+ schema:
558
+ $ref: '#/components/schemas/Error'
559
+ examples:
560
+ BadRequestExample:
561
+ value:
562
+ veld_a:
563
+ - Dit veld is vereist.
564
+ veld_b:
565
+ - ‘<uuid>’ is geen geldige UUID.
566
+ summary: Bad request example
567
+ description: Errors worden per veld teruggegeven. Hieronder volgt een voorbeeld.
568
+ description: Validation error
569
+ '403':
570
+ headers:
571
+ API-version:
572
+ schema:
573
+ type: string
574
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
575
+ content:
576
+ application/json:
577
+ schema:
578
+ $ref: '#/components/schemas/DetailError'
579
+ description: ''
580
+ post:
581
+ operationId: producten_create
582
+ summary: Maak een PRODUCT aan.
583
+ tags:
584
+ - producten
585
+ requestBody:
586
+ content:
587
+ application/json:
588
+ schema:
589
+ $ref: '#/components/schemas/ProductRequest'
590
+ examples:
591
+ ProductRequest:
592
+ value:
593
+ naam: 'verhuurvergunning: straatweg 14'
594
+ start_datum: '2024-12-01'
595
+ eind_datum: '2026-12-01'
596
+ producttype_uuid: 95792000-d57f-4d3a-b14c-c4c7aa964907
597
+ gepubliceerd: false
598
+ eigenaren:
599
+ - bsn: '111222333'
600
+ status: gereed
601
+ prijs: '20.20'
602
+ frequentie: eenmalig
603
+ verbruiksobject:
604
+ uren: 130
605
+ dataobject:
606
+ max_uren: 150
607
+ documenten:
608
+ - url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
609
+ zaken:
610
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
611
+ taken:
612
+ - url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
613
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
614
+ summary: product request
615
+ required: true
616
+ security:
617
+ - OpenID: []
618
+ - tokenAuth: []
619
+ responses:
620
+ '201':
621
+ headers:
622
+ API-version:
623
+ schema:
624
+ type: string
625
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
626
+ content:
627
+ application/json:
628
+ schema:
629
+ $ref: '#/components/schemas/Product'
630
+ examples:
631
+ ProductResponse:
632
+ value:
633
+ uuid: da0df49a-cd71-4e24-9bae-5be8b01f2c36
634
+ url: https://gemeente.open-product.nl/producten/api/v0/producten/da0df49a-cd71-4e24-9bae-5be8b01f2c36
635
+ naam: 'verhuurvergunning: straatweg 14'
636
+ start_datum: '2024-12-01'
637
+ eind_datum: '2026-12-01'
638
+ aanmaak_datum: '2019-08-24T14:15:22Z'
639
+ update_datum: '2019-08-24T14:15:22Z'
640
+ producttype:
641
+ uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
642
+ code: 129380-A21231
643
+ keywords:
644
+ - auto
645
+ uniforme_product_naam: parkeervergunning
646
+ toegestane_statussen:
647
+ - gereed
648
+ gepubliceerd: true
649
+ aanmaak_datum: '2019-08-24T14:15:22Z'
650
+ update_datum: '2019-08-24T14:15:22Z'
651
+ themas:
652
+ - uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
653
+ naam: Parkeren
654
+ beschrijving: .....
655
+ gepubliceerd: true
656
+ aanmaak_datum: '2019-08-24T14:15:22Z'
657
+ update_datum: '2019-08-24T14:15:22Z'
658
+ hoofd_thema: 41ec14a8-ca7d-43a9-a4a8-46f9587c8d91
659
+ publicatie_start_datum: '2019-09-24'
660
+ publicatie_eind_datum: '2030-09-24'
661
+ gepubliceerd: true
662
+ eigenaren:
663
+ - uuid: 9de01697-7fc5-4113-803c-a8c9a8dad4f2
664
+ bsn: '111222333'
665
+ documenten:
666
+ - urn: urn:nld:maykin:openzaak:drc:document:uuid:99a8bd4f-4144-4105-9850-e477628852fc
667
+ url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
668
+ zaken:
669
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
670
+ url: https://gemeente-a.zgw.nl/zaken/eb188bea-51f2-44f0-8acc-eec1c710b4bf
671
+ taken:
672
+ - urn: urn:nld:maykin:openzaak:ttc:taak:uuid:cec996f4-2efa-4307-a035-32c2c9032e89
673
+ url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
674
+ status: gereed
675
+ prijs: '20.20'
676
+ frequentie: eenmalig
677
+ verbruiksobject:
678
+ uren: 130
679
+ dataobject:
680
+ max_uren: 150
681
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
682
+ aanvraag_zaak_url: https://maykin.ztc.com/zaken/d42613cd-ee22-4455-808c-c19c7b8442a2
683
+ summary: product response
684
+ description: ''
685
+ '400':
686
+ headers:
687
+ API-version:
688
+ schema:
689
+ type: string
690
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
691
+ content:
692
+ application/json:
693
+ schema:
694
+ $ref: '#/components/schemas/Error'
695
+ examples:
696
+ BadRequestExample:
697
+ value:
698
+ veld_a:
699
+ - Dit veld is vereist.
700
+ veld_b:
701
+ - ‘<uuid>’ is geen geldige UUID.
702
+ summary: Bad request example
703
+ description: Errors worden per veld teruggegeven. Hieronder volgt een voorbeeld.
704
+ description: Validation error
705
+ '403':
706
+ headers:
707
+ API-version:
708
+ schema:
709
+ type: string
710
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
711
+ content:
712
+ application/json:
713
+ schema:
714
+ $ref: '#/components/schemas/DetailError'
715
+ description: ''
716
+ /producten/{uuid}:
717
+ get:
718
+ operationId: producten_retrieve
719
+ summary: Een specifiek PRODUCT opvragen.
720
+ parameters:
721
+ - in: path
722
+ name: uuid
723
+ schema:
724
+ type: string
725
+ format: uuid
726
+ required: true
727
+ tags:
728
+ - producten
729
+ security:
730
+ - OpenID: []
731
+ - tokenAuth: []
732
+ responses:
733
+ '200':
734
+ headers:
735
+ API-version:
736
+ schema:
737
+ type: string
738
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
739
+ content:
740
+ application/json:
741
+ schema:
742
+ $ref: '#/components/schemas/Product'
743
+ examples:
744
+ ProductResponse:
745
+ value:
746
+ uuid: da0df49a-cd71-4e24-9bae-5be8b01f2c36
747
+ url: https://gemeente.open-product.nl/producten/api/v0/producten/da0df49a-cd71-4e24-9bae-5be8b01f2c36
748
+ naam: 'verhuurvergunning: straatweg 14'
749
+ start_datum: '2024-12-01'
750
+ eind_datum: '2026-12-01'
751
+ aanmaak_datum: '2019-08-24T14:15:22Z'
752
+ update_datum: '2019-08-24T14:15:22Z'
753
+ producttype:
754
+ uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
755
+ code: 129380-A21231
756
+ keywords:
757
+ - auto
758
+ uniforme_product_naam: parkeervergunning
759
+ toegestane_statussen:
760
+ - gereed
761
+ gepubliceerd: true
762
+ aanmaak_datum: '2019-08-24T14:15:22Z'
763
+ update_datum: '2019-08-24T14:15:22Z'
764
+ themas:
765
+ - uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
766
+ naam: Parkeren
767
+ beschrijving: .....
768
+ gepubliceerd: true
769
+ aanmaak_datum: '2019-08-24T14:15:22Z'
770
+ update_datum: '2019-08-24T14:15:22Z'
771
+ hoofd_thema: 41ec14a8-ca7d-43a9-a4a8-46f9587c8d91
772
+ publicatie_start_datum: '2019-09-24'
773
+ publicatie_eind_datum: '2030-09-24'
774
+ gepubliceerd: true
775
+ eigenaren:
776
+ - uuid: 9de01697-7fc5-4113-803c-a8c9a8dad4f2
777
+ bsn: '111222333'
778
+ documenten:
779
+ - urn: urn:nld:maykin:openzaak:drc:document:uuid:99a8bd4f-4144-4105-9850-e477628852fc
780
+ url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
781
+ zaken:
782
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
783
+ url: https://gemeente-a.zgw.nl/zaken/eb188bea-51f2-44f0-8acc-eec1c710b4bf
784
+ taken:
785
+ - urn: urn:nld:maykin:openzaak:ttc:taak:uuid:cec996f4-2efa-4307-a035-32c2c9032e89
786
+ url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
787
+ status: gereed
788
+ prijs: '20.20'
789
+ frequentie: eenmalig
790
+ verbruiksobject:
791
+ uren: 130
792
+ dataobject:
793
+ max_uren: 150
794
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
795
+ aanvraag_zaak_url: https://maykin.ztc.com/zaken/d42613cd-ee22-4455-808c-c19c7b8442a2
796
+ summary: product response
797
+ description: ''
798
+ '400':
799
+ headers:
800
+ API-version:
801
+ schema:
802
+ type: string
803
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
804
+ content:
805
+ application/json:
806
+ schema:
807
+ $ref: '#/components/schemas/Error'
808
+ examples:
809
+ BadRequestExample:
810
+ value:
811
+ veld_a:
812
+ - Dit veld is vereist.
813
+ veld_b:
814
+ - ‘<uuid>’ is geen geldige UUID.
815
+ summary: Bad request example
816
+ description: Errors worden per veld teruggegeven. Hieronder volgt een voorbeeld.
817
+ description: Validation error
818
+ '403':
819
+ headers:
820
+ API-version:
821
+ schema:
822
+ type: string
823
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
824
+ content:
825
+ application/json:
826
+ schema:
827
+ $ref: '#/components/schemas/DetailError'
828
+ description: ''
829
+ put:
830
+ operationId: producten_update
831
+ summary: Werk een PRODUCT in zijn geheel bij.
832
+ parameters:
833
+ - in: path
834
+ name: uuid
835
+ schema:
836
+ type: string
837
+ format: uuid
838
+ required: true
839
+ tags:
840
+ - producten
841
+ requestBody:
842
+ content:
843
+ application/json:
844
+ schema:
845
+ $ref: '#/components/schemas/ProductRequest'
846
+ examples:
847
+ ProductRequest:
848
+ value:
849
+ naam: 'verhuurvergunning: straatweg 14'
850
+ start_datum: '2024-12-01'
851
+ eind_datum: '2026-12-01'
852
+ producttype_uuid: 95792000-d57f-4d3a-b14c-c4c7aa964907
853
+ gepubliceerd: false
854
+ eigenaren:
855
+ - bsn: '111222333'
856
+ status: gereed
857
+ prijs: '20.20'
858
+ frequentie: eenmalig
859
+ verbruiksobject:
860
+ uren: 130
861
+ dataobject:
862
+ max_uren: 150
863
+ documenten:
864
+ - url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
865
+ zaken:
866
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
867
+ taken:
868
+ - url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
869
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
870
+ summary: product request
871
+ required: true
872
+ security:
873
+ - OpenID: []
874
+ - tokenAuth: []
875
+ responses:
876
+ '200':
877
+ headers:
878
+ API-version:
879
+ schema:
880
+ type: string
881
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
882
+ content:
883
+ application/json:
884
+ schema:
885
+ $ref: '#/components/schemas/Product'
886
+ examples:
887
+ ProductResponse:
888
+ value:
889
+ uuid: da0df49a-cd71-4e24-9bae-5be8b01f2c36
890
+ url: https://gemeente.open-product.nl/producten/api/v0/producten/da0df49a-cd71-4e24-9bae-5be8b01f2c36
891
+ naam: 'verhuurvergunning: straatweg 14'
892
+ start_datum: '2024-12-01'
893
+ eind_datum: '2026-12-01'
894
+ aanmaak_datum: '2019-08-24T14:15:22Z'
895
+ update_datum: '2019-08-24T14:15:22Z'
896
+ producttype:
897
+ uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
898
+ code: 129380-A21231
899
+ keywords:
900
+ - auto
901
+ uniforme_product_naam: parkeervergunning
902
+ toegestane_statussen:
903
+ - gereed
904
+ gepubliceerd: true
905
+ aanmaak_datum: '2019-08-24T14:15:22Z'
906
+ update_datum: '2019-08-24T14:15:22Z'
907
+ themas:
908
+ - uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
909
+ naam: Parkeren
910
+ beschrijving: .....
911
+ gepubliceerd: true
912
+ aanmaak_datum: '2019-08-24T14:15:22Z'
913
+ update_datum: '2019-08-24T14:15:22Z'
914
+ hoofd_thema: 41ec14a8-ca7d-43a9-a4a8-46f9587c8d91
915
+ publicatie_start_datum: '2019-09-24'
916
+ publicatie_eind_datum: '2030-09-24'
917
+ gepubliceerd: true
918
+ eigenaren:
919
+ - uuid: 9de01697-7fc5-4113-803c-a8c9a8dad4f2
920
+ bsn: '111222333'
921
+ documenten:
922
+ - urn: urn:nld:maykin:openzaak:drc:document:uuid:99a8bd4f-4144-4105-9850-e477628852fc
923
+ url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
924
+ zaken:
925
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
926
+ url: https://gemeente-a.zgw.nl/zaken/eb188bea-51f2-44f0-8acc-eec1c710b4bf
927
+ taken:
928
+ - urn: urn:nld:maykin:openzaak:ttc:taak:uuid:cec996f4-2efa-4307-a035-32c2c9032e89
929
+ url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
930
+ status: gereed
931
+ prijs: '20.20'
932
+ frequentie: eenmalig
933
+ verbruiksobject:
934
+ uren: 130
935
+ dataobject:
936
+ max_uren: 150
937
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
938
+ aanvraag_zaak_url: https://maykin.ztc.com/zaken/d42613cd-ee22-4455-808c-c19c7b8442a2
939
+ summary: product response
940
+ description: ''
941
+ '400':
942
+ headers:
943
+ API-version:
944
+ schema:
945
+ type: string
946
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
947
+ content:
948
+ application/json:
949
+ schema:
950
+ $ref: '#/components/schemas/Error'
951
+ examples:
952
+ BadRequestExample:
953
+ value:
954
+ veld_a:
955
+ - Dit veld is vereist.
956
+ veld_b:
957
+ - ‘<uuid>’ is geen geldige UUID.
958
+ summary: Bad request example
959
+ description: Errors worden per veld teruggegeven. Hieronder volgt een voorbeeld.
960
+ description: Validation error
961
+ '403':
962
+ headers:
963
+ API-version:
964
+ schema:
965
+ type: string
966
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
967
+ content:
968
+ application/json:
969
+ schema:
970
+ $ref: '#/components/schemas/DetailError'
971
+ description: ''
972
+ patch:
973
+ operationId: producten_partial_update
974
+ summary: Werk een PRODUCT deels bij.
975
+ parameters:
976
+ - in: path
977
+ name: uuid
978
+ schema:
979
+ type: string
980
+ format: uuid
981
+ required: true
982
+ tags:
983
+ - producten
984
+ requestBody:
985
+ content:
986
+ application/json:
987
+ schema:
988
+ $ref: '#/components/schemas/PatchedProductRequest'
989
+ examples:
990
+ ProductRequest:
991
+ value:
992
+ naam: 'verhuurvergunning: straatweg 14'
993
+ start_datum: '2024-12-01'
994
+ eind_datum: '2026-12-01'
995
+ producttype_uuid: 95792000-d57f-4d3a-b14c-c4c7aa964907
996
+ gepubliceerd: false
997
+ eigenaren:
998
+ - bsn: '111222333'
999
+ status: gereed
1000
+ prijs: '20.20'
1001
+ frequentie: eenmalig
1002
+ verbruiksobject:
1003
+ uren: 130
1004
+ dataobject:
1005
+ max_uren: 150
1006
+ documenten:
1007
+ - url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
1008
+ zaken:
1009
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
1010
+ taken:
1011
+ - url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
1012
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
1013
+ summary: product request
1014
+ security:
1015
+ - OpenID: []
1016
+ - tokenAuth: []
1017
+ responses:
1018
+ '200':
1019
+ headers:
1020
+ API-version:
1021
+ schema:
1022
+ type: string
1023
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
1024
+ content:
1025
+ application/json:
1026
+ schema:
1027
+ $ref: '#/components/schemas/Product'
1028
+ examples:
1029
+ ProductResponse:
1030
+ value:
1031
+ uuid: da0df49a-cd71-4e24-9bae-5be8b01f2c36
1032
+ url: https://gemeente.open-product.nl/producten/api/v0/producten/da0df49a-cd71-4e24-9bae-5be8b01f2c36
1033
+ naam: 'verhuurvergunning: straatweg 14'
1034
+ start_datum: '2024-12-01'
1035
+ eind_datum: '2026-12-01'
1036
+ aanmaak_datum: '2019-08-24T14:15:22Z'
1037
+ update_datum: '2019-08-24T14:15:22Z'
1038
+ producttype:
1039
+ uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
1040
+ code: 129380-A21231
1041
+ keywords:
1042
+ - auto
1043
+ uniforme_product_naam: parkeervergunning
1044
+ toegestane_statussen:
1045
+ - gereed
1046
+ gepubliceerd: true
1047
+ aanmaak_datum: '2019-08-24T14:15:22Z'
1048
+ update_datum: '2019-08-24T14:15:22Z'
1049
+ themas:
1050
+ - uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08
1051
+ naam: Parkeren
1052
+ beschrijving: .....
1053
+ gepubliceerd: true
1054
+ aanmaak_datum: '2019-08-24T14:15:22Z'
1055
+ update_datum: '2019-08-24T14:15:22Z'
1056
+ hoofd_thema: 41ec14a8-ca7d-43a9-a4a8-46f9587c8d91
1057
+ publicatie_start_datum: '2019-09-24'
1058
+ publicatie_eind_datum: '2030-09-24'
1059
+ gepubliceerd: true
1060
+ eigenaren:
1061
+ - uuid: 9de01697-7fc5-4113-803c-a8c9a8dad4f2
1062
+ bsn: '111222333'
1063
+ documenten:
1064
+ - urn: urn:nld:maykin:openzaak:drc:document:uuid:99a8bd4f-4144-4105-9850-e477628852fc
1065
+ url: https://gemeente-a.zgw.nl/documenten/99a8bd4f-4144-4105-9850-e477628852fc
1066
+ zaken:
1067
+ - urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:eb188bea-51f2-44f0-8acc-eec1c710b4bf
1068
+ url: https://gemeente-a.zgw.nl/zaken/eb188bea-51f2-44f0-8acc-eec1c710b4bf
1069
+ taken:
1070
+ - urn: urn:nld:maykin:openzaak:ttc:taak:uuid:cec996f4-2efa-4307-a035-32c2c9032e89
1071
+ url: https://gemeente-a.zgw.nl/taken/cec996f4-2efa-4307-a035-32c2c9032e89
1072
+ status: gereed
1073
+ prijs: '20.20'
1074
+ frequentie: eenmalig
1075
+ verbruiksobject:
1076
+ uren: 130
1077
+ dataobject:
1078
+ max_uren: 150
1079
+ aanvraag_zaak_urn: urn:nld:maykin:openzaak:ztc:zaak:uuid:d42613cd-ee22-4455-808c-c19c7b8442a1
1080
+ aanvraag_zaak_url: https://maykin.ztc.com/zaken/d42613cd-ee22-4455-808c-c19c7b8442a2
1081
+ summary: product response
1082
+ description: ''
1083
+ '400':
1084
+ headers:
1085
+ API-version:
1086
+ schema:
1087
+ type: string
1088
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
1089
+ content:
1090
+ application/json:
1091
+ schema:
1092
+ $ref: '#/components/schemas/Error'
1093
+ examples:
1094
+ BadRequestExample:
1095
+ value:
1096
+ veld_a:
1097
+ - Dit veld is vereist.
1098
+ veld_b:
1099
+ - ‘<uuid>’ is geen geldige UUID.
1100
+ summary: Bad request example
1101
+ description: Errors worden per veld teruggegeven. Hieronder volgt een voorbeeld.
1102
+ description: Validation error
1103
+ '403':
1104
+ headers:
1105
+ API-version:
1106
+ schema:
1107
+ type: string
1108
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
1109
+ content:
1110
+ application/json:
1111
+ schema:
1112
+ $ref: '#/components/schemas/DetailError'
1113
+ description: ''
1114
+ delete:
1115
+ operationId: producten_destroy
1116
+ summary: Verwijder een PRODUCT.
1117
+ parameters:
1118
+ - in: path
1119
+ name: uuid
1120
+ schema:
1121
+ type: string
1122
+ format: uuid
1123
+ required: true
1124
+ tags:
1125
+ - producten
1126
+ security:
1127
+ - OpenID: []
1128
+ - tokenAuth: []
1129
+ responses:
1130
+ '204':
1131
+ headers:
1132
+ API-version:
1133
+ schema:
1134
+ type: string
1135
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
1136
+ description: No response body
1137
+ '400':
1138
+ headers:
1139
+ API-version:
1140
+ schema:
1141
+ type: string
1142
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
1143
+ content:
1144
+ application/json:
1145
+ schema:
1146
+ $ref: '#/components/schemas/Error'
1147
+ examples:
1148
+ BadRequestExample:
1149
+ value:
1150
+ veld_a:
1151
+ - Dit veld is vereist.
1152
+ veld_b:
1153
+ - ‘<uuid>’ is geen geldige UUID.
1154
+ summary: Bad request example
1155
+ description: Errors worden per veld teruggegeven. Hieronder volgt een voorbeeld.
1156
+ description: Validation error
1157
+ '403':
1158
+ headers:
1159
+ API-version:
1160
+ schema:
1161
+ type: string
1162
+ description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.'
1163
+ content:
1164
+ application/json:
1165
+ schema:
1166
+ $ref: '#/components/schemas/DetailError'
1167
+ description: ''
1168
+ components:
1169
+ schemas:
1170
+ BlankEnum:
1171
+ enum:
1172
+ - ''
1173
+ DetailError:
1174
+ type: object
1175
+ properties:
1176
+ detail:
1177
+ type: string
1178
+ required:
1179
+ - detail
1180
+ Eigenaar:
1181
+ type: object
1182
+ properties:
1183
+ uuid:
1184
+ type: string
1185
+ format: uuid
1186
+ bsn:
1187
+ type: string
1188
+ title: Burgerservicenummer
1189
+ description: Het BSN van de product eigenaar, BSN van 8 karakters moet met een extra 0 beginnen.
1190
+ kvk_nummer:
1191
+ type: string
1192
+ description: Het kvk nummer van de product eigenaar
1193
+ pattern: ^[0-9]*$
1194
+ maxLength: 8
1195
+ minLength: 8
1196
+ vestigingsnummer:
1197
+ type: string
1198
+ description: Een korte unieke aanduiding van een vestiging.
1199
+ maxLength: 24
1200
+ klantnummer:
1201
+ type: string
1202
+ description: generiek veld voor de identificatie van een klant of partij.
1203
+ maxLength: 50
1204
+ EigenaarRequest:
1205
+ type: object
1206
+ properties:
1207
+ uuid:
1208
+ type: string
1209
+ format: uuid
1210
+ bsn:
1211
+ type: string
1212
+ title: Burgerservicenummer
1213
+ description: Het BSN van de product eigenaar, BSN van 8 karakters moet met een extra 0 beginnen.
1214
+ kvk_nummer:
1215
+ type: string
1216
+ description: Het kvk nummer van de product eigenaar
1217
+ pattern: ^[0-9]*$
1218
+ maxLength: 8
1219
+ minLength: 8
1220
+ vestigingsnummer:
1221
+ type: string
1222
+ description: Een korte unieke aanduiding van een vestiging.
1223
+ maxLength: 24
1224
+ klantnummer:
1225
+ type: string
1226
+ description: generiek veld voor de identificatie van een klant of partij.
1227
+ maxLength: 50
1228
+ Error:
1229
+ type: object
1230
+ properties:
1231
+ veld_a:
1232
+ type: array
1233
+ items:
1234
+ type: string
1235
+ veld_b:
1236
+ type: array
1237
+ items:
1238
+ type: string
1239
+ required:
1240
+ - veld_a
1241
+ - veld_b
1242
+ FrequentieEnum:
1243
+ enum:
1244
+ - eenmalig
1245
+ - maandelijks
1246
+ - jaarlijks
1247
+ type: string
1248
+ description: |-
1249
+ * `eenmalig` - Eenmalig
1250
+ * `maandelijks` - Maandelijks
1251
+ * `jaarlijks` - Jaarlijks
1252
+ NestedDocument:
1253
+ type: object
1254
+ properties:
1255
+ urn:
1256
+ type: string
1257
+ nullable: true
1258
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1259
+ url:
1260
+ type: string
1261
+ format: uri
1262
+ nullable: true
1263
+ maxLength: 200
1264
+ NestedDocumentRequest:
1265
+ type: object
1266
+ properties:
1267
+ urn:
1268
+ type: string
1269
+ nullable: true
1270
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1271
+ url:
1272
+ type: string
1273
+ format: uri
1274
+ nullable: true
1275
+ maxLength: 200
1276
+ NestedProductType:
1277
+ type: object
1278
+ properties:
1279
+ uuid:
1280
+ type: string
1281
+ format: uuid
1282
+ readOnly: true
1283
+ code:
1284
+ type: string
1285
+ description: code van het producttype.
1286
+ pattern: ^[A-Z0-9-]+$
1287
+ maxLength: 255
1288
+ keywords:
1289
+ type: array
1290
+ items:
1291
+ type: string
1292
+ maxLength: 100
1293
+ description: Lijst van keywords waarop kan worden gezocht.
1294
+ uniforme_product_naam:
1295
+ type: string
1296
+ description: Uniforme product naam
1297
+ toegestane_statussen:
1298
+ type: array
1299
+ items:
1300
+ $ref: '#/components/schemas/ToegestaneStatussenEnum'
1301
+ description: toegestane statussen voor producten van dit type.
1302
+ gepubliceerd:
1303
+ type: boolean
1304
+ readOnly: true
1305
+ description: Geeft aan of het producttype getoond kan worden.
1306
+ publicatie_start_datum:
1307
+ type: string
1308
+ format: date
1309
+ nullable: true
1310
+ title: Publicatie startdatum
1311
+ description: De datum waarop het producttype gepubliceerd is
1312
+ publicatie_eind_datum:
1313
+ type: string
1314
+ format: date
1315
+ nullable: true
1316
+ title: Publicatie einddatum
1317
+ description: De datum waarop de publicatie eindigt
1318
+ aanmaak_datum:
1319
+ type: string
1320
+ format: date-time
1321
+ readOnly: true
1322
+ description: De datum waarop het object is aangemaakt.
1323
+ update_datum:
1324
+ type: string
1325
+ format: date-time
1326
+ readOnly: true
1327
+ description: De datum waarop het object voor het laatst is gewijzigd.
1328
+ themas:
1329
+ type: array
1330
+ items:
1331
+ $ref: '#/components/schemas/NestedThema'
1332
+ required:
1333
+ - aanmaak_datum
1334
+ - code
1335
+ - gepubliceerd
1336
+ - themas
1337
+ - uniforme_product_naam
1338
+ - update_datum
1339
+ - uuid
1340
+ NestedProductTypeRequest:
1341
+ type: object
1342
+ properties:
1343
+ code:
1344
+ type: string
1345
+ minLength: 1
1346
+ description: code van het producttype.
1347
+ pattern: ^[A-Z0-9-]+$
1348
+ maxLength: 255
1349
+ keywords:
1350
+ type: array
1351
+ items:
1352
+ type: string
1353
+ maxLength: 100
1354
+ description: Lijst van keywords waarop kan worden gezocht.
1355
+ uniforme_product_naam:
1356
+ type: string
1357
+ minLength: 1
1358
+ description: Uniforme product naam
1359
+ toegestane_statussen:
1360
+ type: array
1361
+ items:
1362
+ $ref: '#/components/schemas/ToegestaneStatussenEnum'
1363
+ description: toegestane statussen voor producten van dit type.
1364
+ publicatie_start_datum:
1365
+ type: string
1366
+ format: date
1367
+ nullable: true
1368
+ title: Publicatie startdatum
1369
+ description: De datum waarop het producttype gepubliceerd is
1370
+ publicatie_eind_datum:
1371
+ type: string
1372
+ format: date
1373
+ nullable: true
1374
+ title: Publicatie einddatum
1375
+ description: De datum waarop de publicatie eindigt
1376
+ themas:
1377
+ type: array
1378
+ items:
1379
+ $ref: '#/components/schemas/NestedThemaRequest'
1380
+ required:
1381
+ - code
1382
+ - themas
1383
+ - uniforme_product_naam
1384
+ NestedTaak:
1385
+ type: object
1386
+ properties:
1387
+ urn:
1388
+ type: string
1389
+ nullable: true
1390
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1391
+ url:
1392
+ type: string
1393
+ format: uri
1394
+ nullable: true
1395
+ maxLength: 200
1396
+ NestedTaakRequest:
1397
+ type: object
1398
+ properties:
1399
+ urn:
1400
+ type: string
1401
+ nullable: true
1402
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1403
+ url:
1404
+ type: string
1405
+ format: uri
1406
+ nullable: true
1407
+ maxLength: 200
1408
+ NestedThema:
1409
+ type: object
1410
+ properties:
1411
+ uuid:
1412
+ type: string
1413
+ format: uuid
1414
+ readOnly: true
1415
+ naam:
1416
+ type: string
1417
+ description: Naam van het thema.
1418
+ maxLength: 255
1419
+ beschrijving:
1420
+ type: string
1421
+ description: Beschrijving van het thema, ondersteund markdown format.
1422
+ gepubliceerd:
1423
+ type: boolean
1424
+ description: Geeft aan of het thema getoond kan worden.
1425
+ aanmaak_datum:
1426
+ type: string
1427
+ format: date-time
1428
+ readOnly: true
1429
+ description: De datum waarop het object is aangemaakt.
1430
+ update_datum:
1431
+ type: string
1432
+ format: date-time
1433
+ readOnly: true
1434
+ description: De datum waarop het object voor het laatst is gewijzigd.
1435
+ hoofd_thema:
1436
+ type: string
1437
+ format: uuid
1438
+ description: Het hoofd thema waaronder dit thema valt.
1439
+ required:
1440
+ - aanmaak_datum
1441
+ - hoofd_thema
1442
+ - naam
1443
+ - update_datum
1444
+ - uuid
1445
+ NestedThemaRequest:
1446
+ type: object
1447
+ properties:
1448
+ naam:
1449
+ type: string
1450
+ minLength: 1
1451
+ description: Naam van het thema.
1452
+ maxLength: 255
1453
+ beschrijving:
1454
+ type: string
1455
+ description: Beschrijving van het thema, ondersteund markdown format.
1456
+ gepubliceerd:
1457
+ type: boolean
1458
+ description: Geeft aan of het thema getoond kan worden.
1459
+ hoofd_thema:
1460
+ type: string
1461
+ format: uuid
1462
+ description: Het hoofd thema waaronder dit thema valt.
1463
+ required:
1464
+ - hoofd_thema
1465
+ - naam
1466
+ NestedZaak:
1467
+ type: object
1468
+ properties:
1469
+ urn:
1470
+ type: string
1471
+ nullable: true
1472
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1473
+ url:
1474
+ type: string
1475
+ format: uri
1476
+ nullable: true
1477
+ maxLength: 200
1478
+ NestedZaakRequest:
1479
+ type: object
1480
+ properties:
1481
+ urn:
1482
+ type: string
1483
+ nullable: true
1484
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1485
+ url:
1486
+ type: string
1487
+ format: uri
1488
+ nullable: true
1489
+ maxLength: 200
1490
+ PaginatedProductList:
1491
+ type: object
1492
+ required:
1493
+ - count
1494
+ - results
1495
+ properties:
1496
+ count:
1497
+ type: integer
1498
+ example: 123
1499
+ next:
1500
+ type: string
1501
+ nullable: true
1502
+ format: uri
1503
+ example: http://api.example.org/accounts/?page=4
1504
+ previous:
1505
+ type: string
1506
+ nullable: true
1507
+ format: uri
1508
+ example: http://api.example.org/accounts/?page=2
1509
+ results:
1510
+ type: array
1511
+ items:
1512
+ $ref: '#/components/schemas/Product'
1513
+ PatchedProductRequest:
1514
+ type: object
1515
+ properties:
1516
+ naam:
1517
+ type: string
1518
+ description: De naam van dit product.
1519
+ maxLength: 255
1520
+ start_datum:
1521
+ type: string
1522
+ format: date
1523
+ nullable: true
1524
+ description: De start datum van dit product. Op deze datum zal de status van het product automatisch naar ACTIEF worden gezet. Op het moment dat de start_datum wordt ingevuld moet de status ACTIEF op het producttype zijn toegestaan.
1525
+ eind_datum:
1526
+ type: string
1527
+ format: date
1528
+ nullable: true
1529
+ description: De einddatum van dit product. Op deze datum zal de status van het product automatisch naar VERLOPEN worden gezet. Op het moment dat de eind_datum wordt ingevuld moet de status VERLOPEN op het producttype zijn toegestaan.
1530
+ producttype_uuid:
1531
+ type: string
1532
+ format: uuid
1533
+ writeOnly: true
1534
+ gepubliceerd:
1535
+ type: boolean
1536
+ description: Geeft aan of het product getoond kan worden.
1537
+ eigenaren:
1538
+ type: array
1539
+ items:
1540
+ $ref: '#/components/schemas/EigenaarRequest'
1541
+ documenten:
1542
+ type: array
1543
+ items:
1544
+ $ref: '#/components/schemas/NestedDocumentRequest'
1545
+ zaken:
1546
+ type: array
1547
+ items:
1548
+ $ref: '#/components/schemas/NestedZaakRequest'
1549
+ taken:
1550
+ type: array
1551
+ items:
1552
+ $ref: '#/components/schemas/NestedTaakRequest'
1553
+ status:
1554
+ allOf:
1555
+ - $ref: '#/components/schemas/StatusEnum'
1556
+ description: |-
1557
+ De status opties worden bepaald door het veld 'toegestane statussen' van het gerelateerde producttype. Via start & eind_datum kan de status automatisch naar ACTIEF of VERLOPEN worden gezet (mits deze statussen zijn toegestaan op het producttype).
1558
+
1559
+ * `initieel` - Initieel
1560
+ * `in_aanvraag` - In aanvraag
1561
+ * `gereed` - Gereed
1562
+ * `actief` - Actief
1563
+ * `ingetrokken` - Ingetrokken
1564
+ * `geweigerd` - Geweigerd
1565
+ * `verlopen` - Verlopen
1566
+ prijs:
1567
+ type: string
1568
+ format: decimal
1569
+ pattern: ^-?\d{0,6}(?:\.\d{0,2})?$
1570
+ nullable: true
1571
+ description: De prijs van het product.
1572
+ frequentie:
1573
+ title: Prijs frequentie
1574
+ description: |-
1575
+ De frequentie van betalingen.
1576
+
1577
+ * `eenmalig` - Eenmalig
1578
+ * `maandelijks` - Maandelijks
1579
+ * `jaarlijks` - Jaarlijks
1580
+ oneOf:
1581
+ - $ref: '#/components/schemas/FrequentieEnum'
1582
+ - $ref: '#/components/schemas/BlankEnum'
1583
+ verbruiksobject:
1584
+ type: object
1585
+ additionalProperties: true
1586
+ nullable: true
1587
+ description: Verbruiksobject van dit product. Wordt gevalideerd met het `verbruiksobject_schema` uit het producttype.
1588
+ dataobject:
1589
+ type: object
1590
+ additionalProperties: true
1591
+ nullable: true
1592
+ description: Dataobject van dit product. Wordt gevalideerd met het `dataobject_schema` uit het producttype.
1593
+ aanvraag_zaak_urn:
1594
+ type: string
1595
+ nullable: true
1596
+ description: De zaak waaruit dit product is ontstaan. (<organisatie>:<systeem>:<component>:<resource>:<identificatie>)
1597
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1598
+ aanvraag_zaak_url:
1599
+ type: string
1600
+ format: uri
1601
+ nullable: true
1602
+ description: De zaak waaruit dit product is ontstaan.
1603
+ maxLength: 200
1604
+ Product:
1605
+ type: object
1606
+ properties:
1607
+ uuid:
1608
+ type: string
1609
+ format: uuid
1610
+ readOnly: true
1611
+ url:
1612
+ type: string
1613
+ format: uri
1614
+ readOnly: true
1615
+ minLength: 1
1616
+ maxLength: 1000
1617
+ description: URL-referentie naar dit object. Dit is de unieke identificatie en locatie van dit object.
1618
+ naam:
1619
+ type: string
1620
+ description: De naam van dit product.
1621
+ maxLength: 255
1622
+ start_datum:
1623
+ type: string
1624
+ format: date
1625
+ nullable: true
1626
+ description: De start datum van dit product. Op deze datum zal de status van het product automatisch naar ACTIEF worden gezet. Op het moment dat de start_datum wordt ingevuld moet de status ACTIEF op het producttype zijn toegestaan.
1627
+ eind_datum:
1628
+ type: string
1629
+ format: date
1630
+ nullable: true
1631
+ description: De einddatum van dit product. Op deze datum zal de status van het product automatisch naar VERLOPEN worden gezet. Op het moment dat de eind_datum wordt ingevuld moet de status VERLOPEN op het producttype zijn toegestaan.
1632
+ aanmaak_datum:
1633
+ type: string
1634
+ format: date-time
1635
+ readOnly: true
1636
+ description: De datum waarop het object is aangemaakt.
1637
+ update_datum:
1638
+ type: string
1639
+ format: date-time
1640
+ readOnly: true
1641
+ description: De datum waarop het object voor het laatst is gewijzigd.
1642
+ producttype:
1643
+ allOf:
1644
+ - $ref: '#/components/schemas/NestedProductType'
1645
+ readOnly: true
1646
+ gepubliceerd:
1647
+ type: boolean
1648
+ description: Geeft aan of het product getoond kan worden.
1649
+ eigenaren:
1650
+ type: array
1651
+ items:
1652
+ $ref: '#/components/schemas/Eigenaar'
1653
+ documenten:
1654
+ type: array
1655
+ items:
1656
+ $ref: '#/components/schemas/NestedDocument'
1657
+ zaken:
1658
+ type: array
1659
+ items:
1660
+ $ref: '#/components/schemas/NestedZaak'
1661
+ taken:
1662
+ type: array
1663
+ items:
1664
+ $ref: '#/components/schemas/NestedTaak'
1665
+ status:
1666
+ allOf:
1667
+ - $ref: '#/components/schemas/StatusEnum'
1668
+ description: |-
1669
+ De status opties worden bepaald door het veld 'toegestane statussen' van het gerelateerde producttype. Via start & eind_datum kan de status automatisch naar ACTIEF of VERLOPEN worden gezet (mits deze statussen zijn toegestaan op het producttype).
1670
+
1671
+ * `initieel` - Initieel
1672
+ * `in_aanvraag` - In aanvraag
1673
+ * `gereed` - Gereed
1674
+ * `actief` - Actief
1675
+ * `ingetrokken` - Ingetrokken
1676
+ * `geweigerd` - Geweigerd
1677
+ * `verlopen` - Verlopen
1678
+ prijs:
1679
+ type: string
1680
+ format: decimal
1681
+ pattern: ^-?\d{0,6}(?:\.\d{0,2})?$
1682
+ nullable: true
1683
+ description: De prijs van het product.
1684
+ frequentie:
1685
+ title: Prijs frequentie
1686
+ description: |-
1687
+ De frequentie van betalingen.
1688
+
1689
+ * `eenmalig` - Eenmalig
1690
+ * `maandelijks` - Maandelijks
1691
+ * `jaarlijks` - Jaarlijks
1692
+ oneOf:
1693
+ - $ref: '#/components/schemas/FrequentieEnum'
1694
+ - $ref: '#/components/schemas/BlankEnum'
1695
+ verbruiksobject:
1696
+ type: object
1697
+ additionalProperties: true
1698
+ nullable: true
1699
+ description: Verbruiksobject van dit product. Wordt gevalideerd met het `verbruiksobject_schema` uit het producttype.
1700
+ dataobject:
1701
+ type: object
1702
+ additionalProperties: true
1703
+ nullable: true
1704
+ description: Dataobject van dit product. Wordt gevalideerd met het `dataobject_schema` uit het producttype.
1705
+ aanvraag_zaak_urn:
1706
+ type: string
1707
+ nullable: true
1708
+ description: De zaak waaruit dit product is ontstaan. (<organisatie>:<systeem>:<component>:<resource>:<identificatie>)
1709
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1710
+ aanvraag_zaak_url:
1711
+ type: string
1712
+ format: uri
1713
+ nullable: true
1714
+ description: De zaak waaruit dit product is ontstaan.
1715
+ maxLength: 200
1716
+ required:
1717
+ - aanmaak_datum
1718
+ - eigenaren
1719
+ - producttype
1720
+ - update_datum
1721
+ - url
1722
+ - uuid
1723
+ ProductRequest:
1724
+ type: object
1725
+ properties:
1726
+ naam:
1727
+ type: string
1728
+ description: De naam van dit product.
1729
+ maxLength: 255
1730
+ start_datum:
1731
+ type: string
1732
+ format: date
1733
+ nullable: true
1734
+ description: De start datum van dit product. Op deze datum zal de status van het product automatisch naar ACTIEF worden gezet. Op het moment dat de start_datum wordt ingevuld moet de status ACTIEF op het producttype zijn toegestaan.
1735
+ eind_datum:
1736
+ type: string
1737
+ format: date
1738
+ nullable: true
1739
+ description: De einddatum van dit product. Op deze datum zal de status van het product automatisch naar VERLOPEN worden gezet. Op het moment dat de eind_datum wordt ingevuld moet de status VERLOPEN op het producttype zijn toegestaan.
1740
+ producttype_uuid:
1741
+ type: string
1742
+ format: uuid
1743
+ writeOnly: true
1744
+ gepubliceerd:
1745
+ type: boolean
1746
+ description: Geeft aan of het product getoond kan worden.
1747
+ eigenaren:
1748
+ type: array
1749
+ items:
1750
+ $ref: '#/components/schemas/EigenaarRequest'
1751
+ documenten:
1752
+ type: array
1753
+ items:
1754
+ $ref: '#/components/schemas/NestedDocumentRequest'
1755
+ zaken:
1756
+ type: array
1757
+ items:
1758
+ $ref: '#/components/schemas/NestedZaakRequest'
1759
+ taken:
1760
+ type: array
1761
+ items:
1762
+ $ref: '#/components/schemas/NestedTaakRequest'
1763
+ status:
1764
+ allOf:
1765
+ - $ref: '#/components/schemas/StatusEnum'
1766
+ description: |-
1767
+ De status opties worden bepaald door het veld 'toegestane statussen' van het gerelateerde producttype. Via start & eind_datum kan de status automatisch naar ACTIEF of VERLOPEN worden gezet (mits deze statussen zijn toegestaan op het producttype).
1768
+
1769
+ * `initieel` - Initieel
1770
+ * `in_aanvraag` - In aanvraag
1771
+ * `gereed` - Gereed
1772
+ * `actief` - Actief
1773
+ * `ingetrokken` - Ingetrokken
1774
+ * `geweigerd` - Geweigerd
1775
+ * `verlopen` - Verlopen
1776
+ prijs:
1777
+ type: string
1778
+ format: decimal
1779
+ pattern: ^-?\d{0,6}(?:\.\d{0,2})?$
1780
+ nullable: true
1781
+ description: De prijs van het product.
1782
+ frequentie:
1783
+ title: Prijs frequentie
1784
+ description: |-
1785
+ De frequentie van betalingen.
1786
+
1787
+ * `eenmalig` - Eenmalig
1788
+ * `maandelijks` - Maandelijks
1789
+ * `jaarlijks` - Jaarlijks
1790
+ oneOf:
1791
+ - $ref: '#/components/schemas/FrequentieEnum'
1792
+ - $ref: '#/components/schemas/BlankEnum'
1793
+ verbruiksobject:
1794
+ type: object
1795
+ additionalProperties: true
1796
+ nullable: true
1797
+ description: Verbruiksobject van dit product. Wordt gevalideerd met het `verbruiksobject_schema` uit het producttype.
1798
+ dataobject:
1799
+ type: object
1800
+ additionalProperties: true
1801
+ nullable: true
1802
+ description: Dataobject van dit product. Wordt gevalideerd met het `dataobject_schema` uit het producttype.
1803
+ aanvraag_zaak_urn:
1804
+ type: string
1805
+ nullable: true
1806
+ description: De zaak waaruit dit product is ontstaan. (<organisatie>:<systeem>:<component>:<resource>:<identificatie>)
1807
+ 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]|[!$&'()*+,;=]|[:@])|/|\?)*)?$
1808
+ aanvraag_zaak_url:
1809
+ type: string
1810
+ format: uri
1811
+ nullable: true
1812
+ description: De zaak waaruit dit product is ontstaan.
1813
+ maxLength: 200
1814
+ required:
1815
+ - eigenaren
1816
+ - producttype_uuid
1817
+ StatusEnum:
1818
+ enum:
1819
+ - initieel
1820
+ - in_aanvraag
1821
+ - gereed
1822
+ - actief
1823
+ - ingetrokken
1824
+ - geweigerd
1825
+ - verlopen
1826
+ type: string
1827
+ description: |-
1828
+ * `initieel` - Initieel
1829
+ * `in_aanvraag` - In aanvraag
1830
+ * `gereed` - Gereed
1831
+ * `actief` - Actief
1832
+ * `ingetrokken` - Ingetrokken
1833
+ * `geweigerd` - Geweigerd
1834
+ * `verlopen` - Verlopen
1835
+ ToegestaneStatussenEnum:
1836
+ enum:
1837
+ - in_aanvraag
1838
+ - gereed
1839
+ - actief
1840
+ - ingetrokken
1841
+ - geweigerd
1842
+ - verlopen
1843
+ type: string
1844
+ description: |-
1845
+ * `in_aanvraag` - In aanvraag
1846
+ * `gereed` - Gereed
1847
+ * `actief` - Actief
1848
+ * `ingetrokken` - Ingetrokken
1849
+ * `geweigerd` - Geweigerd
1850
+ * `verlopen` - Verlopen
1851
+ securitySchemes:
1852
+ OpenID:
1853
+ type: openIdConnect
1854
+ openIdConnectUrl: https://example.com/.well-known/openid-configuration
1855
+ tokenAuth:
1856
+ type: apiKey
1857
+ in: header
1858
+ name: Authorization
1859
+ description: Token-based authentication with required prefix "Token"
1860
+ servers:
1861
+ - url: /producten/api/v1
1862
+ tags:
1863
+ - name: producten
1864
+ description: |
1865
+
1866
+ ## Opvragen en bewerken van PRODUCTEN.
1867
+
1868
+ ### Opmerkingen
1869
+ - Bij het aanmaken van een PRODUCT kunnen één of meerdere eigenaren worden toegevoegd, een eigenaar moet een bsn (en/of klantnummer) of een kvk nummer (met of zonder vestigingsnummer) hebben."
1870
+ - De status opties van een PRODUCT zijn afhankelijk van de `toegestane_statussen` van het producttype.
1871
+ - Via `start_datum` & `eind_datum` kan de status van een product automatisch op ACTIEF en VERLOPEN worden gezet.
1872
+ - Op het moment dat deze velden worden gezet moeten deze statussen zijn toegestaan op het producttype.
1873
+ - De status zal via de start_datum alleen naar ACTIEF veranderen mits de status INITIEEL, IN AANVRAAG of GEREED is. Voor de eind_datum zijn dit INTIEEL, IN AANVRAAG, GEREED of ACTIEF.
1874
+ - `verbruiksobject` & `dataobject` zijn JSON velden en worden gevalideerd vanuit `verbruiksobject_schema` & `dataobject_schema` van het producttype.
1875
+ - De velden `documenten`, `zaken` en `taken` wordt samen met het product genest aangemaakt of gewijzigd.
1876
+ - dit veld is een lijst van objecten.
1877
+ - Bij een PUT request word de bestaande lijst overschreven met de nieuwe lijst.
1878
+ - Bij een PATCH request wordt de lijst alleen overschreven als `documenten` wordt meegegeven.
1879
+
1880
+ - Het veld `eigenaren` wordt samen met het product genest aangemaakt of gewijzigd maar heeft een paar verschillen met de hiervoor beschreven velden.
1881
+ - Bij een PUT request word de bestaande lijst overschreven met de nieuwe lijst.
1882
+ - Bij een PATCH request wordt de lijst alleen overschreven als het veld wordt meegegeven.
1883
+ - In een PUT of PATCH kan in een eigenaar object een bestaand `uuid` worden meegegeven zodat een bestaande eigenaar blijft bestaan.
1884
+ Zo kan ook een bestaande eigenaar worden gewijzigd.
1885
+ - eigenaren zonder `uuid` zullen worden aangemaakt in een PUT of PATCH.
1886
+ - bestaande eigenaren die niet in de lijst voorkomen met hun id zullen worden verwijderd.