From 40eb494abd208ec1c8f92060e0efaa07aefdc431 Mon Sep 17 00:00:00 2001 From: matthijsbekendam Date: Mon, 24 Oct 2022 08:10:53 +0200 Subject: [PATCH 1/2] [#132] drf-spec update --- requirements/base.in | 5 +- requirements/base.txt | 101 +- requirements/ci.txt | 134 +- requirements/dev.txt | 136 +- requirements/production.txt | 113 +- src/nrc/api/apps.py | 13 + src/nrc/api/schema.py | 26 +- src/nrc/api/tests/test_domains.py | 4 +- src/nrc/api/tests/test_dso_api_strategy.py | 15 +- src/nrc/api/tests/test_scopes.py | 12 +- src/nrc/api/tests/test_subscriptions.py | 2 +- src/nrc/api/urls.py | 12 +- src/nrc/api/viewsets.py | 89 +- src/nrc/conf/api.py | 31 +- src/nrc/conf/base.py | 5 +- src/openapi.yaml | 2918 ++++++++++++++------ src/swagger2.0.json | 1574 ----------- 17 files changed, 2592 insertions(+), 2598 deletions(-) create mode 100644 src/nrc/api/apps.py delete mode 100644 src/swagger2.0.json diff --git a/requirements/base.in b/requirements/base.in index d034caf7..2b1fb409 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -27,8 +27,9 @@ django-better-admin-arrayfield djangorestframework django-filter~=21.1 djangorestframework-camel-case -drf-yasg -vng-api-common +drf_spectacular +# TODO: this should eventually be reverted to vng-api-common +git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade#egg=vng_api_common drf-flex-fields django-cors-middleware diff --git a/requirements/base.txt b/requirements/base.txt index 5d932a67..651eb171 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -12,6 +12,8 @@ asgiref==3.5.2 # via django async-timeout==4.0.2 # via redis +attrs==22.1.0 + # via jsonschema babel==2.10.3 # via sphinx billiard==3.6.4.0 @@ -23,7 +25,11 @@ build==0.8.0 celery==5.2.7 # via -r requirements/base.in certifi==2022.6.15 - # via requests + # via + # django-simple-certmanager + # requests +cffi==1.15.1 + # via cryptography charset-normalizer==2.1.0 # via requests click==8.1.3 @@ -39,12 +45,12 @@ click-plugins==1.1.1 # via celery click-repl==0.2.0 # via celery -coreapi==2.3.3 - # via drf-yasg -coreschema==0.0.4 +cryptography==38.0.1 # via - # coreapi - # drf-yasg + # cryptograpy + # pyopenssl +cryptograpy==0.0.0 + # via django-simple-certmanager deprecated==1.2.13 # via redis django==3.2.14 @@ -56,15 +62,20 @@ django==3.2.14 # django-filter # django-hijack # django-markup + # django-privates # django-redis # django-relativedelta # django-rest-framework-condition # django-rosetta + # django-sendfile2 + # django-simple-certmanager # django-solo # djangorestframework # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common + # zgw-consumers django-admin-index==2.0.2 # via -r requirements/base.in django-axes==5.36.0 @@ -74,7 +85,9 @@ django-better-admin-arrayfield==1.4.2 django-choices==1.7.2 # via # -r requirements/base.in + # django-simple-certmanager # vng-api-common + # zgw-consumers django-compat==1.0.15 # via django-hijack-admin django-cors-middleware==1.5.0 @@ -95,25 +108,38 @@ django-markup[all_filter_dependencies]==1.5 # via -r requirements/base.in django-ordered-model==3.6 # via django-admin-index +django-privates==1.4.0 + # via django-simple-certmanager django-redis==5.2.0 # via -r requirements/base.in django-relativedelta==1.1.2 - # via -r requirements/base.in + # via + # -r requirements/base.in + # zgw-consumers django-rest-framework-condition==0.1.1 # via vng-api-common django-rosetta==0.9.8 # via -r requirements/base.in +django-sendfile2==0.7.0 + # via django-privates +django-simple-certmanager==1.1.0 + # via zgw-consumers django-solo==2.0.0 - # via vng-api-common + # via + # notifications-api-common + # vng-api-common + # zgw-consumers djangorestframework==3.12.4 # via # -r requirements/base.in # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common djangorestframework-camel-case==1.3.0 # via # -r requirements/base.in + # notifications-api-common # vng-api-common docutils==0.17.1 # via @@ -125,14 +151,19 @@ drf-flex-fields==0.9.8 # via -r requirements/base.in drf-nested-routers==0.93.4 # via vng-api-common -drf-writable-nested==0.6.4 - # via -r requirements/base.in -drf-yasg==1.21.3 +drf-spectacular==0.24.2 # via # -r requirements/base.in # vng-api-common +drf-writable-nested==0.6.4 + # via -r requirements/base.in +faker==15.1.1 + # via zgw-consumers gemma-zds-client==1.0.1 - # via vng-api-common + # via + # notifications-api-common + # vng-api-common + # zgw-consumers html5lib==1.1 # via textile idna==3.3 @@ -144,17 +175,15 @@ importlib-metadata==4.12.0 # markdown # sphinx inflection==0.5.1 - # via drf-yasg + # via drf-spectacular iso-639==0.4.5 # via vng-api-common isodate==0.6.1 # via vng-api-common -itypes==1.2.0 - # via coreapi jinja2==3.1.2 - # via - # coreschema - # sphinx + # via sphinx +jsonschema==4.16.0 + # via drf-spectacular kombu==5.2.4 # via celery markdown==3.4.1 @@ -163,12 +192,13 @@ markdown==3.4.1 # django-markup markupsafe==2.1.1 # via jinja2 +notifications-api-common==0.1.0 + # via vng-api-common oyaml==1.0 # via vng-api-common packaging==21.3 # via # build - # drf-yasg # redis # sphinx pep517==0.12.0 @@ -183,6 +213,8 @@ prompt-toolkit==3.0.30 # via click-repl psycopg2==2.9.3 # via -r requirements/base.in +pycparser==2.21 + # via cffi pygments==2.12.0 # via # django-markup @@ -191,14 +223,21 @@ pyjwt==2.4.0 # via # gemma-zds-client # vng-api-common +pyopenssl==22.1.0 + # via + # django-simple-certmanager + # zgw-consumers pyparsing==3.0.9 # via packaging +pyrsistent==0.18.1 + # via jsonschema python-creole==1.4.10 # via django-markup python-dateutil==2.8.2 # via # -r requirements/base.in # django-relativedelta + # faker python-dotenv==0.20.0 # via -r requirements/base.in pytz==2022.1 @@ -207,9 +246,9 @@ pytz==2022.1 # babel # celery # django - # drf-yasg pyyaml==6.0 # via + # drf-spectacular # gemma-zds-client # oyaml # vng-api-common @@ -221,15 +260,14 @@ regex==2022.7.25 # via textile requests==2.28.1 # via - # coreapi # django-rosetta # gemma-zds-client + # requests-mock # sphinx # vng-api-common -ruamel-yaml==0.17.21 - # via drf-yasg -ruamel-yaml-clib==0.2.6 - # via ruamel-yaml + # zgw-consumers +requests-mock==1.10.0 + # via zgw-consumers six==1.16.0 # via # bleach @@ -239,6 +277,7 @@ six==1.16.0 # html5lib # isodate # python-dateutil + # requests-mock smartypants==2.0.1 # via django-markup snowballstemmer==2.2.0 @@ -270,9 +309,7 @@ tomli==2.0.1 # build # pep517 uritemplate==4.1.1 - # via - # coreapi - # drf-yasg + # via drf-spectacular urllib3==1.26.10 # via requests uwsgi==2.0.20 @@ -282,7 +319,7 @@ vine==5.0.0 # amqp # celery # kombu -vng-api-common==1.7.8 +vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade # via -r requirements/base.in wcwidth==0.2.5 # via prompt-toolkit @@ -294,6 +331,8 @@ wheel==0.37.1 # via pip-tools wrapt==1.14.1 # via deprecated +zgw-consumers==0.21.2 + # via notifications-api-common zipp==3.8.1 # via importlib-metadata diff --git a/requirements/ci.txt b/requirements/ci.txt index f836bb2c..56d2380f 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -22,6 +22,10 @@ async-timeout==4.0.2 # via # -r requirements/base.txt # redis +attrs==22.1.0 + # via + # -r requirements/base.txt + # jsonschema babel==2.10.3 # via # -r requirements/base.txt @@ -30,7 +34,7 @@ billiard==3.6.4.0 # via # -r requirements/base.txt # celery -black==22.6.0 +black==22.10.0 # via -r requirements/testing.in bleach==5.0.1 # via @@ -45,7 +49,12 @@ celery==5.2.7 certifi==2022.6.15 # via # -r requirements/base.txt + # django-simple-certmanager # requests +cffi==1.15.1 + # via + # -r requirements/base.txt + # cryptography charset-normalizer==2.1.0 # via # -r requirements/base.txt @@ -73,19 +82,19 @@ click-repl==0.2.0 # celery codecov==2.1.12 # via -r requirements/ci.in -coreapi==2.3.3 +coverage==6.5.0 # via - # -r requirements/base.txt - # drf-yasg -coreschema==0.0.4 + # -r requirements/ci.in + # codecov +cryptography==38.0.1 # via # -r requirements/base.txt - # coreapi - # drf-yasg -coverage==6.4.2 + # cryptograpy + # pyopenssl +cryptograpy==0.0.0 # via - # -r requirements/ci.in - # codecov + # -r requirements/base.txt + # django-simple-certmanager deprecated==1.2.13 # via # -r requirements/base.txt @@ -99,15 +108,20 @@ django==3.2.14 # django-filter # django-hijack # django-markup + # django-privates # django-redis # django-relativedelta # django-rest-framework-condition # django-rosetta + # django-sendfile2 + # django-simple-certmanager # django-solo # djangorestframework # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common + # zgw-consumers django-admin-index==2.0.2 # via -r requirements/base.txt django-axes==5.36.0 @@ -117,7 +131,9 @@ django-better-admin-arrayfield==1.4.2 django-choices==1.7.2 # via # -r requirements/base.txt + # django-simple-certmanager # vng-api-common + # zgw-consumers django-compat==1.0.15 # via # -r requirements/base.txt @@ -144,29 +160,47 @@ django-ordered-model==3.6 # via # -r requirements/base.txt # django-admin-index +django-privates==1.4.0 + # via + # -r requirements/base.txt + # django-simple-certmanager django-redis==5.2.0 # via -r requirements/base.txt django-relativedelta==1.1.2 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # zgw-consumers django-rest-framework-condition==0.1.1 # via # -r requirements/base.txt # vng-api-common django-rosetta==0.9.8 # via -r requirements/base.txt +django-sendfile2==0.7.0 + # via + # -r requirements/base.txt + # django-privates +django-simple-certmanager==1.1.0 + # via + # -r requirements/base.txt + # zgw-consumers django-solo==2.0.0 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common + # zgw-consumers djangorestframework==3.12.4 # via # -r requirements/base.txt # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common djangorestframework-camel-case==1.3.0 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common docutils==0.17.1 # via @@ -181,22 +215,27 @@ drf-nested-routers==0.93.4 # via # -r requirements/base.txt # vng-api-common -drf-writable-nested==0.6.4 - # via -r requirements/base.txt -drf-yasg==1.21.3 +drf-spectacular==0.24.2 # via # -r requirements/base.txt # vng-api-common +drf-writable-nested==0.6.4 + # via -r requirements/base.txt factory-boy==3.2.1 # via -r requirements/testing.in -faker==13.15.0 - # via factory-boy -freezegun==1.2.1 +faker==15.1.1 + # via + # -r requirements/base.txt + # factory-boy + # zgw-consumers +freezegun==1.2.2 # via -r requirements/testing.in gemma-zds-client==1.0.1 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common + # zgw-consumers html5lib==1.1 # via # -r requirements/base.txt @@ -217,7 +256,7 @@ importlib-metadata==4.12.0 inflection==0.5.1 # via # -r requirements/base.txt - # drf-yasg + # drf-spectacular iso-639==0.4.5 # via # -r requirements/base.txt @@ -230,15 +269,14 @@ isort==5.10.1 # via # -r requirements/testing.in # pylint -itypes==1.2.0 - # via - # -r requirements/base.txt - # coreapi jinja2==3.1.2 # via # -r requirements/base.txt - # coreschema # sphinx +jsonschema==4.16.0 + # via + # -r requirements/base.txt + # drf-spectacular kombu==5.2.4 # via # -r requirements/base.txt @@ -257,6 +295,10 @@ mccabe==0.7.0 # via pylint mypy-extensions==0.4.3 # via black +notifications-api-common==0.1.0 + # via + # -r requirements/base.txt + # vng-api-common oyaml==1.0 # via # -r requirements/base.txt @@ -265,10 +307,9 @@ packaging==21.3 # via # -r requirements/base.txt # build - # drf-yasg # redis # sphinx -pathspec==0.9.0 +pathspec==0.10.1 # via black pep517==0.12.0 # via @@ -292,6 +333,10 @@ prompt-toolkit==3.0.30 # click-repl psycopg2==2.9.3 # via -r requirements/base.txt +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi pygments==2.12.0 # via # -r requirements/base.txt @@ -304,10 +349,19 @@ pyjwt==2.4.0 # vng-api-common pylint==1.9.2 # via -r requirements/testing.in +pyopenssl==22.1.0 + # via + # -r requirements/base.txt + # django-simple-certmanager + # zgw-consumers pyparsing==3.0.9 # via # -r requirements/base.txt # packaging +pyrsistent==0.18.1 + # via + # -r requirements/base.txt + # jsonschema python-creole==1.4.10 # via # -r requirements/base.txt @@ -326,10 +380,10 @@ pytz==2022.1 # babel # celery # django - # drf-yasg pyyaml==6.0 # via # -r requirements/base.txt + # drf-spectacular # gemma-zds-client # oyaml # vng-api-common @@ -347,22 +401,17 @@ requests==2.28.1 # via # -r requirements/base.txt # codecov - # coreapi # django-rosetta # gemma-zds-client # requests-mock # sphinx # vng-api-common -requests-mock==1.9.3 - # via -r requirements/testing.in -ruamel-yaml==0.17.21 + # zgw-consumers +requests-mock==1.10.0 # via # -r requirements/base.txt - # drf-yasg -ruamel-yaml-clib==0.2.6 - # via - # -r requirements/base.txt - # ruamel-yaml + # -r requirements/testing.in + # zgw-consumers six==1.16.0 # via # -r requirements/base.txt @@ -430,13 +479,12 @@ tomli==2.0.1 # black # build # pep517 -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via black uritemplate==4.1.1 # via # -r requirements/base.txt - # coreapi - # drf-yasg + # drf-spectacular urllib3==1.26.10 # via # -r requirements/base.txt @@ -449,7 +497,7 @@ vine==5.0.0 # amqp # celery # kombu -vng-api-common==1.7.8 +vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade # via -r requirements/base.txt wcwidth==0.2.5 # via @@ -469,6 +517,10 @@ wrapt==1.14.1 # -r requirements/base.txt # astroid # deprecated +zgw-consumers==0.21.2 + # via + # -r requirements/base.txt + # notifications-api-common zipp==3.8.1 # via # -r requirements/base.txt diff --git a/requirements/dev.txt b/requirements/dev.txt index 53d80f2b..d1d13d5e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -22,6 +22,10 @@ async-timeout==4.0.2 # via # -r requirements/base.txt # redis +attrs==22.1.0 + # via + # -r requirements/base.txt + # jsonschema babel==2.10.3 # via # -r requirements/base.txt @@ -30,7 +34,7 @@ billiard==3.6.4.0 # via # -r requirements/base.txt # celery -black==22.6.0 +black==22.10.0 # via -r requirements/testing.in bleach==5.0.1 # via @@ -47,7 +51,12 @@ celery==5.2.7 certifi==2022.6.15 # via # -r requirements/base.txt + # django-simple-certmanager # requests +cffi==1.15.1 + # via + # -r requirements/base.txt + # cryptography charset-normalizer==2.1.0 # via # -r requirements/base.txt @@ -73,15 +82,15 @@ click-repl==0.2.0 # via # -r requirements/base.txt # celery -coreapi==2.3.3 +cryptography==38.0.1 # via # -r requirements/base.txt - # drf-yasg -coreschema==0.0.4 + # cryptograpy + # pyopenssl +cryptograpy==0.0.0 # via # -r requirements/base.txt - # coreapi - # drf-yasg + # django-simple-certmanager deprecated==1.2.13 # via # -r requirements/base.txt @@ -97,15 +106,20 @@ django==3.2.14 # django-filter # django-hijack # django-markup + # django-privates # django-redis # django-relativedelta # django-rest-framework-condition # django-rosetta + # django-sendfile2 + # django-simple-certmanager # django-solo # djangorestframework # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common + # zgw-consumers django-admin-index==2.0.2 # via -r requirements/base.txt django-axes==5.36.0 @@ -115,16 +129,18 @@ django-better-admin-arrayfield==1.4.2 django-choices==1.7.2 # via # -r requirements/base.txt + # django-simple-certmanager # vng-api-common + # zgw-consumers django-compat==1.0.15 # via # -r requirements/base.txt # django-hijack-admin django-cors-middleware==1.5.0 # via -r requirements/base.txt -django-debug-toolbar==3.5.0 +django-debug-toolbar==3.7.0 # via -r requirements/dev.in -django-extensions==3.2.0 +django-extensions==3.2.1 # via -r requirements/dev.in django-filter==21.1 # via @@ -146,29 +162,47 @@ django-ordered-model==3.6 # via # -r requirements/base.txt # django-admin-index +django-privates==1.4.0 + # via + # -r requirements/base.txt + # django-simple-certmanager django-redis==5.2.0 # via -r requirements/base.txt django-relativedelta==1.1.2 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # zgw-consumers django-rest-framework-condition==0.1.1 # via # -r requirements/base.txt # vng-api-common django-rosetta==0.9.8 # via -r requirements/base.txt +django-sendfile2==0.7.0 + # via + # -r requirements/base.txt + # django-privates +django-simple-certmanager==1.1.0 + # via + # -r requirements/base.txt + # zgw-consumers django-solo==2.0.0 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common + # zgw-consumers djangorestframework==3.12.4 # via # -r requirements/base.txt # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common djangorestframework-camel-case==1.3.0 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common docutils==0.17.1 # via @@ -183,29 +217,34 @@ drf-nested-routers==0.93.4 # via # -r requirements/base.txt # vng-api-common -drf-writable-nested==0.6.4 - # via -r requirements/base.txt -drf-yasg==1.21.3 +drf-spectacular==0.24.2 # via # -r requirements/base.txt # vng-api-common +drf-writable-nested==0.6.4 + # via -r requirements/base.txt factory-boy==3.2.1 # via -r requirements/testing.in -faker==13.15.0 - # via factory-boy -flower==1.1.0 +faker==15.1.1 + # via + # -r requirements/base.txt + # factory-boy + # zgw-consumers +flower==1.2.0 # via -r requirements/dev.in -freezegun==1.2.1 +freezegun==1.2.2 # via -r requirements/testing.in gemma-zds-client==1.0.1 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common + # zgw-consumers html5lib==1.1 # via # -r requirements/base.txt # textile -humanize==4.2.3 +humanize==4.4.0 # via flower idna==3.3 # via @@ -223,7 +262,7 @@ importlib-metadata==4.12.0 inflection==0.5.1 # via # -r requirements/base.txt - # drf-yasg + # drf-spectacular iso-639==0.4.5 # via # -r requirements/base.txt @@ -236,15 +275,14 @@ isort==5.10.1 # via # -r requirements/testing.in # pylint -itypes==1.2.0 - # via - # -r requirements/base.txt - # coreapi jinja2==3.1.2 # via # -r requirements/base.txt - # coreschema # sphinx +jsonschema==4.16.0 + # via + # -r requirements/base.txt + # drf-spectacular kombu==5.2.4 # via # -r requirements/base.txt @@ -263,6 +301,10 @@ mccabe==0.7.0 # via pylint mypy-extensions==0.4.3 # via black +notifications-api-common==0.1.0 + # via + # -r requirements/base.txt + # vng-api-common oyaml==1.0 # via # -r requirements/base.txt @@ -271,10 +313,9 @@ packaging==21.3 # via # -r requirements/base.txt # build - # drf-yasg # redis # sphinx -pathspec==0.9.0 +pathspec==0.10.1 # via black pep517==0.12.0 # via @@ -292,7 +333,7 @@ polib==1.1.1 # via # -r requirements/base.txt # django-rosetta -prometheus-client==0.14.1 +prometheus-client==0.15.0 # via flower prompt-toolkit==3.0.30 # via @@ -300,6 +341,10 @@ prompt-toolkit==3.0.30 # click-repl psycopg2==2.9.3 # via -r requirements/base.txt +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi pygments==2.12.0 # via # -r requirements/base.txt @@ -312,10 +357,19 @@ pyjwt==2.4.0 # vng-api-common pylint==1.9.2 # via -r requirements/testing.in +pyopenssl==22.1.0 + # via + # -r requirements/base.txt + # django-simple-certmanager + # zgw-consumers pyparsing==3.0.9 # via # -r requirements/base.txt # packaging +pyrsistent==0.18.1 + # via + # -r requirements/base.txt + # jsonschema python-creole==1.4.10 # via # -r requirements/base.txt @@ -334,11 +388,11 @@ pytz==2022.1 # babel # celery # django - # drf-yasg # flower pyyaml==6.0 # via # -r requirements/base.txt + # drf-spectacular # gemma-zds-client # oyaml # vng-api-common @@ -355,22 +409,17 @@ regex==2022.7.25 requests==2.28.1 # via # -r requirements/base.txt - # coreapi # django-rosetta # gemma-zds-client # requests-mock # sphinx # vng-api-common -requests-mock==1.9.3 - # via -r requirements/testing.in -ruamel-yaml==0.17.21 + # zgw-consumers +requests-mock==1.10.0 # via # -r requirements/base.txt - # drf-yasg -ruamel-yaml-clib==0.2.6 - # via - # -r requirements/base.txt - # ruamel-yaml + # -r requirements/testing.in + # zgw-consumers six==1.16.0 # via # -r requirements/base.txt @@ -441,13 +490,12 @@ tomli==2.0.1 # pep517 tornado==6.2 # via flower -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via black uritemplate==4.1.1 # via # -r requirements/base.txt - # coreapi - # drf-yasg + # drf-spectacular urllib3==1.26.10 # via # -r requirements/base.txt @@ -460,7 +508,7 @@ vine==5.0.0 # amqp # celery # kombu -vng-api-common==1.7.8 +vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade # via -r requirements/base.txt wcwidth==0.2.5 # via @@ -480,6 +528,10 @@ wrapt==1.14.1 # -r requirements/base.txt # astroid # deprecated +zgw-consumers==0.21.2 + # via + # -r requirements/base.txt + # notifications-api-common zipp==3.8.1 # via # -r requirements/base.txt diff --git a/requirements/production.txt b/requirements/production.txt index 4626fb16..b23dd7ef 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -20,6 +20,10 @@ async-timeout==4.0.2 # via # -r requirements/base.txt # redis +attrs==22.1.0 + # via + # -r requirements/base.txt + # jsonschema babel==2.10.3 # via # -r requirements/base.txt @@ -41,7 +45,12 @@ celery==5.2.7 certifi==2022.6.15 # via # -r requirements/base.txt + # django-simple-certmanager # requests +cffi==1.15.1 + # via + # -r requirements/base.txt + # cryptography charset-normalizer==2.1.0 # via # -r requirements/base.txt @@ -66,15 +75,15 @@ click-repl==0.2.0 # via # -r requirements/base.txt # celery -coreapi==2.3.3 +cryptography==38.0.1 # via # -r requirements/base.txt - # drf-yasg -coreschema==0.0.4 + # cryptograpy + # pyopenssl +cryptograpy==0.0.0 # via # -r requirements/base.txt - # coreapi - # drf-yasg + # django-simple-certmanager deprecated==1.2.13 # via # -r requirements/base.txt @@ -88,15 +97,20 @@ django==3.2.14 # django-filter # django-hijack # django-markup + # django-privates # django-redis # django-relativedelta # django-rest-framework-condition # django-rosetta + # django-sendfile2 + # django-simple-certmanager # django-solo # djangorestframework # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common + # zgw-consumers django-admin-index==2.0.2 # via -r requirements/base.txt django-axes==5.36.0 @@ -106,7 +120,9 @@ django-better-admin-arrayfield==1.4.2 django-choices==1.7.2 # via # -r requirements/base.txt + # django-simple-certmanager # vng-api-common + # zgw-consumers django-compat==1.0.15 # via # -r requirements/base.txt @@ -133,29 +149,47 @@ django-ordered-model==3.6 # via # -r requirements/base.txt # django-admin-index +django-privates==1.4.0 + # via + # -r requirements/base.txt + # django-simple-certmanager django-redis==5.2.0 # via -r requirements/base.txt django-relativedelta==1.1.2 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # zgw-consumers django-rest-framework-condition==0.1.1 # via # -r requirements/base.txt # vng-api-common django-rosetta==0.9.8 # via -r requirements/base.txt +django-sendfile2==0.7.0 + # via + # -r requirements/base.txt + # django-privates +django-simple-certmanager==1.1.0 + # via + # -r requirements/base.txt + # zgw-consumers django-solo==2.0.0 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common + # zgw-consumers djangorestframework==3.12.4 # via # -r requirements/base.txt # drf-nested-routers - # drf-yasg + # drf-spectacular + # notifications-api-common # vng-api-common djangorestframework-camel-case==1.3.0 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common docutils==0.17.1 # via @@ -170,16 +204,22 @@ drf-nested-routers==0.93.4 # via # -r requirements/base.txt # vng-api-common +drf-spectacular==0.24.2 + # via + # -r requirements/base.txt + # vng-api-common drf-writable-nested==0.6.4 # via -r requirements/base.txt -drf-yasg==1.21.3 +faker==15.1.1 # via # -r requirements/base.txt - # vng-api-common + # zgw-consumers gemma-zds-client==1.0.1 # via # -r requirements/base.txt + # notifications-api-common # vng-api-common + # zgw-consumers html5lib==1.1 # via # -r requirements/base.txt @@ -200,7 +240,7 @@ importlib-metadata==4.12.0 inflection==0.5.1 # via # -r requirements/base.txt - # drf-yasg + # drf-spectacular iso-639==0.4.5 # via # -r requirements/base.txt @@ -209,15 +249,14 @@ isodate==0.6.1 # via # -r requirements/base.txt # vng-api-common -itypes==1.2.0 - # via - # -r requirements/base.txt - # coreapi jinja2==3.1.2 # via # -r requirements/base.txt - # coreschema # sphinx +jsonschema==4.16.0 + # via + # -r requirements/base.txt + # drf-spectacular kombu==5.2.4 # via # -r requirements/base.txt @@ -230,6 +269,10 @@ markupsafe==2.1.1 # via # -r requirements/base.txt # jinja2 +notifications-api-common==0.1.0 + # via + # -r requirements/base.txt + # vng-api-common oyaml==1.0 # via # -r requirements/base.txt @@ -238,7 +281,6 @@ packaging==21.3 # via # -r requirements/base.txt # build - # drf-yasg # redis # sphinx pep517==0.12.0 @@ -259,6 +301,10 @@ prompt-toolkit==3.0.30 # click-repl psycopg2==2.9.3 # via -r requirements/base.txt +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi pygments==2.12.0 # via # -r requirements/base.txt @@ -269,10 +315,19 @@ pyjwt==2.4.0 # -r requirements/base.txt # gemma-zds-client # vng-api-common +pyopenssl==22.1.0 + # via + # -r requirements/base.txt + # django-simple-certmanager + # zgw-consumers pyparsing==3.0.9 # via # -r requirements/base.txt # packaging +pyrsistent==0.18.1 + # via + # -r requirements/base.txt + # jsonschema python-creole==1.4.10 # via # -r requirements/base.txt @@ -281,6 +336,7 @@ python-dateutil==2.8.2 # via # -r requirements/base.txt # django-relativedelta + # faker python-dotenv==0.20.0 # via -r requirements/base.txt pytz==2022.1 @@ -289,10 +345,10 @@ pytz==2022.1 # babel # celery # django - # drf-yasg pyyaml==6.0 # via # -r requirements/base.txt + # drf-spectacular # gemma-zds-client # oyaml # vng-api-common @@ -309,19 +365,16 @@ regex==2022.7.25 requests==2.28.1 # via # -r requirements/base.txt - # coreapi # django-rosetta # gemma-zds-client + # requests-mock # sphinx # vng-api-common -ruamel-yaml==0.17.21 + # zgw-consumers +requests-mock==1.10.0 # via # -r requirements/base.txt - # drf-yasg -ruamel-yaml-clib==0.2.6 - # via - # -r requirements/base.txt - # ruamel-yaml + # zgw-consumers six==1.16.0 # via # -r requirements/base.txt @@ -332,6 +385,7 @@ six==1.16.0 # html5lib # isodate # python-dateutil + # requests-mock smartypants==2.0.1 # via # -r requirements/base.txt @@ -386,8 +440,7 @@ tomli==2.0.1 uritemplate==4.1.1 # via # -r requirements/base.txt - # coreapi - # drf-yasg + # drf-spectacular urllib3==1.26.10 # via # -r requirements/base.txt @@ -400,7 +453,7 @@ vine==5.0.0 # amqp # celery # kombu -vng-api-common==1.7.8 +vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade # via -r requirements/base.txt wcwidth==0.2.5 # via @@ -419,6 +472,10 @@ wrapt==1.14.1 # via # -r requirements/base.txt # deprecated +zgw-consumers==0.21.2 + # via + # -r requirements/base.txt + # notifications-api-common zipp==3.8.1 # via # -r requirements/base.txt diff --git a/src/nrc/api/apps.py b/src/nrc/api/apps.py new file mode 100644 index 00000000..341082e3 --- /dev/null +++ b/src/nrc/api/apps.py @@ -0,0 +1,13 @@ +from django.apps import AppConfig + +from vng_api_common.api import register_extensions + + +class ZRCApiConfig(AppConfig): + name = "nrc.api" + + def ready(self): + register_extensions() + + # ensure that the metaclass for every viewset has run + from . import viewsets # noqa diff --git a/src/nrc/api/schema.py b/src/nrc/api/schema.py index fd2ebfbd..146e4159 100644 --- a/src/nrc/api/schema.py +++ b/src/nrc/api/schema.py @@ -1,8 +1,14 @@ from django.conf import settings -from drf_yasg import openapi - -description = f""" +__all__ = [ + "TITLE", + "DESCRIPTION", + "CONTACT", + "LICENSE", + "VERSION", +] +TITLE = f"{settings.PROJECT_NAME} API" +DESCRIPTION = f""" The API consists of three parts: 1. **Publishing events (resource Events)**
The events resource is based on the [GOV NL profile for CloudEvents](https://vng-realisatie.github.io/NL-GOV-profile-for-CloudEvents). This specification only contains brief descriptions of the attributes of the event. Please refer to the GOV NL profile for additional information. @@ -13,11 +19,9 @@ This specification is work in progress. It can be changed completely without notice. """ -info = openapi.Info( - title=f"{settings.PROJECT_NAME} API", - default_version=settings.API_VERSION, - description=description, - license=openapi.License( - name="EUPL 1.2", url="https://opensource.org/licenses/EUPL-1.2" - ), -) +CONTACT = { + "email": "standaarden.ondersteuning@vng.nl", + "url": settings.DOCUMENTATION_URL, +} +LICENSE = {"name": "EUPL 1.2", "url": "https://opensource.org/licenses/EUPL-1.2"} +VERSION = settings.API_VERSION diff --git a/src/nrc/api/tests/test_domains.py b/src/nrc/api/tests/test_domains.py index 290af1a7..88c20306 100644 --- a/src/nrc/api/tests/test_domains.py +++ b/src/nrc/api/tests/test_domains.py @@ -43,7 +43,7 @@ def test_domain_retrieve(self): """ domain = DomainFactory() - url = get_operation_url("domain_read", uuid=domain.uuid) + url = get_operation_url("domain_retrieve", uuid=domain.uuid) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -186,7 +186,7 @@ def test_destroy_domain(self): delete existent domain """ domain = DomainFactory.create() - domain_delete_url = get_operation_url("domain_delete", uuid=domain.uuid) + domain_delete_url = get_operation_url("domain_destroy", uuid=domain.uuid) response = self.client.delete(domain_delete_url) diff --git a/src/nrc/api/tests/test_dso_api_strategy.py b/src/nrc/api/tests/test_dso_api_strategy.py index a9ca8255..a5e6f98e 100644 --- a/src/nrc/api/tests/test_dso_api_strategy.py +++ b/src/nrc/api/tests/test_dso_api_strategy.py @@ -9,23 +9,12 @@ class DSOApiStrategyTests(APITestCase): - def test_api_19_documentation_version_json(self): - url = reverse("schema-json", kwargs={"format": ".json"}) - - response = self.client.get(url) - - self.assertIn("application/json", response["Content-Type"]) - - doc = response.json() - - self.assertGreaterEqual(doc["openapi"], "3.0.0") - def test_api_19_documentation_version_yaml(self): - url = reverse("schema-json", kwargs={"format": ".yaml"}) + url = reverse("schema") response = self.client.get(url) - self.assertIn("application/yaml", response["Content-Type"]) + self.assertIn("application/vnd.oai.openapi", response["Content-Type"]) doc = yaml.safe_load(response.content) diff --git a/src/nrc/api/tests/test_scopes.py b/src/nrc/api/tests/test_scopes.py index d3f1b924..3b43c31e 100644 --- a/src/nrc/api/tests/test_scopes.py +++ b/src/nrc/api/tests/test_scopes.py @@ -67,7 +67,7 @@ def test_correct_scope_read(self): self.autorisatie.save() domain = DomainFactory() - url = get_operation_url("domain_read", uuid=domain.uuid) + url = get_operation_url("domain_retrieve", uuid=domain.uuid) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -81,7 +81,7 @@ def test_incorrect_scope_read(self): self.autorisatie.save() domain = DomainFactory() - url = get_operation_url("domain_read", uuid=domain.uuid) + url = get_operation_url("domain_retrieve", uuid=domain.uuid) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN, response.data) @@ -95,7 +95,7 @@ def test_correct_scope_delete(self): self.autorisatie.save() domain = DomainFactory() - url = get_operation_url("domain_delete", uuid=domain.uuid) + url = get_operation_url("domain_destroy", uuid=domain.uuid) response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -109,7 +109,7 @@ def test_incorrect_scope_delete(self): self.autorisatie.save() domain = DomainFactory() - url = get_operation_url("domain_read", uuid=domain.uuid) + url = get_operation_url("domain_retrieve", uuid=domain.uuid) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN, response.data) @@ -264,7 +264,7 @@ def test_correct_scope_delete(self): subscription = SubscriptionFactory.create() subscription_url = get_operation_url( - "subscription_delete", uuid=subscription.uuid + "subscription_destroy", uuid=subscription.uuid ) response = self.client.delete(subscription_url) @@ -283,7 +283,7 @@ def test_incorrect_scope_delete(self): subscription = SubscriptionFactory.create() subscription_url = get_operation_url( - "subscription_delete", uuid=subscription.uuid + "subscription_destroy", uuid=subscription.uuid ) response = self.client.delete(subscription_url) diff --git a/src/nrc/api/tests/test_subscriptions.py b/src/nrc/api/tests/test_subscriptions.py index e24d87bc..15a6129c 100644 --- a/src/nrc/api/tests/test_subscriptions.py +++ b/src/nrc/api/tests/test_subscriptions.py @@ -227,7 +227,7 @@ def test_subscription_destroy(self): """ subscription = SubscriptionFactory.create() subscription_url = get_operation_url( - "subscription_read", uuid=subscription.uuid + "subscription_retrieve", uuid=subscription.uuid ) response = self.client.delete(subscription_url) diff --git a/src/nrc/api/urls.py b/src/nrc/api/urls.py index 0af860dc..d7fe1416 100644 --- a/src/nrc/api/urls.py +++ b/src/nrc/api/urls.py @@ -2,7 +2,7 @@ from django.urls import include, path from vng_api_common import routers -from vng_api_common.schema import SchemaView +from vng_api_common.views import SchemaViewAPI, SchemaViewRedoc from .viewsets import DomainViewSet, EventAPIView, SubscriptionViewSet @@ -18,13 +18,13 @@ [ # API documentation url( - r"^schema/openapi(?P\.json|\.yaml)$", - SchemaView.without_ui(cache_timeout=None), - name="schema-json", + r"^schema/openapi.yaml", + SchemaViewAPI.as_view(), + name="schema", ), url( - r"^schema/$", - SchemaView.with_ui("redoc", cache_timeout=None), + r"^schema/", + SchemaViewRedoc.as_view(url_name="schema-redoc"), name="schema-redoc", ), # actual API diff --git a/src/nrc/api/viewsets.py b/src/nrc/api/viewsets.py index 02f9eb01..53d18467 100644 --- a/src/nrc/api/viewsets.py +++ b/src/nrc/api/viewsets.py @@ -1,6 +1,8 @@ import logging -from drf_yasg.utils import swagger_auto_schema +from django.utils.translation import gettext as _ + +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import mixins, status, views, viewsets from rest_framework.parsers import JSONParser from rest_framework.renderers import JSONRenderer @@ -31,6 +33,23 @@ logger = logging.getLogger(__name__) +@extend_schema_view( + list=extend_schema( + summary=_("Returns a list with information about all subscriptions."), + ), + retrieve=extend_schema( + summary=_("Returns information about the specified subscription."), + ), + create=extend_schema( + summary=_("Subscribe to receive events."), + ), + update=extend_schema( + summary=_("Update the specified subscription by replacing all properties."), + ), + destroy=extend_schema( + summary=_("Delete the specified subscription."), + ), +) class SubscriptionViewSet( CheckQueryParamsMixin, mixins.CreateModelMixin, @@ -40,26 +59,6 @@ class SubscriptionViewSet( mixins.RetrieveModelMixin, viewsets.GenericViewSet, ): - """ - list: - Returns a list with information about all subscriptions. - - create: - Subscribe to receive events. - - retrieve: - Returns information about the specified subscription. - - update: - Update the specified subscription by replacing all properties. - - partial_update: - Update the specified subscription by replacing the modified properties. - - destroy: - Delete the specified subscription. - """ - queryset = Subscription.objects.all() serializer_class = SubscriptionSerializer lookup_field = "uuid" @@ -75,6 +74,19 @@ class SubscriptionViewSet( parser_classes = (SubscriptionParser,) +@extend_schema_view( + list=extend_schema( + summary=_("Returns a list with information about all domains."), + ), + retrieve=extend_schema( + summary=_("Returns information about the specified domain."), + ), + create=extend_schema( + summary=_( + "Defines a new domain with its basis properties and filter attributes." + ), + ), +) class DomainViewSet( CheckQueryParamsMixin, mixins.CreateModelMixin, @@ -84,26 +96,6 @@ class DomainViewSet( mixins.RetrieveModelMixin, viewsets.GenericViewSet, ): - """ - list: - Returns a list with information about all domains. - - create: - Defines a new domain with its basis properties and filter attributes. - - update: - Update the specified domain by replacing all properties. - - partial_update: - Update the specified domain by replacing the modified properties. - - retrieve: - Returns information about the specified domain. - - destroy: - Delete the specified domain. - """ - queryset = Domain.objects.all() serializer_class = DomainSerializer filterset_class = DomainFilter @@ -119,21 +111,20 @@ class DomainViewSet( class EventAPIView(views.APIView): - """ - Publish an event. - - The component will distribute the event to the subscribers when the criteria - of a subscription are met. - """ - + global_description = _( + "Publish an event " + "The component will distribute the event to the subscribers when the criteria" + "of a subscription are met." + ) required_scopes = {"create": SCOPE_EVENTS_PUBLISH} # Exposed action of the view used by the vng_api_common action = "create" + serializer_class = EventSerializer parser_classes = (JSONParser,) renderer_classes = (JSONRenderer,) - @swagger_auto_schema(request_body=EventSerializer, responses={200: EventSerializer}) + @extend_schema(responses={200: EventSerializer}, request=EventSerializer) def create(self, request, *args, **kwargs): return self.post(request, *args, **kwargs) diff --git a/src/nrc/conf/api.py b/src/nrc/conf/api.py index 72e6e704..5c63c482 100644 --- a/src/nrc/conf/api.py +++ b/src/nrc/conf/api.py @@ -4,34 +4,25 @@ API_VERSION = "2.0.0-alpha13" +DOCUMENTATION_INFO_MODULE = "nrc.api.schema" + REST_FRAMEWORK = BASE_REST_FRAMEWORK.copy() REST_FRAMEWORK.update( {"DEFAULT_PERMISSION_CLASSES": ("vng_api_common.permissions.AuthScopesRequired",)} ) -SECURITY_DEFINITION_NAME = "JWT-Claims" - -SWAGGER_SETTINGS = BASE_SWAGGER_SETTINGS.copy() -SWAGGER_SETTINGS.update( +SPECTACULAR_SETTINGS = BASE_SPECTACULAR_SETTINGS.copy() +SPECTACULAR_SETTINGS.update( { - "DEFAULT_INFO": "nrc.api.schema.info", - "SECURITY_DEFINITIONS": { - SECURITY_DEFINITION_NAME: { - # OAS 3.0 - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - # not official... - # 'scopes': {}, # TODO: set up registry that's filled in later... - # Swagger 2.0 - # 'name': 'Authorization', - # 'in': 'header' - # 'type': 'apiKey', - } - }, + "SERVERS": [{"url": "https://notificaties-api.test.vng.cloud/api/v1"}], } ) - +SPECTACULAR_EXTENSIONS = [ + "vng_api_common.extensions.fields.hyperlink_identity.HyperlinkedIdentityFieldExtension", + "vng_api_common.extensions.fields.many_related.ManyRelatedFieldExtension", + "vng_api_common.extensions.fields.read_only.ReadOnlyFieldExtension", + "vng_api_common.extensions.filters.query.FilterExtension", +] GEMMA_URL_INFORMATIEMODEL_VERSIE = "1.0" TEST_CALLBACK_AUTH = True diff --git a/src/nrc/conf/base.py b/src/nrc/conf/base.py index e1621afd..c0bdb0e7 100644 --- a/src/nrc/conf/base.py +++ b/src/nrc/conf/base.py @@ -65,11 +65,14 @@ "vng_api_common", # before drf_yasg to override the management command "vng_api_common.authorizations", "vng_api_common.notifications", - "drf_yasg", + "drf_spectacular", "rest_framework", "django_markup", "django_better_admin_arrayfield", "solo", + "simple_certmanager", + "zgw_consumers", + "notifications_api_common", # Project applications. "nrc.accounts", "nrc.api", diff --git a/src/openapi.yaml b/src/openapi.yaml index f5aeae46..d828848f 100644 --- a/src/openapi.yaml +++ b/src/openapi.yaml @@ -1,39 +1,42 @@ -openapi: 3.0.0 +openapi: 3.0.3 info: title: Notification API - description: "\nThe API consists of three parts:\n 1. **Publishing events (resource\ - \ Events)**
The events resource is based on the [GOV NL profile for CloudEvents](https://vng-realisatie.github.io/NL-GOV-profile-for-CloudEvents).\n\ - \ This specification only contains brief descriptions of the attributes of\ - \ the event. Please refer to the GOV NL profile for additional information.\n\ - \ 2. **Subscribing to receive events (resource Subscriptions)**
\n The\ - \ subscription resource was derived from the [CloudEvents Subscription v1.0.0-wip](https://github.com/cloudevents/spec/tree/main/subscriptions).\n\ - \ This specification only contains brief descriptions of the attributes of\ - \ the subscription. Please refer to the draft CE Subscription Specification for\ - \ additional information.\n 3. **Basic information about domains (resource\ - \ Domains)**
The scopes for autorisation are described [here](https://github.com/VNG-Realisatie/notificatieservices/blob/main/docs/api-specification/scopes.md).\n\ - \ This specification is work in progress. It can be changed completely without\ - \ notice.\n" + version: 2.0.0-alpha13 + description: |2 + + The API consists of three parts: + 1. **Publishing events (resource Events)**
The events resource is based on the [GOV NL profile for CloudEvents](https://vng-realisatie.github.io/NL-GOV-profile-for-CloudEvents). + This specification only contains brief descriptions of the attributes of the event. Please refer to the GOV NL profile for additional information. + 2. **Subscribing to receive events (resource Subscriptions)**
+ The subscription resource was derived from the [CloudEvents Subscription v1.0.0-wip](https://github.com/cloudevents/spec/tree/main/subscriptions). + This specification only contains brief descriptions of the attributes of the subscription. Please refer to the draft CE Subscription Specification for additional information. + 3. **Basic information about domains (resource Domains)**
The scopes for autorisation are described [here](https://github.com/VNG-Realisatie/notificatieservices/blob/main/docs/api-specification/scopes.md). + This specification is work in progress. It can be changed completely without notice. + contact: + email: standaarden.ondersteuning@vng.nl + url: https://vng-realisatie.github.io/gemma-zaken license: name: EUPL 1.2 url: https://opensource.org/licenses/EUPL-1.2 - version: 2.0.0-alpha13 -security: -- JWT-Claims: [] paths: - /domains: + /api/v1/domains: get: operationId: domain_list - description: Returns a list with information about all domains. + summary: Returns a list with information about all domains. parameters: - name: name + required: false in: query description: Name of the domain. - required: false schema: type: string + tags: + - domains + security: + - JWT-Claims: + - domains.read responses: '200': - description: OK headers: API-version: schema: @@ -46,92 +49,32 @@ paths: type: array items: $ref: '#/components/schemas/Domain' + description: OK '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - domains - security: - - JWT-Claims: - - domains.read - post: - operationId: domain_create - description: Defines a new domain with its basis properties and filter attributes. - parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true - schema: - type: string - enum: - - application/json - requestBody: - $ref: '#/components/requestBodies/Domain' - responses: - '201': - description: Created headers: API-version: schema: type: string description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' - Location: + content: + application/json: + schema: + $ref: '#/components/schemas/ValidatieFout' + description: Bad request + '401': + headers: + API-version: schema: type: string - format: uri - description: URL waar de resource leeft. + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' content: application/json: schema: - $ref: '#/components/schemas/Domain' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' + $ref: '#/components/schemas/Fout' + description: Unauthorized '403': - $ref: '#/components/responses/403' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - domains - security: - - JWT-Claims: - - domains.create - parameters: [] - /domains/{uuid}: - get: - operationId: domain_read - description: Returns information about the specified domain. - responses: - '200': - description: OK headers: API-version: schema: @@ -141,47 +84,9 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Domain' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + $ref: '#/components/schemas/Fout' + description: Forbidden '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - domains - security: - - JWT-Claims: - - domains.read - put: - operationId: domain_update - description: Update the specified domain by replacing all properties. - parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true - schema: - type: string - enum: - - application/json - requestBody: - $ref: '#/components/requestBodies/Domain' - responses: - '200': - description: OK headers: API-version: schema: @@ -191,49 +96,9 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Domain' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' + $ref: '#/components/schemas/Fout' + description: Not acceptable '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - domains - security: - - JWT-Claims: - - domains.update - patch: - operationId: domain_partial_update - description: Update the specified domain by replacing the modified properties. - parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true - schema: - type: string - enum: - - application/json - requestBody: - $ref: '#/components/requestBodies/Domain' - responses: - '200': - description: OK headers: API-version: schema: @@ -243,102 +108,87 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Domain' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' + $ref: '#/components/schemas/Fout' + description: Conflict '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - domains - security: - - JWT-Claims: - - domains.update - delete: - operationId: domain_delete - description: Delete the specified domain. - responses: - '204': - description: No content headers: API-version: schema: type: string description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone '415': - $ref: '#/components/responses/415' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type '429': - $ref: '#/components/responses/429' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests '500': - $ref: '#/components/responses/500' - tags: - - domains - security: - - JWT-Claims: - - domains.delete - parameters: - - name: uuid - in: path - description: UUID of the domain. - required: true - schema: - type: string - format: uuid - /events: + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error post: - operationId: events_create - summary: Publish an event. - description: 'The component will distribute the event to the subscribers when - the criteria - - of a subscription are met.' + operationId: domain_create + summary: Defines a new domain with its basis properties and filter attributes. parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true + - in: header + name: Content-Type schema: type: string enum: - application/json + description: Content type van de verzoekinhoud. + required: true + tags: + - domains requestBody: content: application/json: schema: - $ref: '#/components/schemas/Event' + $ref: '#/components/schemas/Domain' required: true + security: + - JWT-Claims: + - domains.create responses: - '200': - description: '' + '201': headers: + Location: + schema: + type: string + format: uri + description: URL waar de resource leeft. API-version: schema: type: string @@ -347,20 +197,9 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Event' - tags: - - events - security: - - JWT-Claims: - - events.publish - parameters: [] - /subscriptions: - get: - operationId: subscription_list - description: Returns a list with information about all subscriptions. - responses: - '200': - description: OK + $ref: '#/components/schemas/Domain' + description: Created + '400': headers: API-version: schema: @@ -370,93 +209,1447 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/Subscription' + $ref: '#/components/schemas/ValidatieFout' + description: Bad request '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - subscriptions - security: - - JWT-Claims: - - subscriptions.read - post: - operationId: subscription_create - description: Subscribe to receive events. - parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true - schema: - type: string - enum: - - application/json - requestBody: - $ref: '#/components/requestBodies/Subscription' - responses: - '201': - description: Created headers: API-version: schema: type: string description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' - Location: + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: schema: type: string - format: uri - description: URL waar de resource leeft. + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' content: application/json: schema: - $ref: '#/components/schemas/Subscription' + $ref: '#/components/schemas/Fout' + description: Forbidden + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + /api/v1/domains/{uuid}: + get: + operationId: domain_retrieve + summary: Returns information about the specified domain. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the domain. + title: uuid + required: true + tags: + - domains + security: + - JWT-Claims: + - domains.read + responses: + '200': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + description: OK + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '404': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + put: + operationId: domain_update + parameters: + - in: header + name: Content-Type + schema: + type: string + enum: + - application/json + description: Content type van de verzoekinhoud. + required: true + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the domain. + title: uuid + required: true + tags: + - domains + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + required: true + security: + - JWT-Claims: + - domains.update + responses: + '200': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + description: OK + '400': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidatieFout' + description: Bad request + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '404': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + patch: + operationId: domain_partial_update + parameters: + - in: header + name: Content-Type + schema: + type: string + enum: + - application/json + description: Content type van de verzoekinhoud. + required: true + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the domain. + title: uuid + required: true + tags: + - domains + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedDomain' + security: + - JWT-Claims: + - domains.update + responses: + '200': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + description: OK + '400': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidatieFout' + description: Bad request + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '404': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + delete: + operationId: domain_destroy + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the domain. + title: uuid + required: true + tags: + - domains + security: + - JWT-Claims: + - domains.delete + responses: + '204': + description: No content + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '404': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + /api/v1/events: + post: + operationId: events_create + parameters: + - in: header + name: Content-Type + schema: + type: string + enum: + - application/json + description: Content type van de verzoekinhoud. + required: true + tags: + - events + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Event' + required: true + security: + - JWT-Claims: + - events.publish + responses: + '201': + headers: + Location: + schema: + type: string + format: uri + description: URL waar de resource leeft. + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Event' + description: Created + '400': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidatieFout' + description: Bad request + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + /api/v1/subscriptions: + get: + operationId: subscription_list + summary: Returns a list with information about all subscriptions. + tags: + - subscriptions + security: + - JWT-Claims: + - subscriptions.read + responses: + '200': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Subscription' + description: OK + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + post: + operationId: subscription_create + summary: Subscribe to receive events. + parameters: + - in: header + name: Content-Type + schema: + type: string + enum: + - application/json + description: Content type van de verzoekinhoud. + required: true + tags: + - subscriptions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + required: true + security: + - JWT-Claims: + - subscriptions.create + responses: + '201': + headers: + Location: + schema: + type: string + format: uri + description: URL waar de resource leeft. + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + description: Created + '400': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidatieFout' + description: Bad request + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + /api/v1/subscriptions/{uuid}: + get: + operationId: subscription_retrieve + summary: Returns information about the specified subscription. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the subscription. + title: uuid + required: true + tags: + - subscriptions + security: + - JWT-Claims: + - subscriptions.read + responses: + '200': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + description: OK + '401': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized + '403': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '404': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found + '406': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable + '409': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict + '410': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone + '415': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type + '429': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests + '500': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + put: + operationId: subscription_update + summary: Update the specified subscription by replacing all properties. + parameters: + - in: header + name: Content-Type + schema: + type: string + enum: + - application/json + description: Content type van de verzoekinhoud. + required: true + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the subscription. + title: uuid + required: true + tags: + - subscriptions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + required: true + security: + - JWT-Claims: + - subscriptions.update + responses: + '200': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + description: OK '400': - $ref: '#/components/responses/400' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidatieFout' + description: Bad request '401': - $ref: '#/components/responses/401' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized '403': - $ref: '#/components/responses/403' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden + '404': + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found '406': - $ref: '#/components/responses/406' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable '409': - $ref: '#/components/responses/409' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict '410': - $ref: '#/components/responses/410' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone '415': - $ref: '#/components/responses/415' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type '429': - $ref: '#/components/responses/429' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests '500': - $ref: '#/components/responses/500' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + patch: + operationId: subscription_partial_update + parameters: + - in: header + name: Content-Type + schema: + type: string + enum: + - application/json + description: Content type van de verzoekinhoud. + required: true + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the subscription. + title: uuid + required: true tags: - subscriptions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedSubscription' security: - JWT-Claims: - - subscriptions.create - parameters: [] - /subscriptions/{uuid}: - get: - operationId: subscription_read - description: Returns information about the specified subscription. + - subscriptions.update responses: '200': - description: OK headers: API-version: schema: @@ -467,46 +1660,8 @@ paths: application/json: schema: $ref: '#/components/schemas/Subscription' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - subscriptions - security: - - JWT-Claims: - - subscriptions.read - put: - operationId: subscription_update - description: Update the specified subscription by replacing all properties. - parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true - schema: - type: string - enum: - - application/json - requestBody: - $ref: '#/components/requestBodies/Subscription' - responses: - '200': description: OK + '400': headers: API-version: schema: @@ -516,49 +1671,9 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Subscription' - '400': - $ref: '#/components/responses/400' + $ref: '#/components/schemas/ValidatieFout' + description: Bad request '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '409': - $ref: '#/components/responses/409' - '410': - $ref: '#/components/responses/410' - '415': - $ref: '#/components/responses/415' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - tags: - - subscriptions - security: - - JWT-Claims: - - subscriptions.update - patch: - operationId: subscription_partial_update - description: Update the specified subscription by replacing the modified properties. - parameters: - - name: Content-Type - in: header - description: Content type van de verzoekinhoud. - required: true - schema: - type: string - enum: - - application/json - requestBody: - $ref: '#/components/requestBodies/Subscription' - responses: - '200': - description: OK headers: API-version: schema: @@ -568,88 +1683,235 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Subscription' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' + $ref: '#/components/schemas/Fout' + description: Unauthorized '403': - $ref: '#/components/responses/403' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden '404': - $ref: '#/components/responses/404' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found '406': - $ref: '#/components/responses/406' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable '409': - $ref: '#/components/responses/409' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict '410': - $ref: '#/components/responses/410' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone '415': - $ref: '#/components/responses/415' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type '429': - $ref: '#/components/responses/429' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests '500': - $ref: '#/components/responses/500' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error + delete: + operationId: subscription_destroy + summary: Delete the specified subscription. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + description: UUID of the subscription. + title: uuid + required: true tags: - subscriptions security: - JWT-Claims: - - subscriptions.update - delete: - operationId: subscription_delete - description: Delete the specified subscription. + - subscriptions.delete responses: '204': description: No content + '401': headers: API-version: schema: type: string description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' - '401': - $ref: '#/components/responses/401' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unauthorized '403': - $ref: '#/components/responses/403' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Forbidden '404': - $ref: '#/components/responses/404' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not found '406': - $ref: '#/components/responses/406' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Not acceptable '409': - $ref: '#/components/responses/409' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Conflict '410': - $ref: '#/components/responses/410' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Gone '415': - $ref: '#/components/responses/415' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Unsupported media type '429': - $ref: '#/components/responses/429' + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Too many requests '500': - $ref: '#/components/responses/500' - tags: - - subscriptions - security: - - JWT-Claims: - - subscriptions.delete - parameters: - - name: uuid - in: path - description: UUID of the subscription. - required: true - schema: - type: string - format: uuid -tags: -- name: domains - description: '' -- name: events - description: '' -- name: subscriptions - description: '' -servers: -- url: /api/v1 + headers: + API-version: + schema: + type: string + description: 'Geeft een specifieke API-versie aan in de context van + een specifieke aanroep. Voorbeeld: 1.2.1.' + content: + application/json: + schema: + $ref: '#/components/schemas/Fout' + description: Internal server error components: responses: '400': - description: Bad request headers: API-version: schema: @@ -657,11 +1919,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/ValidatieFout' + description: Bad request '401': - description: Unauthorized headers: API-version: schema: @@ -669,11 +1931,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' + description: Unauthorized '403': - description: Forbidden headers: API-version: schema: @@ -681,23 +1943,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' + description: Forbidden '404': - description: Not found - headers: - API-version: - schema: - type: string - description: 'Geeft een specifieke API-versie aan in de context van een - specifieke aanroep. Voorbeeld: 1.2.1.' - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Fout' - '406': - description: Not acceptable headers: API-version: schema: @@ -705,11 +1955,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' - '409': - description: Conflict + description: Not found + '406': headers: API-version: schema: @@ -717,11 +1967,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' - '410': - description: Gone + description: Not acceptable + '409': headers: API-version: schema: @@ -729,11 +1979,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' - '412': - description: Precondition failed + description: Conflict + '410': headers: API-version: schema: @@ -741,11 +1991,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' + description: Gone '415': - description: Unsupported media type headers: API-version: schema: @@ -753,11 +2003,11 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' + description: Unsupported media type '429': - description: Too many requests headers: API-version: schema: @@ -765,445 +2015,571 @@ components: description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' content: - application/problem+json: + application/json: schema: $ref: '#/components/schemas/Fout' + description: Too many requests '500': - description: Internal server error headers: API-version: schema: type: string description: 'Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.' - content: - application/problem+json: - schema: - $ref: '#/components/schemas/Fout' - requestBodies: - Domain: - content: - application/json: - schema: - $ref: '#/components/schemas/Domain' - required: true - Subscription: content: application/json: schema: - $ref: '#/components/schemas/Subscription' - required: true - securitySchemes: - JWT-Claims: - type: http - scheme: bearer - bearerFormat: JWT + $ref: '#/components/schemas/Fout' + description: Internal server error schemas: + AccessTokenTypeEnum: + enum: + - bearer + type: string + CredentialTypeEnum: + enum: + - ACCESSTOKEN + type: string Domain: - required: - - name type: object properties: name: + type: string title: Naam description: Name of the domain. - type: string maxLength: 255 - minLength: 1 documentationLink: + type: string + format: uri title: Documentatie link description: Link to human readable information about the domain and its notifications. - type: string - format: uri maxLength: 200 filterAttributes: - description: Filter attributes offered by the domain. type: array items: - title: Filter attributes type: string maxLength: 255 - minLength: 1 + description: Filter attributes offered by the domain. + title: filter attributes uuid: - title: Uuid - description: UUID of the domain. type: string format: uuid readOnly: true + description: UUID of the domain. + title: uuid url: - title: Url - description: URL-referentie naar dit object. Dit is de unieke identificatie - en locatie van dit object. type: string format: uri readOnly: true - maxLength: 1000 + title: url + description: URL-referentie naar dit object. Dit is de unieke identificatie + en locatie van dit object. minLength: 1 - Fout: + maxLength: 1000 required: - - code - - title - - status - - detail - - instance + - name + - url + - uuid + Event: type: object properties: + id: + type: string + description: Identifies the event. Producers MUST ensure that source + id + is unique for each distinct event. SHOULD be a UUID. + title: id + specversion: + allOf: + - $ref: '#/components/schemas/SpecversionEnum' + description: The version of the CloudEvents specification which the event + uses. Compliant event producers MUST use a value of 1.0 when referring + to this version of the specification. + title: specversion + source: + type: string + description: Identifies the context in which an event happened. SHOULD be + a URN notation with 'nld' as namespace identifier. SHOULD contain consecutive + a unique identifier of the organization that publishes the event followed + by the source system that publishes the event. Involved organizations + SHOULD agree on how organizations and systems are uniquely identified + (e.g. via the use of OIN, KVK-nummer or eIDAS legal identifier for organization + identification);. + title: source + domain: + type: string + title: domain + description: Name of the domain to which the event belongs. Can be seen + as the namespace of the event.(This attribute is not listed in the GOV + NL profile for CloudEvents). type: - title: Type - description: URI referentie naar het type fout, bedoeld voor developers type: string - code: - title: Code - description: Systeemcode die het type fout aangeeft + description: Beschrijft het type EVENT afkomstig van het specifieke DOMAIN.This + attribute contains a value describing the type of event. Type SHOULD start + with the domain followed by the name of the event. Events SHOULD be expressed + in the past tense. If subtypes are required those SHOULD be expressed + using a dot '.' between the super and subtype(s). The type MAY contain + version information. Version information SHOULD be appended at the end + of the string. + title: type + time: type: string - minLength: 1 - title: - title: Title - description: Generieke titel voor het type fout + format: date-time + nullable: true + description: Timestamp of the event. SHOULD be the timestamp the event was + registered in the source system and NOT the time the event occurred in + reality. The exact meaning of time MUST be clearly documented. + title: time + subscription: type: string - minLength: 1 - status: - title: Status - description: De HTTP status code - type: integer - detail: - title: Detail - description: Extra informatie bij de fout, indien beschikbaar + format: uuid + nullable: true + description: Usually empty. Only used in situations where notificationservices + are chained. For example notificationservice2 (ns2) is subscribed to notifcationservice1 + (ns1). When ns1 sends an event to ns2 this attribute SHOULD contain the + subscription id of the subscription that ns1 has on ns2 (that was resposible + for receiving the event). Note this attribute is overwritten when the + event is passed through to a client. It will be set to the value of the + subscription id of the subscription of the client. + title: subscription + subscriberReference: type: string - minLength: 1 - instance: - title: Instance - description: URI met referentie naar dit specifiek voorkomen van de fout. - Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld. + nullable: true + description: Usually empty. Only used in situations where notificationservices + are chained. For example notificationservice2 (ns2) is subscribed to notifcationservice1 + (ns1). When ns1 sends an event to ns2 this attribute COULD contain the + subscriberReference the was specified when ns2 subscribed to ns1. Note + this attribute is overwritten when the event is passed through to a client. + It will be set to the value of the subscriberReference of the subscription + of the client (when specified by the client). + title: subscriberReference + maxLength: 255 + datacontenttype: type: string - minLength: 1 - FieldValidationError: + nullable: true + description: Content type of data value. In this version of the API the + value MUST be 'application/json'. In future versions of the API other + values such as described in RFC 2046 MAY be used. + title: datacontenttype + dataschema: + type: string + format: uri + nullable: true + description: Identifies the schema that data adheres to. + title: dataschema + sequence: + type: string + nullable: true + description: Value expressing the relative order of the event. This enables + interpretation of data supercedence. + title: sequence + sequencetype: + nullable: true + description: Specifies the semantics of the sequence attribute. (Currently + limited to the value INTEGER). + title: sequencetype + oneOf: + - $ref: '#/components/schemas/SequencetypeEnum' + - $ref: '#/components/schemas/NullEnum' + subject: + type: string + nullable: true + description: Included to be compatible with CloudEvents specification. The + GOV NL profile states 'Decision on whether or not to use the attribute + and/or the exact interpretation is postponed. To be determined partly + on the basis of future agreements about subscription and filtering.' + title: subject + data: + type: object + additionalProperties: {} + nullable: true + title: data + dataBase64: + type: string + nullable: true + description: The presence of the data_base64 member clearly indicates that + the value is a Base64 encoded binary data, which the serializer MUST decode + into a binary runtime data type. + title: dataBase64 + dataref: + type: string + nullable: true + description: A reference to a location where the event payload is stored. + If both the data attribute and the dataref attribute are specified their + contents MUST be identical. + title: dataref required: - - name - - code - - reason + - domain + - id + - source + - specversion + - type + FieldValidationError: type: object + description: Formaat van validatiefouten. properties: name: - title: Name - description: Naam van het veld met ongeldige gegevens type: string - minLength: 1 + description: Naam van het veld met ongeldige gegevens + title: name code: - title: Code - description: Systeemcode die het type fout aangeeft type: string - minLength: 1 + description: Systeemcode die het type fout aangeeft + title: code reason: - title: Reason - description: Uitleg wat er precies fout is met de gegevens type: string - minLength: 1 - ValidatieFout: + description: Uitleg wat er precies fout is met de gegevens + title: reason required: - code - - title - - status - - detail - - instance - - invalidParams + - name + - reason + Fout: type: object + description: Formaat van HTTP 4xx en 5xx fouten. properties: type: - title: Type - description: URI referentie naar het type fout, bedoeld voor developers type: string + description: URI referentie naar het type fout, bedoeld voor developers + title: type code: - title: Code - description: Systeemcode die het type fout aangeeft type: string - minLength: 1 + description: Systeemcode die het type fout aangeeft + title: code title: - title: Title - description: Generieke titel voor het type fout type: string - minLength: 1 + description: Generieke titel voor het type fout + title: title status: - title: Status - description: De HTTP status code type: integer + description: De HTTP status code + title: status detail: - title: Detail - description: Extra informatie bij de fout, indien beschikbaar - type: string - minLength: 1 - instance: - title: Instance - description: URI met referentie naar dit specifiek voorkomen van de fout. - Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld. - type: string - minLength: 1 - invalidParams: - type: array - items: - $ref: '#/components/schemas/FieldValidationError' - Event: - required: - - id - - specversion - - source - - domain - - type - type: object - properties: - id: - title: Id - description: Identifies the event. Producers MUST ensure that source + id - is unique for each distinct event. SHOULD be a UUID. - type: string - minLength: 1 - specversion: - title: Specversion - description: The version of the CloudEvents specification which the event - uses. Compliant event producers MUST use a value of 1.0 when referring - to this version of the specification. type: string - enum: - - '1.0' - source: - title: Source - description: Identifies the context in which an event happened. SHOULD be - a URN notation with 'nld' as namespace identifier. SHOULD contain consecutive - a unique identifier of the organization that publishes the event followed - by the source system that publishes the event. Involved organizations - SHOULD agree on how organizations and systems are uniquely identified - (e.g. via the use of OIN, KVK-nummer or eIDAS legal identifier for organization - identification);. - type: string - minLength: 1 - domain: - title: Domain - description: Name of the domain to which the event belongs. Can be seen - as the namespace of the event.(This attribute is not listed in the GOV - NL profile for CloudEvents). + description: Extra informatie bij de fout, indien beschikbaar + title: detail + instance: type: string - type: - title: Type - description: Beschrijft het type EVENT afkomstig van het specifieke DOMAIN.This - attribute contains a value describing the type of event. Type SHOULD start - with the domain followed by the name of the event. Events SHOULD be expressed - in the past tense. If subtypes are required those SHOULD be expressed - using a dot '.' between the super and subtype(s). The type MAY contain - version information. Version information SHOULD be appended at the end - of the string. + description: URI met referentie naar dit specifiek voorkomen van de fout. + Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld. + title: instance + required: + - code + - detail + - instance + - status + - title + MethodEnum: + enum: + - POST + type: string + NullEnum: + enum: + - null + PatchedDomain: + type: object + properties: + name: type: string - minLength: 1 - time: - title: Time - description: Timestamp of the event. SHOULD be the timestamp the event was - registered in the source system and NOT the time the event occurred in - reality. The exact meaning of time MUST be clearly documented. + title: Naam + description: Name of the domain. + maxLength: 255 + documentationLink: type: string - format: date-time - nullable: true - subscription: - title: Subscription - description: Usually empty. Only used in situations where notificationservices - are chained. For example notificationservice2 (ns2) is subscribed to notifcationservice1 - (ns1). When ns1 sends an event to ns2 this attribute SHOULD contain the - subscription id of the subscription that ns1 has on ns2 (that was resposible - for receiving the event). Note this attribute is overwritten when the - event is passed through to a client. It will be set to the value of the - subscription id of the subscription of the client. + format: uri + title: Documentatie link + description: Link to human readable information about the domain and its + notifications. + maxLength: 200 + filterAttributes: + type: array + items: + type: string + maxLength: 255 + description: Filter attributes offered by the domain. + title: filter attributes + uuid: type: string format: uuid - nullable: true - subscriberReference: - title: Subscriberreference - description: Usually empty. Only used in situations where notificationservices - are chained. For example notificationservice2 (ns2) is subscribed to notifcationservice1 - (ns1). When ns1 sends an event to ns2 this attribute COULD contain the - subscriberReference the was specified when ns2 subscribed to ns1. Note - this attribute is overwritten when the event is passed through to a client. - It will be set to the value of the subscriberReference of the subscription - of the client (when specified by the client). + readOnly: true + description: UUID of the domain. + title: uuid + url: type: string - maxLength: 255 + format: uri + readOnly: true + title: url + description: URL-referentie naar dit object. Dit is de unieke identificatie + en locatie van dit object. minLength: 1 - nullable: true - datacontenttype: - title: Datacontenttype - description: Content type of data value. In this version of the API the - value MUST be 'application/json'. In future versions of the API other - values such as described in RFC 2046 MAY be used. + maxLength: 1000 + PatchedSubscription: + type: object + properties: + id: type: string - minLength: 1 + format: uuid + readOnly: true + description: UUID of the subscription. + title: uuid + protocol: + allOf: + - $ref: '#/components/schemas/ProtocolEnum' + description: Identifier of a delivery protocol. + title: protocol + protocolSettings: + allOf: + - $ref: '#/components/schemas/ProtocolSettings' nullable: true - dataschema: - title: Dataschema - description: Identifies the schema that data adheres to. + title: protocol settings + sink: type: string format: uri - minLength: 1 + description: The address to which events shall be delivered using the selected + protocol. + title: sink + maxLength: 200 + sinkCredential: + allOf: + - $ref: '#/components/schemas/SinkCredential' nullable: true - sequence: - title: Sequence - description: Value expressing the relative order of the event. This enables - interpretation of data supercedence. - type: string - minLength: 1 + title: sink credential + config: + type: object + additionalProperties: {} nullable: true - sequencetype: - title: Sequencetype - description: Specifies the semantics of the sequence attribute. (Currently - limited to the value INTEGER). + description: Implementation-specific configuration parameters needed by + the subscription manager for acquiring events. + title: config + source: type: string - enum: - - Integer nullable: true - subject: - title: Subject - description: Included to be compatible with CloudEvents specification. The - GOV NL profile states 'Decision on whether or not to use the attribute - and/or the exact interpretation is postponed. To be determined partly - on the basis of future agreements about subscription and filtering.' + description: Source to which the subscription applies. May be implied by + the request address. + title: source + maxLength: 255 + domain: type: string - minLength: 1 nullable: true - data: - title: Data - type: object + description: Domain to which the subscription applies. + title: Domain + types: + type: array + items: + type: string + maxLength: 255 nullable: true - data_base64: - title: Data base64 - description: The presence of the data_base64 member clearly indicates that - the value is a Base64 encoded binary data, which the serializer MUST decode - into a binary runtime data type. + description: CloudEvent types eligible to be delivered by this subscription. + title: types + subscriberReference: type: string - minLength: 1 nullable: true - dataref: - title: Dataref - description: A reference to a location where the event payload is stored. - If both the data attribute and the dataref attribute are specified their - contents MUST be identical. + description: Events that are send to the subscriber will contain this reference. + The subscriber can use the reference for internal routing of the event. + title: subscriber reference + maxLength: 255 + filters: + type: object + additionalProperties: {} + description: This filter evaluates to 'true' if all contained filters are + 'true'. + title: filters + url: type: string + format: uri + readOnly: true + title: url + description: URL-referentie naar dit object. Dit is de unieke identificatie + en locatie van dit object. minLength: 1 - nullable: true + maxLength: 1000 + ProtocolEnum: + enum: + - HTTP + type: string ProtocolSettings: type: object properties: headers: - title: Headers type: object additionalProperties: type: string + title: '' maxLength: 255 - minLength: 1 + title: headers method: - title: Method - type: string - enum: - - POST - nullable: true + allOf: + - $ref: '#/components/schemas/MethodEnum' + title: method + SequencetypeEnum: + enum: + - Integer + type: string SinkCredential: - required: - - credentialType - - accessToken - - accessTokenExpiresUtc - - accessTokenType type: object properties: credentialType: - title: Credential type - type: string - enum: - - ACCESSTOKEN + allOf: + - $ref: '#/components/schemas/CredentialTypeEnum' + title: credentialType accessToken: - title: Access token type: string - minLength: 1 + title: accessToken accessTokenExpiresUtc: - title: Access token expires utc type: string format: date-time + title: accessTokenExpiresUtc accessTokenType: - title: Access token type - type: string - enum: - - bearer - nullable: true - Subscription: + allOf: + - $ref: '#/components/schemas/AccessTokenTypeEnum' + title: accessTokenType required: - - protocol - - sink + - accessToken + - accessTokenExpiresUtc + - accessTokenType + - credentialType + SpecversionEnum: + enum: + - '1.0' + type: string + Subscription: type: object properties: id: - title: Id - description: UUID of the subscription. type: string format: uuid readOnly: true + description: UUID of the subscription. + title: uuid protocol: - title: Protocol + allOf: + - $ref: '#/components/schemas/ProtocolEnum' description: Identifier of a delivery protocol. - type: string - enum: - - HTTP + title: protocol protocolSettings: - $ref: '#/components/schemas/ProtocolSettings' + allOf: + - $ref: '#/components/schemas/ProtocolSettings' + nullable: true + title: protocol settings sink: - title: Sink - description: The address to which events shall be delivered using the selected - protocol. type: string format: uri + description: The address to which events shall be delivered using the selected + protocol. + title: sink maxLength: 200 - minLength: 1 sinkCredential: - $ref: '#/components/schemas/SinkCredential' + allOf: + - $ref: '#/components/schemas/SinkCredential' + nullable: true + title: sink credential config: - title: Config - description: Implementation-specific configuration parameters needed by - the subscription manager for acquiring events. type: object + additionalProperties: {} nullable: true + description: Implementation-specific configuration parameters needed by + the subscription manager for acquiring events. + title: config source: - title: Source + type: string + nullable: true description: Source to which the subscription applies. May be implied by the request address. - type: string + title: source maxLength: 255 - nullable: true domain: - title: Domain - description: Domain to which the subscription applies. type: string nullable: true + description: Domain to which the subscription applies. + title: Domain types: - description: CloudEvent types eligible to be delivered by this subscription. type: array items: - title: Types type: string maxLength: 255 - minLength: 1 nullable: true + description: CloudEvent types eligible to be delivered by this subscription. + title: types subscriberReference: - title: Subscriber reference + type: string + nullable: true description: Events that are send to the subscriber will contain this reference. The subscriber can use the reference for internal routing of the event. - type: string + title: subscriber reference maxLength: 255 - nullable: true filters: - title: Filters + type: object + additionalProperties: {} description: This filter evaluates to 'true' if all contained filters are 'true'. - type: object + title: filters url: - title: Url - description: URL-referentie naar dit object. Dit is de unieke identificatie - en locatie van dit object. type: string format: uri readOnly: true - maxLength: 1000 + title: url + description: URL-referentie naar dit object. Dit is de unieke identificatie + en locatie van dit object. minLength: 1 + maxLength: 1000 + required: + - id + - protocol + - sink + - url + ValidatieFout: + type: object + description: Formaat van HTTP 4xx en 5xx fouten. + properties: + type: + type: string + description: URI referentie naar het type fout, bedoeld voor developers + title: type + code: + type: string + description: Systeemcode die het type fout aangeeft + title: code + title: + type: string + description: Generieke titel voor het type fout + title: title + status: + type: integer + description: De HTTP status code + title: status + detail: + type: string + description: Extra informatie bij de fout, indien beschikbaar + title: detail + instance: + type: string + description: URI met referentie naar dit specifiek voorkomen van de fout. + Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld. + title: instance + invalidParams: + type: array + items: + $ref: '#/components/schemas/FieldValidationError' + title: invalidParams + required: + - code + - detail + - instance + - invalidParams + - status + - title + securitySchemes: + JWT-Claims: + type: http + bearerFormat: JWT + scheme: bearer +servers: +- url: https://notificaties-api.test.vng.cloud/api/v1 +tags: +- name: domains + description: '' +- name: events + description: Publish an event The component will distribute the event to the subscribers + when the criteriaof a subscription are met. +- name: subscriptions + description: '' diff --git a/src/swagger2.0.json b/src/swagger2.0.json deleted file mode 100644 index f41cc0c4..00000000 --- a/src/swagger2.0.json +++ /dev/null @@ -1,1574 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Notification API", - "description": "\nThe API consists of three parts:\n 1. **Publishing events (resource Events)**
The events resource is based on the [GOV NL profile for CloudEvents](https://vng-realisatie.github.io/NL-GOV-profile-for-CloudEvents).\n This specification only contains brief descriptions of the attributes of the event. Please refer to the GOV NL profile for additional information.\n 2. **Subscribing to receive events (resource Subscriptions)**
\n The subscription resource was derived from the [CloudEvents Subscription v1.0.0-wip](https://github.com/cloudevents/spec/tree/main/subscriptions).\n This specification only contains brief descriptions of the attributes of the subscription. Please refer to the draft CE Subscription Specification for additional information.\n 3. **Basic information about domains (resource Domains)**
The scopes for autorisation are described [here](https://github.com/VNG-Realisatie/notificatieservices/blob/main/docs/api-specification/scopes.md).\n This specification is work in progress. It can be changed completely without notice.\n", - "license": { - "name": "EUPL 1.2", - "url": "https://opensource.org/licenses/EUPL-1.2" - }, - "version": "2.0.0-alpha13" - }, - "basePath": "/api/v1", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "securityDefinitions": { - "JWT-Claims": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT" - } - }, - "security": [ - { - "JWT-Claims": [] - } - ], - "paths": { - "/domains": { - "get": { - "operationId": "domain_list", - "description": "Returns a list with information about all domains.", - "parameters": [ - { - "name": "name", - "in": "query", - "description": "Name of the domain.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Domain" - } - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "domains" - ], - "security": [ - { - "JWT-Claims": [ - "domains.read" - ] - } - ] - }, - "post": { - "operationId": "domain_create", - "description": "Defines a new domain with its basis properties and filter attributes.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Domain" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/Domain" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - }, - "Location": { - "schema": { - "type": "string", - "format": "uri" - }, - "description": "URL waar de resource leeft." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "domains" - ], - "security": [ - { - "JWT-Claims": [ - "domains.create" - ] - } - ] - }, - "parameters": [] - }, - "/domains/{uuid}": { - "get": { - "operationId": "domain_read", - "description": "Returns information about the specified domain.", - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Domain" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "domains" - ], - "security": [ - { - "JWT-Claims": [ - "domains.read" - ] - } - ] - }, - "put": { - "operationId": "domain_update", - "description": "Update the specified domain by replacing all properties.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Domain" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Domain" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "domains" - ], - "security": [ - { - "JWT-Claims": [ - "domains.update" - ] - } - ] - }, - "patch": { - "operationId": "domain_partial_update", - "description": "Update the specified domain by replacing the modified properties.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Domain" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Domain" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "domains" - ], - "security": [ - { - "JWT-Claims": [ - "domains.update" - ] - } - ] - }, - "delete": { - "operationId": "domain_delete", - "description": "Delete the specified domain.", - "parameters": [], - "responses": { - "204": { - "description": "No content", - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "domains" - ], - "security": [ - { - "JWT-Claims": [ - "domains.delete" - ] - } - ] - }, - "parameters": [ - { - "name": "uuid", - "in": "path", - "description": "UUID of the domain.", - "required": true, - "type": "string", - "format": "uuid" - } - ] - }, - "/events": { - "post": { - "operationId": "events_create", - "summary": "Publish an event.", - "description": "The component will distribute the event to the subscribers when the criteria\nof a subscription are met.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Event" - } - } - ], - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/Event" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - } - }, - "tags": [ - "events" - ], - "security": [ - { - "JWT-Claims": [ - "events.publish" - ] - } - ] - }, - "parameters": [] - }, - "/subscriptions": { - "get": { - "operationId": "subscription_list", - "description": "Returns a list with information about all subscriptions.", - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Subscription" - } - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "subscriptions" - ], - "security": [ - { - "JWT-Claims": [ - "subscriptions.read" - ] - } - ] - }, - "post": { - "operationId": "subscription_create", - "description": "Subscribe to receive events.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Subscription" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/Subscription" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - }, - "Location": { - "schema": { - "type": "string", - "format": "uri" - }, - "description": "URL waar de resource leeft." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "subscriptions" - ], - "security": [ - { - "JWT-Claims": [ - "subscriptions.create" - ] - } - ] - }, - "parameters": [] - }, - "/subscriptions/{uuid}": { - "get": { - "operationId": "subscription_read", - "description": "Returns information about the specified subscription.", - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Subscription" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "subscriptions" - ], - "security": [ - { - "JWT-Claims": [ - "subscriptions.read" - ] - } - ] - }, - "put": { - "operationId": "subscription_update", - "description": "Update the specified subscription by replacing all properties.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Subscription" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Subscription" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "subscriptions" - ], - "security": [ - { - "JWT-Claims": [ - "subscriptions.update" - ] - } - ] - }, - "patch": { - "operationId": "subscription_partial_update", - "description": "Update the specified subscription by replacing the modified properties.", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "description": "Content type van de verzoekinhoud.", - "required": true, - "type": "string", - "enum": [ - "application/json" - ] - }, - { - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Subscription" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Subscription" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "subscriptions" - ], - "security": [ - { - "JWT-Claims": [ - "subscriptions.update" - ] - } - ] - }, - "delete": { - "operationId": "subscription_delete", - "description": "Delete the specified subscription.", - "parameters": [], - "responses": { - "204": { - "description": "No content", - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "406": { - "$ref": "#/responses/406" - }, - "409": { - "$ref": "#/responses/409" - }, - "410": { - "$ref": "#/responses/410" - }, - "415": { - "$ref": "#/responses/415" - }, - "429": { - "$ref": "#/responses/429" - }, - "500": { - "$ref": "#/responses/500" - } - }, - "tags": [ - "subscriptions" - ], - "security": [ - { - "JWT-Claims": [ - "subscriptions.delete" - ] - } - ] - }, - "parameters": [ - { - "name": "uuid", - "in": "path", - "description": "UUID of the subscription.", - "required": true, - "type": "string", - "format": "uuid" - } - ] - } - }, - "definitions": { - "Domain": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Naam", - "description": "Name of the domain.", - "type": "string", - "maxLength": 255, - "minLength": 1 - }, - "documentationLink": { - "title": "Documentatie link", - "description": "Link to human readable information about the domain and its notifications.", - "type": "string", - "format": "uri", - "maxLength": 200 - }, - "filterAttributes": { - "description": "Filter attributes offered by the domain.", - "type": "array", - "items": { - "title": "Filter attributes", - "type": "string", - "maxLength": 255, - "minLength": 1 - } - }, - "uuid": { - "title": "Uuid", - "description": "UUID of the domain.", - "type": "string", - "format": "uuid", - "readOnly": true - }, - "url": { - "title": "Url", - "description": "URL-referentie naar dit object. Dit is de unieke identificatie en locatie van dit object.", - "type": "string", - "format": "uri", - "readOnly": true, - "maxLength": 1000, - "minLength": 1 - } - } - }, - "Fout": { - "required": [ - "code", - "title", - "status", - "detail", - "instance" - ], - "type": "object", - "properties": { - "type": { - "title": "Type", - "description": "URI referentie naar het type fout, bedoeld voor developers", - "type": "string" - }, - "code": { - "title": "Code", - "description": "Systeemcode die het type fout aangeeft", - "type": "string", - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Generieke titel voor het type fout", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "De HTTP status code", - "type": "integer" - }, - "detail": { - "title": "Detail", - "description": "Extra informatie bij de fout, indien beschikbaar", - "type": "string", - "minLength": 1 - }, - "instance": { - "title": "Instance", - "description": "URI met referentie naar dit specifiek voorkomen van de fout. Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld.", - "type": "string", - "minLength": 1 - } - } - }, - "FieldValidationError": { - "required": [ - "name", - "code", - "reason" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "Naam van het veld met ongeldige gegevens", - "type": "string", - "minLength": 1 - }, - "code": { - "title": "Code", - "description": "Systeemcode die het type fout aangeeft", - "type": "string", - "minLength": 1 - }, - "reason": { - "title": "Reason", - "description": "Uitleg wat er precies fout is met de gegevens", - "type": "string", - "minLength": 1 - } - } - }, - "ValidatieFout": { - "required": [ - "code", - "title", - "status", - "detail", - "instance", - "invalidParams" - ], - "type": "object", - "properties": { - "type": { - "title": "Type", - "description": "URI referentie naar het type fout, bedoeld voor developers", - "type": "string" - }, - "code": { - "title": "Code", - "description": "Systeemcode die het type fout aangeeft", - "type": "string", - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Generieke titel voor het type fout", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "De HTTP status code", - "type": "integer" - }, - "detail": { - "title": "Detail", - "description": "Extra informatie bij de fout, indien beschikbaar", - "type": "string", - "minLength": 1 - }, - "instance": { - "title": "Instance", - "description": "URI met referentie naar dit specifiek voorkomen van de fout. Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld.", - "type": "string", - "minLength": 1 - }, - "invalidParams": { - "type": "array", - "items": { - "$ref": "#/definitions/FieldValidationError" - } - } - } - }, - "Event": { - "required": [ - "id", - "specversion", - "source", - "domain", - "type" - ], - "type": "object", - "properties": { - "id": { - "title": "Id", - "description": "Identifies the event. Producers MUST ensure that source + id is unique for each distinct event. SHOULD be a UUID.", - "type": "string", - "minLength": 1 - }, - "specversion": { - "title": "Specversion", - "description": "The version of the CloudEvents specification which the event uses. Compliant event producers MUST use a value of 1.0 when referring to this version of the specification.", - "type": "string", - "enum": [ - "1.0" - ] - }, - "source": { - "title": "Source", - "description": "Identifies the context in which an event happened. SHOULD be a URN notation with 'nld' as namespace identifier. SHOULD contain consecutive a unique identifier of the organization that publishes the event followed by the source system that publishes the event. Involved organizations SHOULD agree on how organizations and systems are uniquely identified (e.g. via the use of OIN, KVK-nummer or eIDAS legal identifier for organization identification);.", - "type": "string", - "minLength": 1 - }, - "domain": { - "title": "Domain", - "description": "Name of the domain to which the event belongs. Can be seen as the namespace of the event.(This attribute is not listed in the GOV NL profile for CloudEvents).", - "type": "string" - }, - "type": { - "title": "Type", - "description": "Beschrijft het type EVENT afkomstig van het specifieke DOMAIN.This attribute contains a value describing the type of event. Type SHOULD start with the domain followed by the name of the event. Events SHOULD be expressed in the past tense. If subtypes are required those SHOULD be expressed using a dot '.' between the super and subtype(s). The type MAY contain version information. Version information SHOULD be appended at the end of the string.", - "type": "string", - "minLength": 1 - }, - "time": { - "title": "Time", - "description": "Timestamp of the event. SHOULD be the timestamp the event was registered in the source system and NOT the time the event occurred in reality. The exact meaning of time MUST be clearly documented.", - "type": "string", - "format": "date-time", - "x-nullable": true - }, - "subscription": { - "title": "Subscription", - "description": "Usually empty. Only used in situations where notificationservices are chained. For example notificationservice2 (ns2) is subscribed to notifcationservice1 (ns1). When ns1 sends an event to ns2 this attribute SHOULD contain the subscription id of the subscription that ns1 has on ns2 (that was resposible for receiving the event). Note this attribute is overwritten when the event is passed through to a client. It will be set to the value of the subscription id of the subscription of the client.", - "type": "string", - "format": "uuid", - "x-nullable": true - }, - "subscriberReference": { - "title": "Subscriberreference", - "description": "Usually empty. Only used in situations where notificationservices are chained. For example notificationservice2 (ns2) is subscribed to notifcationservice1 (ns1). When ns1 sends an event to ns2 this attribute COULD contain the subscriberReference the was specified when ns2 subscribed to ns1. Note this attribute is overwritten when the event is passed through to a client. It will be set to the value of the subscriberReference of the subscription of the client (when specified by the client).", - "type": "string", - "maxLength": 255, - "minLength": 1, - "x-nullable": true - }, - "datacontenttype": { - "title": "Datacontenttype", - "description": "Content type of data value. In this version of the API the value MUST be 'application/json'. In future versions of the API other values such as described in RFC 2046 MAY be used.", - "type": "string", - "minLength": 1, - "x-nullable": true - }, - "dataschema": { - "title": "Dataschema", - "description": "Identifies the schema that data adheres to.", - "type": "string", - "format": "uri", - "minLength": 1, - "x-nullable": true - }, - "sequence": { - "title": "Sequence", - "description": "Value expressing the relative order of the event. This enables interpretation of data supercedence.", - "type": "string", - "minLength": 1, - "x-nullable": true - }, - "sequencetype": { - "title": "Sequencetype", - "description": "Specifies the semantics of the sequence attribute. (Currently limited to the value INTEGER).", - "type": "string", - "enum": [ - "Integer" - ], - "x-nullable": true - }, - "subject": { - "title": "Subject", - "description": "Included to be compatible with CloudEvents specification. The GOV NL profile states 'Decision on whether or not to use the attribute and/or the exact interpretation is postponed. To be determined partly on the basis of future agreements about subscription and filtering.'", - "type": "string", - "minLength": 1, - "x-nullable": true - }, - "data": { - "title": "Data", - "type": "object", - "x-nullable": true - }, - "data_base64": { - "title": "Data base64", - "description": "The presence of the data_base64 member clearly indicates that the value is a Base64 encoded binary data, which the serializer MUST decode into a binary runtime data type.", - "type": "string", - "minLength": 1, - "x-nullable": true - }, - "dataref": { - "title": "Dataref", - "description": "A reference to a location where the event payload is stored. If both the data attribute and the dataref attribute are specified their contents MUST be identical.", - "type": "string", - "minLength": 1, - "x-nullable": true - } - } - }, - "ProtocolSettings": { - "type": "object", - "properties": { - "headers": { - "title": "Headers", - "type": "object", - "additionalProperties": { - "type": "string", - "maxLength": 255, - "minLength": 1 - } - }, - "method": { - "title": "Method", - "type": "string", - "enum": [ - "POST" - ] - } - }, - "x-nullable": true - }, - "SinkCredential": { - "required": [ - "credentialType", - "accessToken", - "accessTokenExpiresUtc", - "accessTokenType" - ], - "type": "object", - "properties": { - "credentialType": { - "title": "Credential type", - "type": "string", - "enum": [ - "ACCESSTOKEN" - ] - }, - "accessToken": { - "title": "Access token", - "type": "string", - "minLength": 1 - }, - "accessTokenExpiresUtc": { - "title": "Access token expires utc", - "type": "string", - "format": "date-time" - }, - "accessTokenType": { - "title": "Access token type", - "type": "string", - "enum": [ - "bearer" - ] - } - }, - "x-nullable": true - }, - "Subscription": { - "required": [ - "protocol", - "sink" - ], - "type": "object", - "properties": { - "id": { - "title": "Id", - "description": "UUID of the subscription.", - "type": "string", - "format": "uuid", - "readOnly": true - }, - "protocol": { - "title": "Protocol", - "description": "Identifier of a delivery protocol.", - "type": "string", - "enum": [ - "HTTP" - ] - }, - "protocolSettings": { - "$ref": "#/definitions/ProtocolSettings" - }, - "sink": { - "title": "Sink", - "description": "The address to which events shall be delivered using the selected protocol.", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "sinkCredential": { - "$ref": "#/definitions/SinkCredential" - }, - "config": { - "title": "Config", - "description": "Implementation-specific configuration parameters needed by the subscription manager for acquiring events.", - "type": "object", - "x-nullable": true - }, - "source": { - "title": "Source", - "description": "Source to which the subscription applies. May be implied by the request address.", - "type": "string", - "maxLength": 255, - "x-nullable": true - }, - "domain": { - "title": "Domain", - "description": "Domain to which the subscription applies.", - "type": "string", - "x-nullable": true - }, - "types": { - "description": "CloudEvent types eligible to be delivered by this subscription.", - "type": "array", - "items": { - "title": "Types", - "type": "string", - "maxLength": 255, - "minLength": 1 - }, - "x-nullable": true - }, - "subscriberReference": { - "title": "Subscriber reference", - "description": "Events that are send to the subscriber will contain this reference. The subscriber can use the reference for internal routing of the event.", - "type": "string", - "maxLength": 255, - "x-nullable": true - }, - "filters": { - "title": "Filters", - "description": "This filter evaluates to 'true' if all contained filters are 'true'.", - "type": "object" - }, - "url": { - "title": "Url", - "description": "URL-referentie naar dit object. Dit is de unieke identificatie en locatie van dit object.", - "type": "string", - "format": "uri", - "readOnly": true, - "maxLength": 1000, - "minLength": 1 - } - } - } - }, - "responses": { - "400": { - "description": "Bad request", - "schema": { - "$ref": "#/definitions/ValidatieFout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "401": { - "description": "Unauthorized", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "404": { - "description": "Not found", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "406": { - "description": "Not acceptable", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "409": { - "description": "Conflict", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "410": { - "description": "Gone", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "412": { - "description": "Precondition failed", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "415": { - "description": "Unsupported media type", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "429": { - "description": "Too many requests", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - }, - "500": { - "description": "Internal server error", - "schema": { - "$ref": "#/definitions/Fout" - }, - "headers": { - "API-version": { - "schema": { - "type": "string" - }, - "description": "Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1." - } - } - } - }, - "tags": [ - { - "name": "domains", - "description": "" - }, - { - "name": "events", - "description": "" - }, - { - "name": "subscriptions", - "description": "" - } - ] -} From b304b64c8a791cc47acdb12c6dfe3180bd34c46f Mon Sep 17 00:00:00 2001 From: matthijsbekendam Date: Mon, 24 Oct 2022 12:37:17 +0200 Subject: [PATCH 2/2] vng-api-common set to 1.11.0 --- requirements/base.in | 3 +-- requirements/base.txt | 2 +- requirements/ci.txt | 2 +- requirements/dev.txt | 2 +- requirements/production.txt | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index 2b1fb409..6fcdf26e 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -28,8 +28,7 @@ djangorestframework django-filter~=21.1 djangorestframework-camel-case drf_spectacular -# TODO: this should eventually be reverted to vng-api-common -git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade#egg=vng_api_common +vng_api_common==1.11.0 drf-flex-fields django-cors-middleware diff --git a/requirements/base.txt b/requirements/base.txt index 651eb171..130b245e 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -319,7 +319,7 @@ vine==5.0.0 # amqp # celery # kombu -vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade +vng-api-common==1.11.0 # via -r requirements/base.in wcwidth==0.2.5 # via prompt-toolkit diff --git a/requirements/ci.txt b/requirements/ci.txt index 56d2380f..fad494b0 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -497,7 +497,7 @@ vine==5.0.0 # amqp # celery # kombu -vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade +vng-api-common==1.11.0 # via -r requirements/base.txt wcwidth==0.2.5 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index d1d13d5e..199b2f38 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -508,7 +508,7 @@ vine==5.0.0 # amqp # celery # kombu -vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade +vng-api-common==1.11.0 # via -r requirements/base.txt wcwidth==0.2.5 # via diff --git a/requirements/production.txt b/requirements/production.txt index b23dd7ef..b8230a92 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -453,7 +453,7 @@ vine==5.0.0 # amqp # celery # kombu -vng_api_common @ git+https://github.com/VNG-Realisatie/vng-api-common@drf-spectacular-upgrade +vng-api-common==1.11.0 # via -r requirements/base.txt wcwidth==0.2.5 # via