Audit

Registratie

openapi: '3.0.0'
info:
  title: Digitaal Vlaanderen - Audit Registratie legal logging
  description: |
    De registratie van legal log audit events

    # API Versies
    ## v0.10.2
    - veld operatie/tijdstipUitvoering kan nu met of zonder offset
    - de versie zonder offset is deprecated en wordt binnenkort niet meer ondersteund

    ## v0.10.1
    - veld registratie/clientid UUID formaat verwijderd uit definitie

    ## v0.10.0
    - [audit event model 0.9.4](https://vlaamseoverheid.atlassian.net/wiki/spaces/MDI/pages/6152421573/Legallog+-+Domeinmodel+v0.9.4)
    - registerclientId hernoemt naar clientId
    - OnderwerpsleutelType adresId en gebouwEenheid toegevoegd

    ## v0.9.5
    - [audit event model 0.9.3](https://vlaamseoverheid.atlassian.net/wiki/spaces/MDI/pages/6136266753/Legallog+-+Domeinmodel+v0.9.3)
    - x-tracing-id header toegevoegd

    ## v0.9.4
    - [audit event model 0.9.2](https://vlaamseoverheid.atlassian.net/wiki/spaces/MDI/pages/6135185492/Legallog+-+Domeinmodel+V0.9.2)
    - x-request-id header toegevoegd. 
    - fixed server url voor private endpoints
    - 502 Bad gateway response verwijderd (niet relevant)
    - fixed dubbele definitie van probleem object
    - probleem type definitie nu volgens domein model 0.9.2
    - extra voorbeelden voor fout responses toegevoegd

    # Voorbereiding
    Om deze API te kunnen gebruiken moet voldaan zijn aan volgende voorwaarden:
      1. Gebruiker heeft een asssymetrish sleutelpaar aangemaakt
      2. Er is een nieuwe client geregistreerd in ACM/IDM samen met de public key van het zonet aangemaakt assymetrisch sleutelpaar.
      3. Er is een registerClientId bepaald door de API beheerder

    # Authenticatie
    AuditEvents kunnen enkel geregistreerd worden met Client credentials. 
    Hiervoor moet een ACM/IDM **accesstoken** toegevoegd worden aan de Authorization header.

    Een **accessToken** kan je aanmaken op volgende manier:

    1. Creëer een [Json web signature](https://datatracker.ietf.org/doc/html/rfc7515) met de private key 
    2. Stuur een request naar het ACM token request endpoint
        1. voeg het JWS token toe: client_assertion = JWS token
        2. voeg de juiste scope toe: scope = **dv_audit_registration_write**

    ACM token endpoints:
    1. voor T&I: https://authenticatie-ti.vlaanderen.be/op/v1/token
    2. Voor productie: https://authenticatie.vlaanderen.be/op/v1/token

    Gebruik het **accessToken** vervolgens bij de registreer audit event operatie:
    - voeg de HTTP header "authorization" toe met daarin "Bearer " + het **accesstoken**
    - Je kan het token ook gebruiken via deze ui interface: kopieer het accesstoken dan in het Authorize veld. 
    Zolang het accestoken geldig is, kan je het blijven gebruiken.

  contact:
    name: Team bouwstenen
    email: magda-teambouwstenen@vlaanderen.be
  version: '0.10.2'
externalDocs:
  description: 'Legal log service documentatie'
  url: 'https://vlaamseoverheid.atlassian.net/wiki/spaces/MDI/pages/6068013263/Legallog'
servers:
  - url: 'https://iv.api.{omgeving}.be'
    description: publieke endpoints
    variables:
      omgeving:
        default: 'vlaanderen'
        enum:
          - "test-vlaanderen"
          - "tni-vlaanderen"
          - "vlaanderen"
  - url: 'https://gateway-magda-{omgeving}.apps.os-{infra-omgeving}.magda.cpc.vonet.be/api'
    description: private endpoints
    variables:
      omgeving:
        default: 'tni'
        enum:
          - "dev"
          - "tst"
          - "tni"
          - "prd"
      infra-omgeving:
        default: 'tni'
        enum:
          - "dev"
          - "tni"
          - "prd"
  - url: 'http://localhost:38080'
    description: 'local development server'
paths:
  /audit/v1/registraties:
    post:
      tags:
        - Audit event registratie
      summary: Registreren van audit events
      security:
        - bearer_auth: [ ]
      operationId: audit_registraties_post
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/X-Correlation-Id'
          description: Referte (uuid) om meerdere request transacties te groeperen
        - name: x-tracing-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/X-Tracing-Id'
          description: Referte (uuid) om de request transactie end-to-end uniek te identificeren
        - name: x-request-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/X-Request-Id'
          description: Referte (uuid) om de http request uniek te identificeren
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuditEvent'
        required: true
      responses:
        '201':
          description: Created  # het event is geregistreerd
        '400':
          description: Ongeldige data verzonden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
              example:
                Probleem:
                  titel: "validatie fout"
                  status: "400 Bad request"
                  detail: "Het element ‘onderdeel’ is een verplicht veld maar ontbreekt."
        '401':
          description: Ongeldige authorisatie
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
              example:
                Probleem:
                  titel: "Geen authenticatie"
                  status: "401 Unauthorized"
                  detail: "Client heeft geen geldige authenticatie credentials"
        '500':
          description: Onverwachte fout opgetreden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
              example:
                Probleem:
                  titel: "Interne fout"
                  status: "500 Internal server error"
                  detail: "Een onderdeel van het systeem is onbeschikbaar. De operatie kan niet afgewerkt worden."
components:
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: JWS
  schemas:
    X-Correlation-Id:
      description: "Unieke identificatie van meerdere request transacties die samen een business contect vormen."
      type: string
      format: uuid
      maxLength: 36
      example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
    X-Tracing-Id:
      description: "Unieke identificatie van één end-to-end request transactie."
      type: string
      format: uuid
      maxLength: 36
      example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
    X-Request-Id:
      description: "Unieke identificatie van de HTTP request."
      type: string
      format: uuid
      maxLength: 36
      example: 2ca541f2-3887-40a9-97a2-1acd89896be6
    AuditEvent:
      type: object
      properties:
        meta:
          type: object
          properties:
            onderwerpInOnderzoek:
              type: boolean
              default: false
          example:
            onderwerpInOnderzoek: false
          description: >-
            Geeft aan dat er voor het onderwerp van deze operatie een actief onderzoek door de dienst sociale inspectie bezig is.
          additionalProperties: false
        registratie:
          type: object
          properties:
            correlatieId:
              type: string
              format: uuid
              maxLength: 36
              description: >-
                Groepeert meerdere tracingid's onder één business context. Het systeem dat de logketting start, bepaalt dit correlatieid.
              example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
            tracingId:
              type: string
              format: uuid
              maxLength: 36
              description: >-
                Het unieke transactieid van de operatie. Het systeem dat de logketting start, bepaalt dit transactieid.
              example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
            requestId:
              type: string
              format: uuid
              maxLength: 36
              description: >-
                De unieke identificatie van het verstuurde request. Elke nieuwe call genereert een nieuw requestId
              example: 2ca541f2-3887-40a9-97a2-1acd89896be6
            clientId:
              type: string
              maxLength: 36
              description: >-
                De unieke identificatie van het systeem dat de inschrijving in het register uitvoert. Dit id wordt bepaald bij de onboarding van deze service en is een configuratie element van deze service m.a.w. dit id mag niet willekeurig bepaald worden.
              example: AuditRegister test client
          required:
            - correlatieId
            - tracingId
            - requestId
            - clientId
          additionalProperties: false
          description: Meta informatie over het systeem dat het audit event aanmaakt
        operatie:
          type: object
          properties:
            operatie:
              type: string
              maxLength: 256
              description: >-
                De uitgevoerde operatie op het onderwerp. Meestal is dit dan de dienst waarmee de vraag gesteld werd.
              example: GET / vastgoed/V1/aanvragen/123456789
            finaliteit:
              type: object
              properties:
                finaliteitId:
                  type: string
                  maxLength: 64
                  description: >-
                    Het doel waarom de operatie uitgevoerd en de informatie verwerkt werd.
                  example: "finaliteit xyz"
                finaliteitType:
                  type: string
                  maxLength: 32
                  enum:
                    - BESCHRIJVING
                    - IPDC
                  description: >-
                    Gebruikt type voor finaliteit.
              description: >-
                Het doel waarom de operatie uitgevoerd en de informatie verwerkt werd.
              additionalProperties: false
              example:
                finaliteitId: finaliteit xyz
                finaliteitType: BESCHRIJVING
              required:
                - finaliteitWaarde
                - finaliteitType
            tijdstipUitvoering:
              type: string
              format: date-time
              description: >-
                Datum/tijdstip wanneer de operatie uitgevoerd werd in het RFC3339 formaat. Opgelet: Deze versie werkt nog met en zonder offset, maar de versie zonder offset is deprecated en wordt verwijderd in de volgende versie.
              example: 2022-01-10T23:20:50.52123+02:00
          required:
            - operatie
            - finaliteit
            - tijdstipVanUitvoering
          additionalProperties: false
          description: De operatie die betrekking heeft op het onderwerp/onderwerpen van deze registratie
        uitvoerder:
          type: object
          properties:
            gebruiker:
              type: object
              properties:
                gebruikerId:
                  type: string
                  maxLength: 64
                  description: >-
                    Uniek identificatienummer van de natuurlijke persoon, op basis van een nationaal nummer of een andere persoonsidentificatie zoals bv. personeelsnummer of account.
                    Formaat mag enkel getallen bevatten.
                  example: '00000000097'
                gebruikerSleutelType:
                  type: string
                  maxLength: 32
                  enum:
                    - INSZ
                    - GEBRUIKERSIDENTIFICATIE
                  description: >-
                    Gebruikt sleuteltype voor het gebruikerId.
              required:
                - gebruikerId
                - gebruikerSleutelType
              additionalProperties: false
              example:
                gebruikerId: 79100811546
                gebruikerSleutelType: INSZ
              description: >-
                De gebruiker (natuurlijk persoon) die de bevraging heeft uitgevoerd.
            organisatie:
              type: object
              properties:
                organisatieId:
                  type: string
                  maxLength: 256
                  description: >-
                    Uniek identificatienummer van de organisatie
                organisatieSleutelType:
                  type: string
                  maxLength: 32
                  enum:
                    - KBONUMMER
                    - OVOCODE
                    - ENTITEIT
                  description: >-
                    Gebruikt sleuteltype voor het organisatieId. Indien dit type geen KBONUMMEr of OVOCODE is, moet ENTITEIT gekozen worden.
              required:
                - organisatieId
                - organisatieSleutelType
              additionalProperties: false
              example:
                organisatieId: OVO002311
                organisatieSleutelType: OVOCODE
              description: >-
                De verwerkingsverantwoordelijke die de bevraging uitvoert.
            dataverwerker:
              type: object
              properties:
                dataverwerkerId:
                  type: string
                  maxLength: 256
                  description: >-
                    De unieke identificatie van de dataverwerker (organisatie) die de operatie heeft geïnitieerd.
                dataverwerkerSleutelType:
                  type: string
                  maxLength: 32
                  enum:
                    - KBONUMMER
                    - OVOCODE
                    - ENTITEIT
                  description: >-
                    Gebruikt sleuteltype voor het dataverwerkerId. Indien dit type geen KBONUMMEr of OVOCODE is, moet ENTITEIT gekozen worden.
                dataverwerkerSysteem:
                  type: string
                  maxLength: 256
                  description: >-
                    De unieke identificatie van het systeem dat gebruikt werd om de bevraging uit te voeren.
              required:
                - dataverwerkerId
                - dataverwerkerSleutelType
                - dataverwerkerSysteem
              additionalProperties: false
              example:
                dataverwerkerId: "0425478919"
                dataverwerkerSleutelType: KBONUMMER
                dataverwerkerSysteem: Fednot.IBOT.2.0.2
              description: >-
                De dataverwerker die de bevraging heeft uitgevoerd.
          required:
            - organisatie
            - dataverwerker
          additionalProperties: false
          description: >-
            De organisatie die de verwerkingsverantwoordelijke is van de operatie. Met dataverwerker wordt de client applicatie informatie meegegeven. Organisatie en dataverwerker kunnen dezelfde zijn.
        onderwerpen:
          type: array
          items:
            type: object
            properties:
              onderwerpId:
                type: string
                maxLength: 256
                description: >-
                  Uniek identificatienummer van het onderwerp
              onderwerpSleutelType:
                type: string
                maxLength: 32
                enum:
                  - INSZ
                  - PERSOONSIDENTIFICATIE
                  - CAPAKEY
                  - NRPLAAT
                  - KBONUMMER
                  - GEBOUWEENHEID
                  - ADRESID
                description: >-
                  Gebruikt sleuteltype voor het onderwerpId.
            additionalProperties: false
            required:
              - onderwerpId
              - onderwerpSleutelType
          minItems: 1
          uniqueItems: true
          example:
            - onderwerpId: 70100811546
              onderwerpSleutelType: INSZ
            - onderwerpId: 78372910283
              onderwerpSleutelType: INSZ
          description: >-
            Over wie/wat werd de bevraging uitgevoerd
        informatie:
          type: array
          items:
            type: object
            properties:
              informatieWaarde:
                type: string
                maxLength: 256
                description: Waarde van het informatieveld.
              informatieType:
                type: string
                maxLength: 32
                description: Type van het informatieveld.
            additionalProperties: false
          example:
            - informatieType: CorrelatieIdBron
              informatieWaarde: 78d77a03-fd88-43e0-a438-5e51f795a62b
          description: Lijst van afnemerspecifieke legal informatie die niet is opgenomen in het standaard model.
        probleem:
          $ref: '#/components/schemas/Probleem'
      required:
        - registratie
        - operatie
        - uitvoerder
        - onderwerpen
      additionalProperties: false
    Probleem:
      description: "Een representatie van een probleem"
      required:
        - detail
        - titel
        - status
      type: object
      properties:
        titel:
          type: string
          maxLength: 128
          description: "Een korte leesbare beschrijving van het probleem."
          example: "validatie fout"
        status:
          type: string
          maxLength: 64
          description: "De HTTP status code van het probleem door de server gegenereerd."
          example: "400 Bad request"
        detail:
          type: string
          maxLength: 256
          description: "Een leesbare beschrijving van het probleem met extra context."
          example: "Het element ‘onderdeel’ is een verplicht maar ontbreekt."

Consultatie

openapi: '3.0.0'
info:
  title: Digitaal Vlaanderen - Audit Consultatie legal logging
  description: |
    De consultatie van legal log audit events

    # API Versies

    ## v0.19.0
    - Enum verwijderd bij de register parameter van het opvragen van de consultaties

    ## v0.18.0
    - 200 response in /lijsten/{type} wordt een array van strings

    ## v0.17.0
    - dataverwerkerSleutelType.COMMONNAME wordt dataverwerkerSleutelType.ENTITEIT
    - organisatieSleutelType.COMMONNAME wordt organisatieSleutelType.ENTITEIT

    ## v0.16.0
    - Enum voor type lijst is nu in hoofdletters

    ## v0.15.0
    - register is ook verplicht in POST /audit/V1/consultaties/rapporten

    ## v0.14.0
    - zoeken op gebruiker is nu mogelijk in GET /audit/v1/consultaties/registraties en POST /audit/V1/consultaties/rapporten
    - correctie van voorbeeld rijksregisternummer 000000-000-97 -> 00000000097 aangezien rijksregisternummers volledig numeriek moeten zijn
    - velden ivm paginatie die uitgecommentarieerd stonden zijn nu verwijderd
    - aanpassing link naar documentatie zodat deze dezelfde is als in de registratie openapi spec
    - fix endpoints in 'servers:' sectie

    ## v0.13.0
    - finaliteiten toegevoegd als zoekcriterium
    - register is verplicht in GET /audit/v1/consultaties/registraties
    - fix van voorbeelden voor header parameters die array waarde aannemen
    - zoeken op meerdere operaties is nu mogelijk

    ## v0.12.0
    - Initiële public release


  contact:
    name: Team bouwstenen
    email: magda-teambouwstenen@vlaanderen.be
  version: '0.19.0'

externalDocs:
  description: 'Legal log rapportering documentatie'
  url: 'https://vlaamseoverheid.atlassian.net/wiki/spaces/MDI/pages/6068013263/Legallog'

servers:
  - url: 'https://iv.api.{omgeving}.be'
    description: publieke endpoints
    variables:
      omgeving:
        default: 'vlaanderen'
        enum:
          - "test-vlaanderen"
          - "tni-vlaanderen"
          - "vlaanderen"
  - url: 'https://gateway-magda-{omgeving}.apps.os-{infra-omgeving}.magda.cpc.vonet.be/api'
    description: private endpoints
    variables:
      omgeving:
        default: 'tni'
        enum:
          - "dev"
          - "tst"
          - "tni"
          - "prd"
      infra-omgeving:
        default: 'tni'
        enum:
          - "dev"
          - "tni"
          - "prd"
  - url: 'http://localhost:48080'
    description: 'local development server'
paths:
  /audit/v1/consultaties/registraties:
    get:
      tags:
        - Bevragingen
      summary: Online bevraging van audit events
      operationId: audit_consultaties_get
      parameters:
        - $ref: '#/components/parameters/x-correlation-id'
        - $ref: '#/components/parameters/x-tracing-id'
        - $ref: '#/components/parameters/x-request-id'
        - name: register
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Register'
          description: Auditregister waarin gezocht moet worden.
        - name: correlatieId
          in: header
          schema:
            $ref: '#/components/schemas/X-Correlation-Id'
          description: Referte (uuid) om meerdere request transacties te groeperen.
        - name: tracingId
          in: header
          schema:
            $ref: '#/components/schemas/X-Tracing-Id'
          description: Referte (uuid) om de request transactie end-to-end uniek te identificeren.
        - name: finaliteiten
          in: header
          schema:
            type: array
            items:
              $ref: '#/components/schemas/finaliteitId'
          example: finaliteit1,finaliteit2
          description: Het doel waarom de operatie uitgevoerd en de informatie verwerkt werd.
        - name: operaties
          in: header
          schema:
            type: array
            items:
              $ref: '#/components/schemas/operatie'
          example: GET /vastgoed/V1/aanvragen,GET /vastgoed/v1/vergoedingen
          description: De uitgevoerde operatie op het onderwerp. Meestal is dit dan de dienst waarmee de vraag gesteld werd.
        - name: gebruikers
          in: header
          schema:
            type: array
            items:
              $ref: '#/components/schemas/gebruikerId'
          example: 79100811546,20080800141
          description: Uniek identificatienummer van de natuurlijke persoon, op basis van een nationaal nummer of een andere persoonsidentificatie zoals bv. personeelsnummer of account.
        - name: startDatum
          in: header
          schema:
            $ref: '#/components/schemas/dagUitvoering'
          description: datum vanaf wanneer auditevents opgevraagd worden
          example: 2022-01-10
        - name: eindDatum
          in: header
          schema:
            $ref: '#/components/schemas/dagUitvoering'
          description: datum tot wanneer auditevents opgevraagd worden
          example: 2022-01-20
        - name: onderwerpen
          in: header
          schema:
            type: array
            items:
              $ref: '#/components/schemas/onderwerpId'
          example: onderwerp1,onderwerp2
          description: Unieke identificatienummers van de onderwerpen.
        - name: organisaties
          in: header
          schema:
            type: array
            items:
              $ref: '#/components/schemas/organisatieId'
          example: organisatie1,organisatie2
          description: Unieke identificatienummers van de organisaties.
        - name: limit
          in: header
          description: "Aantal resultaten dat moet teruggeven worden"
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
        - name: offset
          in: header
          description: "De eerste positie van waar resultaten van de query gegeven worden."
          schema:
            type: integer
            default: 0
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuditEvents"
        '400':
          description: Ongeldige data verzonden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '401':
          description: Ongeldige authorisatie
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '500':
          description: Onverwachte fout opgetreden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
  /audit/v1/consultaties/rapporten:
    parameters:
      - $ref: '#/components/parameters/x-correlation-id'
      - $ref: '#/components/parameters/x-tracing-id'
      - $ref: '#/components/parameters/x-request-id'
      - name: register
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/Register'
        description: Auditregister waarin gezocht moet worden.
      - name: correlatieId
        in: header
        schema:
          $ref: '#/components/schemas/X-Correlation-Id'
        description: Referte (uuid) om meerdere request transacties te groeperen.
      - name: tracingId
        in: header
        schema:
          $ref: '#/components/schemas/X-Tracing-Id'
        description: Referte (uuid) om de request transactie end-to-end uniek te identificeren.
      - name: finaliteiten
        in: header
        schema:
          type: array
          items:
            $ref: '#/components/schemas/finaliteitId'
        example: finaliteit1,finaliteit2
        description: Het doel waarom de operatie uitgevoerd en de informatie verwerkt werd.
      - name: operaties
        in: header
        schema:
          type: array
          items:
            $ref: '#/components/schemas/operatie'
        example: GET /vastgoed/V1/aanvragen,GET /vastgoed/v1/vergoedingen
        description: De uitgevoerde operatie op het onderwerp. Meestal is dit dan de dienst waarmee de vraag gesteld werd.
      - name: gebruikers
        in: header
        schema:
          type: array
          items:
            $ref: '#/components/schemas/gebruikerId'
        example: 79100811546,20080800141
        description: Uniek identificatienummer van de natuurlijke persoon, op basis van een nationaal nummer of een andere persoonsidentificatie zoals bv. personeelsnummer of account.
      - name: startDatum
        in: header
        schema:
          $ref: '#/components/schemas/dagUitvoering'
        description: datum vanaf wanneer auditevents opgevraagd worden
        example: 2022-01-10
      - name: eindDatum
        in: header
        schema:
          $ref: '#/components/schemas/dagUitvoering'
        description: datum tot wanneer auditevents opgevraagd worden
        example: 2022-01-20
      - name: onderwerpen
        in: header
        schema:
          type: array
          items:
            $ref: '#/components/schemas/onderwerpId'
        example: onderwerp1,onderwerp2
        description: Unieke identificatienummers van de onderwerpen.
      - name: organisaties
        in: header
        schema:
          type: array
          items:
            $ref: '#/components/schemas/organisatieId'
        example: organisatie1,organisatie2
        description: Unieke identificatienummers van de organisaties.
    post:
      tags:
        - Rapporten
      summary: Aanvragen van een audit rapport
      operationId: audit_consultaties_post
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Audit-Rapport-Id"
        '400':
          description: Ongeldige data verzonden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '401':
          description: Ongeldige authorisatie
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '500':
          description: Onverwachte fout opgetreden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
  /audit/v1/consultaties/rapporten/{auditRapportId}:
    parameters:
      - name: auditRapportId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/Audit-Rapport-Id'
      - $ref: '#/components/parameters/x-correlation-id'
      - $ref: '#/components/parameters/x-tracing-id'
      - $ref: '#/components/parameters/x-request-id'
    get:
      tags:
        - Rapporten
      summary: Opvragen van een audit rapport
      operationId: audit_consultaties_async_get
      responses:
        '200':
          description: OK
          content:
            text/csv: { }
        '400':
          description: Ongeldige data verzonden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '401':
          description: Ongeldige authorisatie
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '500':
          description: Onverwachte fout opgetreden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
  /audit/v1/consultaties/lijsten/{type}:
    get:
      tags:
        - Lijsten
      summary: Consulteren van lijsten
      operationId: audit_consultaties_lijsten_get
      parameters:
        - $ref: '#/components/parameters/x-correlation-id'
        - $ref: '#/components/parameters/x-tracing-id'
        - $ref: '#/components/parameters/x-request-id'
        - name: type
          in: path
          required: true
          description: "Type lijst dat moet teruggeven worden"
          schema:
            type: string
            maxLength: 32
            enum:
              - FINALITEITEN
              - OPERATIES
              - REGISTERS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                example: [ "MAGDA Online", "VIP" ]
        '400':
          description: Ongeldige data verzonden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '401':
          description: Ongeldige authorisatie
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
        '500':
          description: Onverwachte fout opgetreden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Probleem'
components:
  schemas:
    Consultatie-Filters:
      type: object
      properties:
        register:
          $ref: '#/components/schemas/Register'
          required: true
        correlatieId:
          $ref: '#/components/schemas/X-Correlation-Id'
        tracingId:
          $ref: '#/components/schemas/X-Tracing-Id'
        operaties:
          type: array
          items:
            $ref: '#/components/schemas/operatie'
          example: [ "GET /vastgoed/V1/aanvragen", "GET /vastgoed/v1/vergoedingen" ]
        finaliteiten:
          type: array
          items:
            $ref: '#/components/schemas/finaliteitId'
          example: [ "finaliteit1", "finaliteit2" ]
        gebruikers:
          type: array
          items:
            $ref: '#/components/schemas/gebruikerId'
          example: [ "79100811546", "20080800141" ]
        startDatum:
          allOf:
            - $ref: '#/components/schemas/dagUitvoering'
            - description: 'De eerste datum van de op te vragen audit records'
        eindDatum:
          allOf:
            - $ref: '#/components/schemas/dagUitvoering'
            - description: 'De laatste datum van de op te vragen audit records'
        onderwerpen:
          type: array
          items:
            $ref: '#/components/schemas/onderwerpId'
          description: Unieke identificatienummers van de onderwerpen.
          example: [ "onderwerp1","onderwerp2" ]
        organisaties:
          type: array
          items:
            $ref: '#/components/schemas/organisatieId'
          description: Unieke identificatienummers van de organisaties.
          example: [ "organisatie1","organisatie2" ]

    Audit-Rapport-Id:
      description: "Unieke identificatie van een rapport"
      type: string
      format: uuid
      maxLength: 36
      example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
    X-Correlation-Id:
      description: "Unieke identificatie van meerdere request transacties die samen een business context vormen."
      type: string
      format: uuid
      maxLength: 36
      example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
    X-Tracing-Id:
      description: "Unieke identificatie van één end-to-end request transactie."
      type: string
      format: uuid
      maxLength: 36
      example: 9151f21f-43ae-43b4-92f3-f4af67cdf544
    X-Request-Id:
      description: "Unieke identificatie van de HTTP request."
      type: string
      format: uuid
      maxLength: 36
      example: 2ca541f2-3887-40a9-97a2-1acd89896be6
    clientId:
      type: string
      maxLength: 256
      description: De unieke identificatie van de applicatie die de inschrijving in het register uitvoert.
      example: vastgoedinformatie platform
    dagUitvoering:
      type: string
      format: date
      description: Datums waartussen de auditevents moeten liggen
      example: 2022-01-10
    tijdstipUitvoering:
      type: string
      format: date-time
      description: Datum/tijdstip wanneer de operatie uitgevoerd werd in het RFC3339 formaat.
      example: 2022-01-10T23:20:50.52Z
    operatie:
      type: string
      maxLength: 256
      description: De uitgevoerde operatie op het onderwerp. Meestal is dit dan de dienst waarmee de vraag gesteld werd.
      example: GET /vastgoed/V1/aanvragen/123456789
    metaData:
      type: object
      properties:
        resultset:
          type: object
          properties:
            count:
              type: integer
              format: int64
              description: "Het totaal aantal gevonden resultaten"
              minimum: 0
              example: 500
            offset:
              type: integer
              format: int64
              description: "Het eerste element van deze pagina"
              minimum: 0
              default: 0
            limit:
              type: integer
              format: int64
              description: "Het maximaal aantal resultaten op deze pagina"
              minimum: 1
              maximum: 100
              default: 25
    AuditEvents:
      type: object
      properties:
        metaData:
          $ref: '#/components/schemas/metaData'
        auditEvents:
          type: array
          items:
            $ref: '#/components/schemas/AuditEvent'

    Finaliteiten:
      type: array
      items:
        $ref: '#/components/schemas/Finaliteit'
    Operaties:
      type: array
      items:
        $ref: '#/components/schemas/operatie'
    Registers:
      type: array
      items:
        $ref: '#/components/schemas/Register'
    Register:
      type: string
      description: Het register waarin opgezocht moet worden. op te vragen met een /consultaties/lijsten/REGISTERS call.
      maxLength: 256
      example: VIP
    AuditEvent:
      type: object
      properties:
        meta:
          type: object
          properties:
            onderwerpInOnderzoek:
              type: boolean
          example:
            onderwerpInOnderzoek: false
          description: >-
            Geeft aan dat er voor het onderwerp van deze operatie een actief onderzoek door de dienst sociale inspectie bezig is.
          additionalProperties: false
        registratie:
          type: object
          properties:
            correlatieId:
              $ref: '#/components/schemas/X-Correlation-Id'
            tracingId:
              $ref: '#/components/schemas/X-Tracing-Id'
            requestId:
              $ref: '#/components/schemas/X-Request-Id'
            clientId:
              $ref: '#/components/schemas/clientId'
          required:
            - correlatieId
            - tracingId
            - requestId
            - clientId
          additionalProperties: false
          description: Meta informatie over het systeem dat het audit event aanmaakt
        operatie:
          type: object
          properties:
            operatie:
              $ref: '#/components/schemas/operatie'
            finaliteit:
              $ref: '#/components/schemas/Finaliteit'
            tijdstipUitvoering:
              $ref: '#/components/schemas/tijdstipUitvoering'
          required:
            - operatie
            - finaliteit
            - tijdstipUitvoering
          additionalProperties: false
          description: De operatie die betrekking heeft op het onderwerp/onderwerpen van deze registratie
        uitvoerder:
          type: object
          properties:
            gebruiker:
              $ref: '#/components/schemas/Gebruiker'
            organisatie:
              $ref: '#/components/schemas/Organisatie'
            dataverwerker:
              $ref: '#/components/schemas/Dataverwerker'
          required:
            - organisatie
            - dataverwerker
          additionalProperties: false
          description: >-
            De organisatie die de verwerkingsverantwoordelijke is van de operatie. Met dataverwerker wordt de client applicatie informatie meegegeven. Organisatie en dataverwerker kunnen dezelfde zijn.
        onderwerpen:
          type: array
          items:
            $ref: '#/components/schemas/Onderwerp'
          minItems: 1
          uniqueItems: true
          example:
            - onderwerpId: 70100811546
              onderwerpSleutelType: INSZ
            - onderwerpId: 720410623
              onderwerpSleutelType: INSZ
          description: >-
            Over wie/wat werd de bevraging uitgevoerd
        informatie:
          type: array
          items:
            $ref: '#/components/schemas/Informatie'
          description: Lijst van afnemerspecifieke legal informatie die niet is opgenomen in het standaard model.
        probleem:
          $ref: '#/components/schemas/Probleem'
      required:
        - registratie
        - operatie
        - uitvoerder
        - onderwerpen
      additionalProperties: false

    Gebruiker:
      type: object
      properties:
        gebruikerId:
          $ref: '#/components/schemas/gebruikerId'
        gebruikerSleutelType:
          $ref: '#/components/schemas/gebruikerSleutelType'
      required:
        - gebruikerId
        - gebruikerSleutelType
      additionalProperties: false
      example:
        gebruikerId: 79100811546
        gebruikerSleutelType: INSZ
      description: >-
        De gebruiker (natuurlijk persoon) die de bevraging heeft uitgevoerd.
    Organisatie:
      type: object
      properties:
        organisatieId:
          $ref: '#/components/schemas/organisatieId'
        organisatieSleutelType:
          $ref: '#/components/schemas/organisatieSleutelType'
      required:
        - organisatieId
        - organisatieSleutelType
      additionalProperties: false
      example:
        organisatieId: OVO002311
        organisatieSleutelType: OVOCODE
      description: >-
        De verwerkingsverantwoordelijke die de bevraging uitvoert.
    Dataverwerker:
      type: object
      properties:
        dataverwerkerId:
          $ref: '#/components/schemas/dataverwerkerId'
        dataverwerkerSleutelType:
          $ref: '#/components/schemas/dataverwerkerSleutelType'
        dataverwerkerSysteem:
          type: string
          maxLength: 256
          description: >-
            De unieke identificatie van het systeem dat gebruikt werd om de bevraging uit te voeren.
      required:
        - dataverwerkerId
        - dataverwerkerSleutelType
        - dataverwerkerSysteem
      additionalProperties: false
      example:
        dataVerwerkerId: 0425478919
        dataVerwerkerSleutelType: KBONUMMER
        dataVerwerkerSysteem: Fednot.IBOT.2.0.2
      description: >-
        De dataverwerker die de bevraging heeft uitgevoerd.
    Finaliteit:
      type: object
      properties:
        finaliteitId:
          $ref: '#/components/schemas/finaliteitId'
        finaliteitType:
          $ref: '#/components/schemas/finaliteitType'
      description: >-
        Het doel waarom de operatie uitgevoerd en de informatie verwerkt werd.
      additionalProperties: false
      example:
        finaliteitId: finaliteit xyz
        finaliteitType: BESCHRIJVING
      required:
        - finaliteitId
        - finaliteitType
    Onderwerp:
      type: object
      properties:
        onderwerpId:
          $ref: '#/components/schemas/onderwerpId'
        onderwerpSleutelType:
          $ref: '#/components/schemas/onderwerpSleutelType'
      additionalProperties: false
      required:
        - onderwerpId
        - onderwerpSleutelType
    Informatie:
      type: object
      properties:
        informatieWaarde:
          $ref: '#/components/schemas/informatieWaarde'
        informatieType:
          $ref: '#/components/schemas/informatieType'
      additionalProperties: false
      example:
        - informatieType: CorrelatieIdBron
          informatieWaarde: 78d77a03-fd88-43e0-a438-5e51f795a62b
    Probleem:
      required:
        - detail
        - titel
        - status
      type: object
      properties:
        type:
          type: string
          description: "Een URI referentie dat het probleem type identificeerd"
        titel:
          type: string
          description: "Een korte leesbare beschrijving van het probleem."
        status:
          type: string
          description: "De HTTP status code van het probleem door de server gegenereerd."
        detail:
          type: string
          description: "Een leesbare beschrijving van het probleem met extra context."
        instance:
          type: string
          description: "Een URI referentie naar de specifieke geval."
      description: Een representatie van een probleem bericht"

    onderwerpSleutelType:
      type: string
      maxLength: 32
      enum:
        - INSZ
        - PERSOONSIDENTIFICATIE
        - CAPAKEY
        - NRPLAAT
        - KBONUMMER
      description: Gebruikt sleuteltype voor het onderwerpId.
    onderwerpId:
      type: string
      maxLength: 256
      description: Uniek identificatienummer van het onderwerp
    informatieType:
      type: string
      maxLength: 32
      description: Type van het informatieveld.
    informatieWaarde:
      type: string
      maxLength: 256
      description: Waarde van het informatieveld.
    gebruikerSleutelType:
      type: string
      maxLength: 32
      enum:
        - INSZ
        - GEBRUIKERSIDENTIFICATIE
      description: Gebruikt sleuteltype voor het gebruikerId.
    gebruikerId:
      type: string
      maxLength: 64
      description: Uniek identificatienummer van de natuurlijke persoon, op basis van een nationaal nummer of een andere persoonsidentificatie zoals bv. personeelsnummer of account.
      example: '00000000097'
    dataverwerkerSleutelType:
      type: string
      maxLength: 32
      enum:
        - KBONUMMER
        - OVOCODE
        - ENTITEIT
      description: Gebruikt sleuteltype voor het dataverwerkerId.
    dataverwerkerId:
      type: string
      maxLength: 256
      description: De unieke identificatie van de dataverwerker (organisatie) die de operatie heeft geïnitieerd.
    organisatieSleutelType:
      type: string
      maxLength: 32
      enum:
        - KBONUMMER
        - OVOCODE
        - ENTITEIT
      description: Gebruikt sleuteltype voor het organisatieId.
    organisatieId:
      type: string
      maxLength: 256
      description: Uniek identificatienummer van de organisatie
    finaliteitId:
      type: string
      maxLength: 64
      description: Het doel waarom de operatie uitgevoerd en de informatie verwerkt werd.
      example: "finaliteit xyz"
    finaliteitType:
      type: string
      maxLength: 32
      enum:
        - BESCHRIJVING
        - IPDC
      description: Gebruikt type voor finaliteit.
    probleemStatus:
      type: string
      maxLength: 64
      description: statuscode die een duiding geeft van het type probleem
  parameters:
    x-correlation-id:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/X-Correlation-Id'
      description: Referte (uuid) om meerdere request transacties te groeperen
    x-tracing-id:
      name: x-tracing-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/X-Tracing-Id'
      description: Referte (uuid) om de request transactie end-to-end uniek te identificeren
    x-request-id:
      name: x-request-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/X-Request-Id'
      description: Referte (uuid) om de http request uniek te identificeren

LED

---
openapi: 3.0.2
info:
  title: Digitaal Vlaanderen - Bewijzen
  description: Deze RESTful API is ontwikkeld om leerbewijzen te registreren in LED.
  version: 1.0.0
servers:
  - url: /api/v1/led
paths:
  /bewijzen/bewijzenMetControle:
    post:
      tags:
        - Bewijzen
      parameters:
        - in: header
          name:  x-correlation-id
          schema:
            type: string
            format: uuid
          required: true
      summary: Aanmaken van een nieuw bewijs met controle
      description: Aanmaken van een nieuw bewijs dat na controle en aanvulling door Automatisch advies doorgestuurd wordt naar de LED.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Bewijs-Met-Controle-Request'
        required: true
      responses:
        200:
          description: Correcte verwerking bij AA - Het bewijs is niet geregistreerd bij LED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bewijs-Met-Controle-Instance-Data'
        201:
          description: Correcte verwerking bij AA - Het bewijs is wel geregistreerd bij LED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bewijs-Met-Controle-Instance-Data'
        400:
          description: Ongeldige data in de request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /bewijzen/bewijzenMetadata:
    post:
      tags:
        - Bewijzen
      parameters:
        - in: header
          name:  x-correlation-id
          schema:
            type: string
            format: uuid
          required: true
      summary: Ophalen van metadata voor bepaalde instatie
      description: Met deze call kan op basis van de instatieId en instatieDoelgroep informatie over de bewijzen die de instatie mogelijk kan uitreiken worden opgehaald. Indien de instatie gekend is maar er zijn op de moment van opvraging geen bewijzen gekend die deze kan uitreiken wordt een lege lijst van bewijzen teruggegeven. Indien de instatie ongekend is wordt de error code 404 Not found teruggegeven.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Bewijzen-Metadata-Request'
        required: true
      responses:
        201:
          description: Success - new dossier created in Automatic Advice
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bewijzen-Metadata-Response'
        400:
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        404:
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /bewijzen/bewijzenMetControle/{id}:
    get:
      tags:
        - Bewijzen
      summary: Ophalen status van de registratie van een nieuw bewijs
      description: Met deze call kan op basis van de id die bij de POST werd verkregen de status van de verwerking van een registratie worden opgehaald. Enkel van toepassing in het asynchrone scenario.
      parameters:
        - name: id
          in: path
          description: ID die teruggegeven werd in de registratie
          required: true
          schema:
            type: string
        - in: header
          name:  x-correlation-id
          schema:
            type: string
            format: uuid
          required: true
      responses:
        200:
          description: Success, the response body will contain the instance data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bewijs-Met-Controle-Instance-Data'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    delete:
      tags:
        - Bewijzen
      summary: Verwijderen van een registratie uit automatisch advies
      description: Verwijderen van een registratie uit automatisch advies. Opgelet, dit verwijderd de registratie enkel uit Automatisch advies niet uit de LED. Enkel van toepassing in het asynchrone scenario. Na 8 uur wordt deze verwijdering automatisch uitgevoerd.
      parameters:
        - name: id
          in: path
          description: ID die teruggegeven werd in de registratie
          required: true
          schema:
            type: string
        - in: header
          name:  x-correlation-id
          schema:
            type: string
            format: uuid
          required: true
      responses:
        204:
          description: Success - the instance is completely deleted
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'

components:
  schemas:
    Bewijzen-Metadata-Request:
      description: Root for Bewijzen-Metadata-Request
      type: object
      required:
        - instantieId
        - instantieDoelgroep
      properties:
        instantieId:
          type: string
        instantieDoelgroep:
          type: string
    Bewijzen-Metadata-Response:
      description: Root for Bewijzen-Metadata-Response
      type: object
      properties:
        instantieId:
          type: string
        instantieDoelgroep:
          type: string
        instellingNaam:
          type: string
        bewijzen:
          type: array
          items:
            $ref: '#/components/schemas/Bewijzen'
    Bewijzen:
      description: Root for Bewijzen
      type: object
      properties:
        volledigeNaam:
          type: string
        studierichtingNaam:
          type: string
        periodes:
          type: array
          items:
            $ref: '#/components/schemas/Periodes'
        leverancierNaam:
          type: string
        certificaatCheck:
          type: boolean
    Periodes:
      properties:
        geldigVanaf:
          type: string
          format: date
        geldigTem:
          type: string
          format: date
    Bewijs-Met-Controle-Request:
      description: Root for Bewijs-Met-Controle-Request
      type: object
      required:
        - insz
        - instantieId
        - instantieDoelgroep
        - referte
        - uitreikingsdatum
        - volledigeNaam
      properties:
        referte:
          type: string
        naamLeverancier:
          type: string
        insz:
          type: string
        instantieId:
          type: string
        instantieDoelgroep:
          type: string
          enum: ["EA", "GID", "LB", "OV"]
        uitreikingsdatum:
          type: string
          format: date
        volledigeNaam:
          type: string
        instellingNaam:
          type: string
        instellingNummer:
          type: string
        specialisatieNaam:
          type: string
        specialisatieCode:
          type: string
        detailOnderwerpNaam:
          type: string
        detailOnderwerpCode:
          type: string
        urenVolwassenOnderwijs:
          type: string
        alternatieveInstanties:
          type: array
          items:
            $ref: '#/components/schemas/Alternatieve-Instanties'
        bijkomendeInformatie:
          type: array
          items:
            $ref: '#/components/schemas/Bijkomende-Informatie'
    Alternatieve-Instanties:
      description: Root for Alternatieve-Instanties
      type: object
      properties:
        instellingsrol:
          type: string
        naam:
          type: string
    Bijkomende-Informatie:
      description: Root for Bijkomende-Informatie
      type: object
      properties:
        naam:
          type: string
        inhoud:
          type: string
    Bewijs-Met-Controle-Instance-Data:
      title: Root Type for bewijzenmetcontrole
      description: The root of the bewijzenmetcontrole type's schema.
      type: object
      properties:
        advice:
          type: string
        type:
          type: string
        correlationId:
          type: string
        details:
          type: string
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message

Milieu

openapi: "3.0.2"
info:
  title: "Asbestattesten"
  description: "Deze dienst maakt het mogelijk om asbestattesten op te vragen uit het asbestinventatris bij OVAM"
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "Asbestinventaris"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/milieu"
paths:
  /attesten/asbestattesten/gebouweenheden/{gebouweenheidId}:
    get:
      tags:
        - "asbestattesten"
      summary: "Het asbestId opbragen op basis van de gebouweenheidsId"
      parameters:
        - name: gebouweenheidId
          in: path
          required: true
          description: "Id van de gebouweenheid waarvoor gegevens opgevraagd worden"
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: "Response met inhoud"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GebouwEenheidSummary"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /attesten/asbestattesten/{asbestinventarisId}:
    get:
      tags:
        - "asbestattesten"
      summary: "details van een attest opvragen in JSON formaat"
      parameters:
        - name: asbestinventarisId
          in: path
          required: true
          description: "Id van de asbestinventaris waarvoor gegevens opgevraagd worden"
          schema:
            type: string
            format: uuid
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: "Response met inhoud in JSON formaat van een asbestattest"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Asbestinventaris"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /attesten/asbestattesten/{asbestinventarisId}/attest:
    get:
      tags:
        - "asbestattesten"
      summary: "het attest opvragen in PDF formaat"
      parameters:
        - name: asbestinventarisId
          in: path
          required: true
          description: "Id van de asbestinventaris waarvoor het attest opgevraagd wordt"
          schema:
            type: string
            format: uuid
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: "Het pdf attest horende bij de asbestinventaris"
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'


components:
 parameters:
    CorrelationId:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/Correlation-Id'
 responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
 schemas:
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling"
      type: string
      minLength: 10
      maxLength: 36

    GebouwEenheidSummary:
      description: "Beschrijving van de gebouweenheid zoals gekend binnen de asbestinventaris applicatie"
      properties:
        inventarissen:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid

    Asbestinventaris:
      description: "Details van een inventaris"
      type: object
      properties:
        id:
          type: string
          format: uuid
        attestNummer:
          type: string
        locatieBeschrijving:
          type: string
          description: "Betreft slechts een indicatie van de locatie. Het bevat niet de officiële locatiegegevens van de overheid"
        resultaat:
          type: string
        aanleiding:
          type: string
        gemeenschappelijkDeel:
          type: boolean
        gemeenschappelijkeDelen:
          type: array
          items:
            $ref: '#/components/schemas/GemeenschappelijkDeel'
        analyseRapporten:
          type: array
          items:
            $ref: '#/components/schemas/AnalyseRapport'
        uitgegevenOp:
          type: string
          format: date
        geldigTot:
          type: string
          format: date
        attest:
          type: object
          properties:
            id:
              type: string
              format: uuid
        aantalAsbestmaterialen:
          type: integer
        aantalBeperkingen:
          type: integer
        aantalUitsluitingen:
          type: integer
        asbestmaterialen:
          type: array
          items:
            $ref: '#/components/schemas/Asbestmateriaal'

    GemeenschappelijkDeel:
      description: 'Identificator naar het gemeenschappelijk deel'
      type: object
      properties:
        type:
          type: string
        id:
          type: string
          format: uuid

    AnalyseRapport:
      description: 'Identificator naar het analyse rapport'
      type: object
      properties:
        type:
          type: string
        id:
          type: string
          format: uuid

    Asbestmateriaal:
      description: 'Identificator naar het asbestmateriaal'
      type: object
      properties:
        type:
          type: string
        id:
          type: string
          format: uuid

    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: "A URI reference that identifies the problem type. This specification encourages that, when de-referenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be about:blank."
        title:
          type: string
          description: "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation."
        status:
          type: string
          description: "The HTTP status code generated by the origin server for this occurrence of the problem."
        detail:
          type: string
          description: "A human-readable explanation specific to this occurrence of the problem."
        instance:
          type: string
          description: "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if de-referenced."
      description: "A representation of a generic error message."

Mobility

openapi: 3.0.3
info:
  title: Expose Data DIV - Crossborder Registrations Service
  description: This RESTful API is designed to query foreign plate registrations data including license, certificate, titular and vehicle. The request will occur based on a country code, a plate number and optionally a date. Release date August 2020.
  contact:
    name: crossBoarderAPI
    email: helpdesk.magda@vlaanderen.be
  license:
    name: crossBoarderAPI
    url: https://overheid.vlaanderen.be/magda
  version: '1.1'
servers:
  - url: /api/v1/mobility
tags:
  - name: Mobility
paths:
  /crossborderRegistrations:
    get:
      tags:
        - Operations for consultation of crossborder registration data
      summary: Query registration crossborder registration data.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: countryCode
          in: query
          description: The country requested data from.
          required: true
          schema:
            type: string
        - name: plateNr1
          in: query
          description: The plate number part-1.
          required: true
          schema:
            type: string
        - name: plateNr2
          in: query
          description: The plate number part-2.
          required: false
          schema:
            type: string
        - name: dateTime
          in: query
          description: The date for which the data is requested. When not specified, the default will be the current date and time.
          required: false
          schema:
            type: string
            format: date-time
        - name: dataScope
          in: query
          description: Allows to request a smaller data-scope. The default is 'all'. Other options are 'vehicle' and 'titular'
          required: false
          schema:
            $ref: '#/components/schemas/DataScope'
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    Response:
      type: object
      description: The object containing the result
      properties:
        '@context':
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/1693680273/Mobility-context.jsonld'
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: An array of crossborderTitular objects.
          items:
            $ref: '#/components/schemas/CrossborderRegistration'
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    Enduser-Id:
      description: "Reference to the user that triggerd the request."
      type: string
    LangString:
      type: object
      description: String with a language attribute
      properties:
        string:
          type: string
        lang:
          type: string
    DataScope:
      type: string
      description: Allows to request a smaller data-scope. The default is 'all'. Other options are 'vehicle' and 'titular'
      enum:
        - vehicle
        - titular
        - all
    identificator:
      type: object
      description: OSLO object representing an identification element
      properties:
        identificator:
          type: string
    OrganisationType:
      type: object
      properties:
        '@type':
          type: string
          default: http://www.w3.org/ns/regorg#orgType
        code:
          type: string
          description: The type of the organisation as defined in the specified country.
        description:
          type: string
          description: The company type description.
    LegalEntity:
      type: object
      properties:
        '@type':
          type: string
          default: http://www.w3.org/ns/regorg#RegisteredOrganization
        code:
          type: string
          description: The legal entity of the company as defined in the specified country.
        description:
          type: string
          description: The company legel type description.
    CrossborderRegistration:
      description: The crossborder registration object.
      type: object
      properties:
        license:
          $ref: '#/components/schemas/License'
        vehicle:
          $ref: '#/components/schemas/Vehicle'

    License:
      type: object
      description: The crossborer Titular object
      properties:
        '@id':
          type: string
          description: 'should be generated of the form _:XXX'
        '@type':
          type: string
          description: 'the type of the titular'
          default: 'http://purl.org/dc/terms/Agent'
        type:
          type: string
          description: Indication whether the registration is for a natural person or a moral person/organization.
        person:
          type: object
          description: Person object - only available in case the titular-type is a natural person.
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular
            '@type':
              type: string
              description: Indicates that it is a person
              default: http://www.w3.org/ns/person#Person
            lastName:
              description: The last name(s) of the person
              type: array
              items:
                type: string
            firstName:
              description: The first name(s) of the person
              type: array
              items:
                type: string
        organisation:
          type: object
          description: Organisation object only available in case the titular-type is a moral person (organisation).
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: indicates that it is an organisation
              default: 'http://www.w3.org/ns/org#Organization'
            companyNr:
              $ref: '#/components/schemas/identificator'
            organisationName:
              $ref: '#/components/schemas/LangString'
            organisationType:
              $ref: '#/components/schemas/OrganisationType'
            legalEntity:
              $ref: '#/components/schemas/LegalEntity'
        careOfName:
          type: string
          description: This element is present when the address provided, is a c/o address (care of), i.e. the vehicle holder receives its mail at the address of another person or a company.  The element contains the name of the person or company associated with the address.
        registrationLanguageCode:
          type: string
          description: The language code of the registration documents, issued to the holder or owner.
        contactInfo:
          type: object
          description: In OSLO the Address is linked the Agents through the contactInfo
          properties:
            '@type':
              type: string
              description: the contactinfo is of type contactInfo
              default: https://schema.org/ContactPoint
            address:
              type: object
              properties:
                '@type':
                  type: string
                  description: Address info of the contact address
                  default: http://www.w3.org/ns/locn#Address
                streetName:
                  $ref: '#/components/schemas/LangString'
                houseNumber:
                  type: string
                  description: Housenumber of the address.
                box:
                  type: string
                  description: POBox number of the address.
                postalCode:
                  type: string
                  description: Postalcode of the address.
                cityName:
                  $ref: '#/components/schemas/LangString'
                countryName:
                  $ref: '#/components/schemas/LangString'
                countryISO:
                  type: string
                  description: Country code
                printableLine:
                  type: array
                  description: The address printable line(s).
                  items:
                    type: string


    Vehicle:
      type: object
      properties:
        category:
          type: object
          properties:
            code:
              type: string
              description: >-
                European category code. This entry is used to give the
                information about the type approval which is stated on
                the COC. Despite of the different ApprovalNumber it is
                needed to identify these approvals in an easy way.
        engine:
          items:
            type: object
            properties:
              fuel:
                items:
                  type: object
                  properties:
                    maximumNetPower:
                      type: number
                      description: Maximum net power for combustion engine.
                      format: float
                    exhaustEmissionLevelEuro:
                      type: string
                      description: Exhaust emission level Euro (called Euronorm)
                  description: >-
                    Object containing specific vehicle technical engine
                    specifications
                type: array
                description: Array containing vehicle engine fuel(s) specifications
            description: >-
              Object containing specific vehicle technical engine
              specifications
          type: array
          description: Array containing vehicle engine(s) specifications
        technicPermissibleMaxMass:
          type: number
          description: Maximum permissible mass of the vehicle.
          format: int32
        firstRegistrationDate:
          type: string
          description: >-
            The first registration date of the vehicle (the first time a
            plate was assigned to it). 
          format: date
      description: The crossborder vehicle object.





    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message
openapi: 3.0.3
info:
  title: Expose Data DIV - Crossborder Titular Service
  description: This RESTful API is designed to query foreign plate titular data (persons and organizations). The request will occur based on a country code, a plate number and optionally a date. Release date August 2020.
  contact:
    name: crossBoarderAPI
    email: helpdesk.magda@vlaanderen.be
  license:
    name: crossBoarderAPI
    url: https://overheid.vlaanderen.be/magda
  version: '1.1'
servers:
  - url: /api/v1/mobility
tags:
  - name: Mobility
paths:
  /crossborderTitulars:
    get:
      tags:
        - Operations for consultation of crossborder titular data
      summary: Query registration crossborder titular data.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: countryCode
          in: query
          description: The country requested data from.
          required: true
          schema:
            type: string
        - name: plateNr1
          in: query
          description: The plate number part-1.
          required: true
          schema:
            type: string
        - name: plateNr2
          in: query
          description: The plate number part-2.
          required: false
          schema:
            type: string
        - name: dateTime
          in: query
          description: The date for which the data is requested. When not specified, the default will be the current date and time.
          required: false
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    Response:
      type: object
      description: The object containing the result
      properties:
        '@context':
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/1693680273/Mobility-context.jsonld'
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: An array of crossborderTitular objects.
          items:
            $ref: '#/components/schemas/CrossborderTitular'
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    Enduser-Id:
      description: "Reference to the user that triggerd the request."
      type: string
    LangString:
      type: object
      description: String with a language attribute
      properties:
        string:
          type: string
        lang:
          type: string
    identificator:
      type: object
      description: OSLO object representing an identification element
      properties:
        identificator:
          type: string
    OrganisationType:
      type: object
      properties:
        '@type':
          type: string
          default: http://www.w3.org/ns/regorg#orgType
        code:
          type: string
          description: The type of the organisation as defined in the specified country.
        description:
          type: string
          description: The company type description.
    LegalEntity:
      type: object
      properties:
        '@type':
          type: string
          default: http://www.w3.org/ns/regorg#RegisteredOrganization
        code:
          type: string
          description: The legal entity of the company as defined in the specified country.
        description:
          type: string
          description: The company legel type description.
    CrossborderTitular:
      description: The crossborder titular object.
      type: object
      properties:
        '@id':
          type: string
          description: 'should be generated of the form _:XXX'
        '@type':
          type: string
          description: 'the type of the titular'
          default: 'http://purl.org/dc/terms/Agent'
        type:
          type: string
          description: Indication whether the titular is a natural person or a moral person/organization.
        person:
          type: object
          description: Person object - only available in case the titular-type is a natural person.
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular
            '@type':
              type: string
              description: Indicates that it is a person
              default: http://www.w3.org/ns/person#Person
            lastName:
              description: The last name(s) of the person
              type: array
              items:
                type: string
            firstName:
              description: The first name(s) of the person
              type: array
              items:
                type: string
        organisation:
          type: object
          description: Organisation object only available in case the titular-type is a moral person (organisation).
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: indicates that it is an organisation
              default: 'http://www.w3.org/ns/org#Organization'
            companyNr:
              $ref: '#/components/schemas/identificator'
            organisationName:
              $ref: '#/components/schemas/LangString'
            organisationType:
              $ref: '#/components/schemas/OrganisationType'
            legalEntity:
              $ref: '#/components/schemas/LegalEntity'
        careOfName:
          type: string
          description: This element is present when the address provided, is a c/o address (care of), i.e. the vehicle holder receives its mail at the address of another person or a company.  The element contains the name of the person or company associated with the address.
        registrationLanguageCode:
          type: string
          description: The language code of the registration documents, issued to the holder or owner.
        contactInfo:
          type: object
          description: In OSLO the Address is linked the Agents through the contactInfo
          properties:
            '@type':
              type: string
              description: the contactinfo is of type contactInfo
              default: https://schema.org/ContactPoint
            address:
              type: object
              properties:
                '@type':
                  type: string
                  description: Address info of the contact address
                  default: http://www.w3.org/ns/locn#Address
                streetName:
                  $ref: '#/components/schemas/LangString'
                houseNumber:
                  type: string
                  description: Housenumber of the address.
                box:
                  type: string
                  description: POBox number of the address.
                postalCode:
                  type: string
                  description: Postalcode of the address.
                cityName:
                  $ref: '#/components/schemas/LangString'
                countryName:
                  $ref: '#/components/schemas/LangString'
                countryISO:
                  type: string
                  description: Country code
                printableLine:
                  type: array
                  description: The address printable line(s).
                  items:
                    type: string
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message
openapi: 3.0.3
info:
  title: Expose Data DIV - Movement Indications Service
  description: This RESTful API is designed to query the indications about new or modified registered data at the DIV on a daily basis. It concerns indications of the DIV related datadomains registration and vehicle.
  contact:
    name: movementIndicationsAPI
    email: helpdesk.magda@vlaanderen.be
  license:
    name: movementIndicationsAPI
    url: https://overheid.vlaanderen.be/magda
  version: '1.2'
servers:
  - url: '/api/v1/mobility'
paths:
  /movementIndications/registrationsNew:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on new registrations.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/registrationsChangedDataLicense:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on registrations with changed license data.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/registrationsChangedDataVehicle:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on registrations with changed vehicle data.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/registrationsTransferred:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on transferred registrations.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/registrationsUnregistered:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on unregistered registrations.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/registrationsCrossedOut:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on crossed-out registrations.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/transactions:
    get:
      tags:
        - Request movement indications
      summary: Query movement indications on all registration related transactions.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: date
          in: query
          description: The date for which the indications are requested.
          required: true
          schema:
            type: string
            format: date
        - name: vehicleCategory
          in: query
          description: Allows to filter a specific vehicle category. Filtering only allowed on M1 and M2.
          required: false
          schema:
            type: string
            enum:
              - M1
              - M2
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /movementIndications/rowDetails:
    get:
      tags:
        - Request movement indications
      summary: Query details of movementindications
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: plateNr
          in: query
          description: The plate number as a principal parameter.
          required: false
          schema:
            type: string
        - name: plateUID
          in: query
          description: The license unique identifier linked to the plate number as a principal parameter.
          required: false
          schema:
            type: string
        - name: vin
          in: query
          description: The vehicle identification number as a principal parameter.
          required: false
          schema:
            type: string
        - name: unifier
          in: query
          description: The unifier of the vehicle identification number. <br>To be specified always in combination with the VIN.
          required: false
          schema:
            type: string
        - name: certificateId
          in: query
          description: The certificate (CIM) Id as a principal parameter.
          required: false
          schema:
            type: string
        - name: nationalNr
          in: query
          description: The national number as a principal parameter.
          required: false
          schema:
            type: string
        - name: companyNr
          in: query
          description: The company number as a principal parameter.
          required: false
          schema:
            type: string
        - name: dateTime
          in: query
          description: 'The date for which the data is requested. When not specified, the default will be the current date and time. Always to be specified in combination with a principal query parameter.'
          required: false
          schema:
            type: string
            format: date-time
        - name: transactionUID
          in: query
          description: The transaction unique identifier as a principal parameter.
          required: false
          schema:
            type: string
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
        - name: addressEnrichmentPerson
          description: "Source where titular current addres will be retrieved in case titular is a Person. Omit the query parameter in case the current address is not required."
          in: query
          required: false
          schema:
            type: string
            enum:
              - RR
              - KSZ
        - name: addressEnrichmentOrganisation
          description: "Denotes if titular current addres nees to be provided in case the Titular is an organisation. Omit the query parameter in case the current address is not required."
          in: query
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RowDetailsResponse'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    Enduser-Id:
      description: "Reference to the user that triggerd the request."
      type: string
    LangString:
      type: object
      description: String with a language attribute
      properties:
        string:
          type: string
        lang:
          type: string
    Identificator:
      type: object
      description: OSLO object representing an identification element
      properties:
        identificator:
          type: string
    Concept:
      type: object
      description: A concept in a conceptscheme according to the SKOS vocabulary
      properties:
        '@type':
          type: string
          description: declaration of the type of the object
          default: http://www.w3.org/2004/02/skos/core#Concept
        prefLabel:
          $ref: '#/components/schemas/LangString'

    Response:
      type: object
      description: The object containing the result
      properties:
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: An array of movement indication objects. The content can be none, one or multiple objects.
          items:
            $ref: '#/components/schemas/MovementIndication'
        total:
          type: number
          description: The total amount of elements in the collection resource following the requested parameters.
        next:
          type: string
          description: Link to the next page.


    RowDetailsResponse:
      type: object
      description: The object containing the rowDetails result
      properties:
        '@context':
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/1693680273/Mobility-context.jsonld'
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: 'An array of registration objects. The content can be none, one or multiple objects.'
          items:
            $ref: '#/components/schemas/RowDetail'
        total:
          type: number
          description: The total amount of elements in the collection resource following the requested parameters.
        next:
          type: string
          description: Link to the next page.
    RowDetail:
      type: object
      description: The registration object. Attributes will be limited to what is necessary in relation to your legal purposes.
      properties:
        transaction:
          $ref: '#/components/schemas/Transaction'
        license:
          $ref: '#/components/schemas/License'
        titular:
          $ref: '#/components/schemas/Titular'
        driver:
          $ref: "#/components/schemas/Driver"
        vehicle:
          $ref: '#/components/schemas/Vehicle'
        certificates:
          type: array
          description: 'An array of certificate data. The content can be none, one or multiple entries.'
          items:
            $ref: '#/components/schemas/Certificate'
    Transaction:
      type: object
      description: The transaction object.
      properties:
        UID:
          type: string
          description: The unique identifier of the transaction object
        typeCode:
          type: string
          description: The type code of the transaction
        subTypeCode:
          type: object
          properties:
            code:
              type: string
              description: The subtype code of the transaction
            description:
              type: string
              description: The description of the subtype of the transaction
        dateTime:
          type: string
          format: date-time
          description: The timestamp when the transaction occured
        info:
          type: object
          description: Object containing additional transaction data.
          properties:
            correctionType:
              type: object
              properties:
                code:
                  type: string
                  description: The type of the correction
                description:
                  type: string
                  description: The description of the correction code
            plateNumberPriorTitular:
              type: string
              description: Plate number prior titular
            previousPlateNrTitular:
              type: string
              description: Previous plate number titular
            newVehicle:
              type: boolean
              description: Indication new vehicle
            secondHandVehicle:
              type: boolean
              description: Indication 2nd-hand vehicle
            importedVehicle:
              type: boolean
              description: Indication imported vehicle
            transferAttest:
              type: object
              properties:
                code:
                  type: string
                  description: The transfer attest code
                description:
                  type: string
                  description: The description of the transfer attest code
    License:
      type: object
      properties:
        reRegistrationFlag:
          type: string
          description: Indication of re-registration
        languageCode:
          type: string
          description: The language of the license; fr, nl, de, en
        plateType:
          type: object
          properties:
            code:
              type: string
              description: The type code of the plate
            description:
              type: string
              description: The description of the plate type
        lastUpdateDateTime:
          type: string
          description: >-
            Timestamp of last modification of data within
            this object
          format: date-time
        plateNrFormatted:
          type: string
          description: The plate number format [for Police]
        insurance:
          type: object
          properties:
            companyCode:
              type: string
              description: >-
                The reference of the insurance company as
                last-known by the DIV
            countryCode:
              type: string
              description: >-
                The residing country of the insurance
                company as last-known by the DIV
            companyName:
              type: string
              description: >-
                The name of the insurance company as
                last-known by the DIV
        plateUID:
          type: string
          description: >-
            A technical global unique identifier
            corresponding with the plate number (GUID)
        firstRegistrationDateBelgium:
          type: string
          description: >-
            Date of the first registration in Belgium. In
            case of an imported and used vehicle (101), the
            first_immatriculation_date can differ from the
            date of the first registration in Belgium.  This
            attribute will contain the date of the first
            registration in the DIV-records to indicate that
            the vehicle in question is an already used
            vehicle, that is registered after import.
          format: date
        expiryDate:
          type: string
          description: The (planned) expiry date (when relevant/known)
          format: date-time
        plateNr:
          type: string
          description: >-
            The plate number; as it appears on the plate,
            without any edit characters.
        status:
          type: object
          properties:
            beginDate:
              type: string
              description: 'The begin date of this status '
              format: date-time
            code:
              type: string
              description: The status of the license (registration)
            endDate:
              type: string
              description: >-
                The end date of this status (as old status)
                filled when a new status becomes active
              format: date-time
            description:
              type: string
              description: >-
                The description of the status code of the
                license
        commercialMaxCapacity:
          type: number
          description: The commercial maximum capacity allowed
          format: int32
        statusLegal:
          type: object
          properties:
            beginDate:
              type: string
              description: The begin date of this status
              format: date-time
            code:
              type: string
              description: The legal status of the license
            endDate:
              type: string
              description: >-
                The end date of this status (as old status)
                filled when a new status becomes active
              format: date-time
            description:
              type: string
              description: >-
                The description of the legal status code of
                the license
        lastRegistrationDate:
          type: string
          description: Date of the last registration
          format: date-time
        creationDateTime:
          type: string
          description: >-
            Timestamp of the creation of this object within
            the datastorage
          format: date-time
        startSituationDate:
          type: string
          description: 'The begin date of the license. '
          format: date-time
        commercialMaxMass:
          type: number
          description: The commercial maximum mass allowed
          format: int32
      description: The license object.
    Titular:
      description: The titular object.
      type: object
      properties:
        '@id':
          type: string
          description: 'Identification of the Titular object, should be generated in the form _:XXX'
        '@type':
          type: string
          description: The type of the titular
          default: 'http://purl.org/dc/terms/Agent'
        type:
          type: string
          description: 'Indication whether the titular is a natural person (NP) or a moral person/organization (M). '
        source:
          type: string
          description: 'Indicating the source of the titular identification number in case different from RR/RN and KBO/BCE.'
        title:
          type: string
          description: 'The titular title of the plate. Example of values: Prince, Princess, Duke, Duchess, Marquis, Marquise, Earldom, Countess, Viscount, …'
        person:
          type: object
          description: Person object - only available in case the titular-type is a natural person.
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: Indicates that it is a person
              default: 'http://www.w3.org/ns/person#Person'
            nationalNr:
              $ref: '#/components/schemas/Identificator'
              description: The national number of the person
            lastName:
              description: The last name(s) of the person
              type: array
              items:
                type: string
            firstName:
              description: The first name(s) of the person
              type: array
              items:
                type: string
            birthYear:
              type: string
              description: The year of birth of the titular
        organisation:
          type: object
          description: Organisation object only available in case the titular-type is a moral person (organisation).
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: indicates that it is an organisation
              default: 'http://www.w3.org/ns/org#Organization'
            companyNr:
              $ref: '#/components/schemas/Identificator'
              description: 'The KBO/BCE number of the company. '
            organisationName:
              $ref: '#/components/schemas/LangString'
              description: Name of the organisation
            isLeaseCompany:
              type: string
              description: Indication Y(es) or N(o) whether the organisation is a lease-company (Renta-flag)
            legalFormCode:
              $ref: '#/components/schemas/Concept'
              description: The legal-form code of the company
            legalFormAbbrev:
              $ref: '#/components/schemas/Concept'
              description: The abbreviation of the legal-form of the company.
        contactInfo:
          type: object
          description: In OSLO, the Address is linked the Agents through the contactInfo
          properties:
            '@type':
              type: string
              description: the contactinfo is of type contactInfo
              default: 'https://schema.org/ContactPoint'
            address:
              description: "Current address of the titutar according to DIV"
              $ref: '#/components/schemas/Address'
            registrationAddress:
              description: "The address known by DIV at the moment of inscription."
              $ref: '#/components/schemas/Address'
            currentAddress:
              description: "The current address of the titular. Latest informatie retrieved based the INSZ OR KBO in the respective authentic source by MAGDA. This data block is only returned when addressEnrichment was requested for the corresponsing type of titual (person or organisation)."
              allOf:
                - $ref: '#/components/schemas/Address'
                - type: object
                  properties:
                    natRegStreetCode:
                      type: string



    Vehicle:
      type: object
      description: The vehicle object.
      properties:
        vin:
          type: string
          description: Vehicle Identification Number or Chassis number. The unique number of the vehicle which is stamped in the vehicle by the manufacturer or competent authority.
        unifier:
          type: string
          description: 'With the VIN, the unifier creates an unique identification for small VIN.'
        category:
          type: object
          properties:
            code:
              type: string
              description: European category code. This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
            description:
              type: string
              description: 'European category description '
        makeName:
          type: string
          description: The make name of the vehicle.
        commercialName:
          type: string
          description: The commercial name of the vehicle.
        makeDivCode:
          type: string
          description: DIV code of the make name. Will become OBSOLETE in a next release.
        makeTypeDescription:
          type: string
          description: Make type description. Only filled in case of a national homologation. Will become OBSOLETE in a next release.
        firstRegistrationDate:
          type: string
          format: date
          description: 'The first registration date of the vehicle (the first time a plate was assigned to it). '
        firstKnownUseDate:
          type: string
          format: date
          description: 'The first date when the vehicle has been used (not necessary the same date as the first registration date). For example, the scooters were used in Belgium and the registration was only possible in 2015.'
        maxPermLadenMassNational:
          type: number
          format: int32
          description: 'Intended registration/in service maximum permissible laden mass in national traffic. In Belgium this is the maximum national mass (F2). [former mmaNational]'
        type:
          type: string
          description: The type of the vehicle as stated on the approval. This entry is NOT used for commercial description.
        wvta:
          type: string
          description: European homologation type approval number (Whole Vehicle Type-Approval)
        pvaBelgium:
          type: string
          description: Belgian national approval number
        typeApprovalType:
          type: string
          description: This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
        individualApprovalType:
          type: string
          description: Individual approval type (harmonized/non harmonized)
        variant:
          type: string
          description: The variant of the vehicle as stated on the approval.
        version:
          type: string
          description: The version of the vehicle as stated on the approval.
        dateCOC:
          type: string
          format: date
          description: The date of the COC
        status:
          type: object
          properties:
            code:
              type: string
              description: 'Vehicle status '
            description:
              type: string
              description: Description of the vehicle status
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: 'Vehicle legal status '
            description:
              type: string
              description: Description of the vehicle legal status
        statusAdministrative:
          type: object
          properties:
            code:
              type: string
              description: 'Vehicle administrative status '
            description:
              type: string
              description: Description of the vehicle administrative status
        accidentDate:
          type: string
          format: date
          description: Date of accident
        demolished:
          type: object
          properties:
            code:
              type: string
              description: Indication of demolishing
            date:
              type: string
              format: date
              description: Destruction or demolished date
            description:
              type: string
              description: Description of code demolished
        sellerCompanyCode:
          type: string
          description: Company code of the seller of the vehicle
        customsStickerCode:
          type: string
          description: The customs sticker code
        counterType:
          type: number
          format: int32
          description: Indication of number of digits on the odometer
        distanceType:
          type: string
          description: Indication of km (K) or miles (M) as used in the vehicle
        techControlValidityDate:
          type: string
          format: date
          description: Valid date of the technical control
        techControlEntryDatetime:
          type: string
          format: date-time
          description: Entry timestamp of the technical control
        importedCertificateCountryCode:
          type: string
          description: Country code (ISO3) of the foreign CIM for the imported vehicle
        importedCertificatePlateNumber:
          type: string
          description: Foreign Plate Number in case of vehicle imported
        importedCertificateRegistrationDate:
          type: string
          format: date
          description: Registration date of the imported vehicle
        codeForBodyWork:
          type: array
          items:
            $ref: '#/components/schemas/VehicleCodeForBodyWork'
        kind:
          type: object
          properties:
            code:
              type: string
              description: Vehicle kind as used in Belgium only.
            description:
              type: string
              description: Description fo the vehicle kind code
        nationalBuildup:
          type: object
          properties:
            code:
              type: string
              description: National buildup codes used by technical inspections.
            description:
              type: string
              description: The description of the national buildup code
        nationalConfiguration:
          type: object
          properties:
            code:
              type: string
              description: National vehicle configuration code used by technical inspections.
            description:
              type: string
              description: Description for the national vehicle configuration code
        colour:
          type: array
          items:
            $ref: '#/components/schemas/VehicleColour'
        offRoad:
          type: string
          description: '''G'' value if the vehicle is an ''off-road''; no values in other cases.'
        technicPermissibleMaxMass:
          type: number
          format: int32
          description: Maximum permissible mass of the vehicle.
        massOfTheVehicleInRunningOrder:
          type: number
          format: int32
          description: Mass of the vehicle in running order
        referenceMass:
          type: number
          description: The reference mass
        actualMassOfTheVehicle:
          type: number
          format: int32
          description: Actual mass of the vehicle
        maxPermMassCombination:
          type: number
          format: int32
          description: Permissible maximum mass of the combination
        numberOfAxles:
          type: number
          format: int32
          description: Number of axles of the vehicle
        loadWheelbaseRatio:
          type: number
          format: float
          description: The load wheelbase ratio for the vehicle
        wheelBase:
          type: number
          format: int32
          description: 'This is the total wheelbase. Unit of mesure: mm. In case of motor vehicle or drawbar trailer: first axle to most rear axle. In case of centre-axle-trailer or semi-trailer: the coupling point to most rear axle.'
        maximumSpeed:
          type: number
          format: int32
          description: 'Maximum vehicle speed. Unit: km/h or miles/h'
        limiterIndicator:
          type: boolean
          description: Indicates if the vehicle has a limiter installed
        handicapIndicator:
          type: boolean
          description: Indicates if vehicle is built for disabled person
        tachoIndicator:
          type: boolean
          description: Indicates a tachograph
        assistanceWithoutPedallingIndicator:
          type: boolean
          description: Only available when a vehicle is a speed pedelec. This attribute indicates an autonomous propulsion.
        sizeHeight:
          type: number
          format: int32
          description: The height of the vehicle
        sizeLength:
          type: number
          format: int32
          description: The length of the vehicle
        sizeWidth:
          type: number
          format: int32
          description: The width of the vehicle
        nrOfSeatingPositions:
          type: number
          format: int32
          description: The number of seating positions (including the driver). The seats designated for use only when the vehicle is stationary are not included.
        numberOfStandingPlaces:
          type: number
          format: int32
          description: Number of standing places
        suspension:
          type: object
          properties:
            code:
              type: string
              description: The suspension code
            description:
              type: string
              description: The description of the suspension code
        exhaustDirectiveRefCode:
          type: string
          description: The directive exhaust emisisons code
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
        engine:
          type: array
          description: Array containing vehicle engine(s) specifications
          items:
            $ref: '#/components/schemas/VehicleEngine'
    VehicleCodeForBodyWork:
      type: object
      description: Object containing specific vehicle code for bodywork
      properties:
        code:
          type: string
          description: Code for bodywork
        description:
          type: string
          description: Description of code for bodywork
    VehicleColour:
      type: object
      description: Object containing the colours for a vehicle
      properties:
        code:
          type: string
          description: Colour code
        description:
          type: string
          description: Description of code for colour
    VehicleEngine:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        engineNumber:
          type: string
          description: The engine number is the unique number of the engine as marked on the engine.
        engineCapacity:
          type: number
          format: float
          description: Engine capacity (cm^3)
        electricEngineIndicator:
          type: boolean
          description: 'Electric Engine '
        fuel:
          type: array
          description: Array containing vehicle engine fuel(s) specifications
          items:
            $ref: '#/components/schemas/VehicleFuel'
    VehicleFuel:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        code:
          type: string
          description: The fuel code (carburant)
        description:
          type: string
          description: The fuel description (carburant)
        maximumNetPower:
          type: number
          format: float
          description: Maximum net power for combustion engine. Not used  for electric engines.
        euroNormCode:
          type: string
          description: 'The emission euronorm '
        exhaustEmissionLevelEuro:
          type: string
          description: Exhaust emission level Euro (called Euronorm)
        maximumContinuousRatedPower:
          type: number
          format: float
          description: Maximum continuous rated power/30 minutes power
        weightPowerRatio:
          type: number
          format: float
          description: Power mass ratio
        electricEnergyConsWeightedComb:
          type: number
          format: float
          description: 'Electric energy consumption weighted, combined (Wh/km)'
        electricRangeExternChargeable:
          type: number
          format: int32
          description: Electric range externally chargeable hybrid vehicle (km)
        combinedFuelConsumption:
          type: number
          format: float
          description: Combined fuel consumption
        combinedCO2:
          type: number
          format: int32
          description: Combined CO2
        WLTPCombinedCO2:
          type: number
          format: int32
          description: 'All power trains,  CO2 emissions of the WLTP combined testing phase'
        weightedCombinedCO2:
          type: number
          format: int32
          description: 'Weighted, combined CO2'
        WLTPWeightedCombinedCO2:
          type: number
          format: int32
          description: 'All power trains, CO2 emissions weighted combined of the WLTP test result'
        particulatesMassBenchTest:
          type: number
          format: float
          description: Mass of particulates bench (engine and vehicle) emission
    Address:
      type: object
      description: "Address In OSLO format."
      properties:
        '@type':
          type: string
          description: "Address info of the contact address"
          default: "http://www.w3.org/ns/locn#Address"
        lastUpdateSource:
          type: string
          description: "The datasource from which the last update of the address occurred (‘RR’, ‘BIS’, ‘KBO’, ‘local’)"
        lastUpdateDateTime:
          type: string
          format: date-time
          description: "The date and time the address has been last updated from the mentioned data source"
        streetName:
          $ref: '#/components/schemas/LangString'
          description: "Street name of the address"
        houseNumber:
          type: string
          description: "Housenumber of the address"
        box:
          type: string
          description: "POBox number of the address"
        postalCode:
          type: string
          description: "Postalcode of the address"
        cityNisCode:
          type: string
          description: "Nis code for the city of the address"
        cityName:
          $ref: '#/components/schemas/LangString'
          description: "The city name of the address"
        countryName:
          $ref: '#/components/schemas/LangString'
          description: "Country name"
        countryISO:
          type: string
          description: "Country code (ISO2Code)"
    Certificate:
      type: object
      description: The certificate object.
      properties:
        id:
          type: string
          description: The id of the certificate CIM
        type:
          type: string
          description: 'The type of the certificate - ORI (Original, DUP (Duplicate), CPY (Copy)'
        beginDate:
          type: string
          format: date-time
          description: The begin date of the certificate
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: The legal status of the certificate
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the legal status of the certificate
        relatedCertificateId:
          type: string
          description: The id of the related certificate
    Driver:
      type: object
      properties:
        source:
          type: string
          description: Indicating the source of the driver identification.
        address:
          $ref: "#/components/schemas/Address"
          description: Address of the driver
        person:
          type: object
          properties:
            '@type':
              type: string
              description: Indicates that it is a person
              default: http://www.w3.org/ns/person#Person
            nationalNr:
              $ref: '#/components/schemas/Identificator'
              description: The national number of the person
            lastName:
              type: array
              description: The last name(s) of the person
              items:
                type: string
            firstName:
              type: array
              description: The first name(s) of the person
              items:
                type: string
          description: Person object.
      description: The driver object.


    MovementIndication:
      type: object
      properties:
        dateTime:
          type: string
          format: date-time
          description: The timestamp of the movement indication
        transactionTypeCode:
          type: string
          description: The type code of the transaction.
          enum:
            - NEW
            - REG
            - CGR
            - CGV
            - TRA
            - UNR
            - RAD
        objectKey:
          type: object
          description: The object containing the object key reference values. An attribute key reference value only is available following the business legal purposes.
          properties:
            plateNr:
              type: string
              description: The plate number.
            plateUID:
              type: string
              description: The license plate related technical unique identifier.
            vin:
              type: string
              description: The vehicle identification number.
            unifier:
              type: string
              description: The unifier of the vehicle identification number. Always used in combination with the VIN.
            transactionUID:
              type: string
              description: The transaction related technical unique identifier. Can only be available when the movement indication is related to a registration.
      required:
        - dateTime
        - transactionTypeCode
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message
openapi: 3.0.3
info:
  title: Expose Data DIV - Registrations Service
  description: 'This RESTful API is designed to query current data registered at the DIV. It returns data of the registration-domain including sub-domains license, certificate, titular and vehicle. Release date August 2020.'
  contact:
    name: registrationsAPI
    email: helpdesk.magda@vlaanderen.be
  license:
    name: registrationsAPI
    url: 'https://overheid.vlaanderen.be/magda'
  version: '1.2'
servers:
  - url: /api/v1/mobility
paths:
  /registrations:
    get:
      tags:
        - Request Registrations
      summary: Operations for consultation of registrations current data.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: plateNr
          in: query
          description: The plate number as a principal parameter.
          required: false
          schema:
            type: string
        - name: plateUID
          in: query
          description: The license unique identifier linked to the plate number as a principal parameter.
          required: false
          schema:
            type: string
        - name: vin
          in: query
          description: The vehicle identification number as a principal parameter.
          required: false
          schema:
            type: string
        - name: unifier
          in: query
          description: The unifier of the vehicle identification number. <br>To be specified always in combination with the VIN.
          required: false
          schema:
            type: string
        - name: certificateId
          in: query
          description: The certificate (CIM) Id as a principal parameter.
          required: false
          schema:
            type: string
        - name: nationalNr
          in: query
          description: The national number as a principal parameter.
          required: false
          schema:
            type: string
        - name: companyNr
          in: query
          description: The company number as a principal parameter.
          required: false
          schema:
            type: string
        - name: dateTime
          in: query
          description: 'The date for which the data is requested. When not specified, the default will be the current date and time. Always to be specified in combination with a principal query parameter.'
          required: false
          schema:
            type: string
            format: date-time
        - name: transactionUID
          in: query
          description: The transaction unique identifier as a principal parameter.
          required: false
          schema:
            type: string
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
        - name: addressEnrichmentPerson
          description: "Source where titular current addres will be retrieved in case titular is a Person. Omit the query parameter in case the current address is not required."
          in: query
          required: false
          schema:
            type: string
            enum:
              - RR
              - KSZ
        - name: addressEnrichmentOrganisation
          description: "Denotes if titular current addres nees to be provided in case the Titular is an organisation. Omit the query parameter in case the current address is not required."
          in: query
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          headers:
            X-Magda-Exceptions:
              description: "Contains \"Uitzonderingen\" returned by the MAGDA SOAP services called by the business service to do the data enhancements"
              schema:
                $ref: '#/components/schemas/MagdaExceptionList'
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    Response:
      type: object
      description: The object containing the result
      properties:
        '@context':
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/1693680273/Mobility-context.jsonld'
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: 'An array of registration objects. The content can be none, one or multiple objects.'
          items:
            $ref: '#/components/schemas/Registration'
        total:
          type: number
          description: The total amount of elements in the collection resource following the requested parameters.
        next:
          type: string
          description: Link to the next page.
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    Enduser-Id:
      type: string
      description: "Reference to the user that triggerd the request."
    LangString:
      type: object
      description: String with a language attribute
      properties:
        string:
          type: string
        lang:
          type: string
    Identificator:
      type: object
      description: OSLO object representing an identification element
      properties:
        identificator:
          type: string
    Concept:
      type: object
      description: A concept in a conceptscheme according to the SKOS vocabulary
      properties:
        '@type':
          type: string
          description: declaration of the type of the object
          default: http://www.w3.org/2004/02/skos/core#Concept
        prefLabel:
          $ref: '#/components/schemas/LangString'

    Registration:
      type: object
      description: The registration object. Attributes will be limited to what is necessary in relation to your legal purposes.
      properties:
        license:
          $ref: '#/components/schemas/License'
        certificates:
          type: array
          description: 'An array of certificate data. The content can be none, one or multiple entries.'
          items:
            $ref: '#/components/schemas/Certificate'
        titular:
          $ref: '#/components/schemas/Titular'
        transaction:
          $ref: '#/components/schemas/Transaction'
        vehicle:
          $ref: '#/components/schemas/Vehicle'
    License:
      type: object
      description: The license object.
      properties:
        plateNr:
          type: string
          description: 'The plate number; as it appears on the plate, without any edit characters.'
        plateUID:
          type: string
          description: 'A technical global unique identifier corresponding with the plate number (GUID)'
        plateNrFormatted:
          type: string
          description: 'The plate number format [for Police]'
        plateType:
          type: object
          properties:
            code:
              type: string
              description: The type code of the plate
            description:
              type: string
              description: The description of the plate type
        languageCode:
          type: string
          description: 'The language of the license; fr, nl, de, en'
        startSituationDate:
          type: string
          format: date-time
          description: 'The begin date of the license. '
        expiryDate:
          type: string
          format: date-time
          description: The (planned) expiry date (when relevant/known)
        lastRegistrationDate:
          type: string
          format: date-time
          description: Date of the last registration
        firstRegistrationDateBelgium:
          type: string
          format: date
          description: 'Date of the first registration in Belgium. In case of an imported and used vehicle (101), the first_immatriculation_date can differ from the date of the first registration in Belgium.  This attribute will contain the date of the first registration in the DIV-records to indicate that the vehicle in question is an already used vehicle, that is registered after import.'
        reRegistrationFlag:
          type: string
          description: Indication of re-registration
        commercialMaxMass:
          type: number
          format: int32
          description: The commercial maximum mass allowed
        commercialMaxCapacity:
          type: number
          format: int32
          description: The commercial maximum capacity allowed
        status:
          type: object
          properties:
            code:
              type: string
              description: The status of the license (registration)
            beginDate:
              type: string
              format: date-time
              description: 'The begin date of this status '
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the status code of the license
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: The legal status of the license
            beginDate:
              type: string
              format: date-time
              description: 'The begin date of this status '
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the legal status code of the license
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
    Certificate:
      type: object
      description: The certificate object.
      properties:
        id:
          type: string
          description: The id of the certificate CIM
        type:
          type: string
          description: 'The type of the certificate - ORI (Original, DUP (Duplicate), CPY (Copy)'
        beginDate:
          type: string
          format: date-time
          description: The begin date of the certificate
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: The legal status of the certificate
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the legal status of the certificate
        relatedCertificateId:
          type: string
          description: The id of the related certificate
    Titular:
      description: The titular object.
      type: object
      properties:
        '@id':
          type: string
          description: 'Identification of the Titular object, should be generated in the form _:XXX'
        '@type':
          type: string
          description: The type of the titular
          default: 'http://purl.org/dc/terms/Agent'
        type:
          type: string
          description: 'Indication whether the titular is a natural person (NP) or a moral person/organization (M). '
        source:
          type: string
          description: 'Indicating the source of the titular identification number in case different from RR/RN and KBO/BCE.'
        title:
          type: string
          description: 'The titular title of the plate. Example of values: Prince, Princess, Duke, Duchess, Marquis, Marquise, Earldom, Countess, Viscount, …'
        person:
          type: object
          description: Person object - only available in case the titular-type is a natural person.
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: Indicates that it is a person
              default: 'http://www.w3.org/ns/person#Person'
            nationalNr:
              $ref: '#/components/schemas/Identificator'
              description: The national number of the person
            lastName:
              description: The last name(s) of the person
              type: array
              items:
                type: string
            firstName:
              description: The first name(s) of the person
              type: array
              items:
                type: string
            birthYear:
              type: string
              description: The year of birth of the titular
        organisation:
          type: object
          description: Organisation object only available in case the titular-type is a moral person (organisation).
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: indicates that it is an organisation
              default: 'http://www.w3.org/ns/org#Organization'
            companyNr:
              $ref: '#/components/schemas/Identificator'
              description: 'The KBO/BCE number of the company. '
            organisationName:
              $ref: '#/components/schemas/LangString'
              description: Name of the organisation
            isLeaseCompany:
              type: string
              description: Indication Y(es) or N(o) whether the organisation is a lease-company (Renta-flag)
            legalFormCode:
              $ref: '#/components/schemas/Concept'
              description: The legal-form code of the company
            legalFormAbbrev:
              $ref: '#/components/schemas/Concept'
              description: The abbreviation of the legal-form of the company.
        contactInfo:
          type: object
          description: In OSLO, the Address is linked the Agents through the contactInfo
          properties:
            '@type':
              type: string
              description: the contactinfo is of type contactInfo
              default: 'https://schema.org/ContactPoint'
            registrationAddress:
              description: "The address of the titular at moment of registration of the plate."
              $ref: '#/components/schemas/Address'
            address:
              description: "The address known at DIV. It is to be interpreted as the address of the titular."
              $ref: '#/components/schemas/Address'
            currentAddress:
              description: "The current address of the titular. Latest information retrieved based the INSZ OR KBO in the respective authentic source. This data block is only returned when addressEnrichment was requested for the corresponsing type of titual (person or organisation)."
              $ref: '#/components/schemas/Address'
    Vehicle:
      type: object
      description: The vehicle object.
      properties:
        vin:
          type: string
          description: Vehicle Identification Number or Chassis number. The unique number of the vehicle which is stamped in the vehicle by the manufacturer or competent authority.
        unifier:
          type: string
          description: 'With the VIN, the unifier creates an unique identification for small VIN.'
        category:
          type: object
          properties:
            code:
              type: string
              description: European category code. This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
            description:
              type: string
              description: 'European category description '
        makeName:
          type: string
          description: The make name of the vehicle.
        commercialName:
          type: string
          description: The commercial name of the vehicle.
        makeDivCode:
          type: string
          description: DIV code of the make name. Will become OBSOLETE in a next release.
        makeTypeDescription:
          type: string
          description: Make type description. Only filled in case of a national homologation. Will become OBSOLETE in a next release.
        firstRegistrationDate:
          type: string
          format: date
          description: 'The first registration date of the vehicle (the first time a plate was assigned to it). '
        firstKnownUseDate:
          type: string
          format: date
          description: 'The first date when the vehicle has been used (not necessary the same date as the first registration date). For example, the scooters were used in Belgium and the registration was only possible in 2015.'
        maxPermLadenMassNational:
          type: number
          format: int32
          description: 'Intended registration/in service maximum permissible laden mass in national traffic. In Belgium this is the maximum national mass (F2). [former mmaNational]'
        type:
          type: string
          description: The type of the vehicle as stated on the approval. This entry is NOT used for commercial description.
        wvta:
          type: string
          description: European homologation type approval number (Whole Vehicle Type-Approval)
        pvaBelgium:
          type: string
          description: Belgian national approval number
        typeApprovalType:
          type: string
          description: This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
        individualApprovalType:
          type: string
          description: Individual approval type (harmonized/non harmonized)
        variant:
          type: string
          description: The variant of the vehicle as stated on the approval.
        version:
          type: string
          description: The version of the vehicle as stated on the approval.
        dateCOC:
          type: string
          format: date
          description: The date of the COC
        status:
          type: object
          properties:
            code:
              type: string
              description: 'Vehicle status '
            description:
              type: string
              description: Description of the vehicle status
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: 'Vehicle legal status '
            description:
              type: string
              description: Description of the vehicle legal status
        statusAdministrative:
          type: object
          properties:
            code:
              type: string
              description: 'Vehicle administrative status '
            description:
              type: string
              description: Description of the vehicle administrative status
        accidentDate:
          type: string
          format: date
          description: Date of accident
        demolished:
          type: object
          properties:
            code:
              type: string
              description: Indication of demolishing
            date:
              type: string
              format: date
              description: Destruction or demolished date
            description:
              type: string
              description: Description of code demolished
        sellerCompanyCode:
          type: string
          description: Company code of the seller of the vehicle
        customsStickerCode:
          type: string
          description: The customs sticker code
        counterType:
          type: number
          format: int32
          description: Indication of number of digits on the odometer
        distanceType:
          type: string
          description: Indication of km (K) or miles (M) as used in the vehicle
        techControlValidityDate:
          type: string
          format: date
          description: Valid date of the technical control
        techControlEntryDatetime:
          type: string
          format: date-time
          description: Entry timestamp of the technical control
        importedCertificateCountryCode:
          type: string
          description: Country code (ISO3) of the foreign CIM for the imported vehicle
        importedCertificatePlateNumber:
          type: string
          description: Foreign Plate Number in case of vehicle imported
        importedCertificateRegistrationDate:
          type: string
          format: date
          description: Registration date of the imported vehicle
        codeForBodyWork:
          type: array
          items:
            $ref: '#/components/schemas/VehicleCodeForBodyWork'
        kind:
          type: object
          properties:
            code:
              type: string
              description: Vehicle kind as used in Belgium only.
            description:
              type: string
              description: Description fo the vehicle kind code
        nationalBuildup:
          type: object
          properties:
            code:
              type: string
              description: National buildup codes used by technical inspections.
            description:
              type: string
              description: The description of the national buildup code
        nationalConfiguration:
          type: object
          properties:
            code:
              type: string
              description: National vehicle configuration code used by technical inspections.
            description:
              type: string
              description: Description for the national vehicle configuration code
        colour:
          type: array
          items:
            $ref: '#/components/schemas/VehicleColour'
        offRoad:
          type: string
          description: '''G'' value if the vehicle is an ''off-road''; no values in other cases.'
        technicPermissibleMaxMass:
          type: number
          format: int32
          description: Maximum permissible mass of the vehicle.
        massOfTheVehicleInRunningOrder:
          type: number
          format: int32
          description: Mass of the vehicle in running order
        referenceMass:
          type: number
          description: The reference mass
        actualMassOfTheVehicle:
          type: number
          format: int32
          description: Actual mass of the vehicle
        maxPermMassCombination:
          type: number
          format: int32
          description: Permissible maximum mass of the combination
        numberOfAxles:
          type: number
          format: int32
          description: Number of axles of the vehicle
        loadWheelbaseRatio:
          type: number
          format: float
          description: The load wheelbase ratio for the vehicle
        wheelBase:
          type: number
          format: int32
          description: 'This is the total wheelbase. Unit of mesure: mm. In case of motor vehicle or drawbar trailer: first axle to most rear axle. In case of centre-axle-trailer or semi-trailer: the coupling point to most rear axle.'
        maximumSpeed:
          type: number
          format: int32
          description: 'Maximum vehicle speed. Unit: km/h or miles/h'
        limiterIndicator:
          type: boolean
          description: Indicates if the vehicle has a limiter installed
        handicapIndicator:
          type: boolean
          description: Indicates if vehicle is built for disabled person
        tachoIndicator:
          type: boolean
          description: Indicates a tachograph
        assistanceWithoutPedallingIndicator:
          type: boolean
          description: Only available when a vehicle is a speed pedelec. This attribute indicates an autonomous propulsion.
        sizeHeight:
          type: number
          format: int32
          description: The height of the vehicle
        sizeLength:
          type: number
          format: int32
          description: The length of the vehicle
        sizeWidth:
          type: number
          format: int32
          description: The width of the vehicle
        nrOfSeatingPositions:
          type: number
          format: int32
          description: The number of seating positions (including the driver). The seats designated for use only when the vehicle is stationary are not included.
        numberOfStandingPlaces:
          type: number
          format: int32
          description: Number of standing places
        suspension:
          type: object
          properties:
            code:
              type: string
              description: The suspension code
            description:
              type: string
              description: The description of the suspension code
        exhaustDirectiveRefCode:
          type: string
          description: The directive exhaust emisisons code
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
        engine:
          type: array
          description: Array containing vehicle engine(s) specifications
          items:
            $ref: '#/components/schemas/VehicleEngine'
    VehicleCodeForBodyWork:
      type: object
      description: Object containing specific vehicle code for bodywork
      properties:
        code:
          type: string
          description: Code for bodywork
        description:
          type: string
          description: Description of code for bodywork
    VehicleColour:
      type: object
      description: Object containing the colours for a vehicle
      properties:
        code:
          type: string
          description: Colour code
        description:
          type: string
          description: Description of code for colour
    VehicleEngine:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        engineNumber:
          type: string
          description: The engine number is the unique number of the engine as marked on the engine.
        engineCapacity:
          type: number
          format: float
          description: Engine capacity (cm^3)
        electricEngineIndicator:
          type: boolean
          description: 'Electric Engine '
        fuel:
          type: array
          description: Array containing vehicle engine fuel(s) specifications
          items:
            $ref: '#/components/schemas/VehicleFuel'
    VehicleFuel:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        code:
          type: string
          description: The fuel code (carburant)
        description:
          type: string
          description: The fuel description (carburant)
        maximumNetPower:
          type: number
          format: float
          description: Maximum net power for combustion engine. Not used  for electric engines.
        euroNormCode:
          type: string
          description: 'The emission euronorm '
        exhaustEmissionLevelEuro:
          type: string
          description: Exhaust emission level Euro (called Euronorm)
        maximumContinuousRatedPower:
          type: number
          format: float
          description: Maximum continuous rated power/30 minutes power
        weightPowerRatio:
          type: number
          format: float
          description: Power mass ratio
        electricEnergyConsWeightedComb:
          type: number
          format: float
          description: 'Electric energy consumption weighted, combined (Wh/km)'
        electricRangeExternChargeable:
          type: number
          format: int32
          description: Electric range externally chargeable hybrid vehicle (km)
        combinedFuelConsumption:
          type: number
          format: float
          description: Combined fuel consumption
        combinedCO2:
          type: number
          format: int32
          description: Combined CO2
        WLTPCombinedCO2:
          type: number
          format: int32
          description: 'All power trains,  CO2 emissions of the WLTP combined testing phase'
        weightedCombinedCO2:
          type: number
          format: int32
          description: 'Weighted, combined CO2'
        WLTPWeightedCombinedCO2:
          type: number
          format: int32
          description: 'All power trains, CO2 emissions weighted combined of the WLTP test result'
        particulatesMassBenchTest:
          type: number
          format: float
          description: Mass of particulates bench (engine and vehicle) emission
    Address:
      type: object
      description: "Address In OSLO format."
      properties:
        '@type':
          type: string
          description: "Address info of the contact address"
          default: "http://www.w3.org/ns/locn#Address"
        lastUpdateSource:
          type: string
          description: "The datasource from which the last update of the address occurred (‘RR’, ‘BIS’, ‘KBO’, ‘local’)"
        lastUpdateDateTime:
          type: string
          format: date-time
          description: "The date and time the address has been last updated from the mentioned data source"
        streetName:
          $ref: '#/components/schemas/LangString'
          description: "Street name of the address"
        natRegStreetCode:
          type: string
          description: "streetcode which defines a street in the municipality."
        houseNumber:
          type: string
          description: "Housenumber of the address"
        box:
          type: string
          description: "POBox number of the address"
        postalCode:
          type: string
          description: "Postalcode of the address"
        cityNisCode:
          type: string
          description: "Nis code for the city of the address"
        cityName:
          $ref: '#/components/schemas/LangString'
          description: "The city name of the address"
        countryName:
          $ref: '#/components/schemas/LangString'
          description: "Country name"
        countryISO:
          type: string
          description: "Country code (ISO2Code)"
    Transaction:
      type: object
      description: The transaction object.
      properties:
        UID:
          type: string
          description: The unique identifier of the transaction object
        typeCode:
          type: string
          description: The type code of the transaction
        subTypeCode:
          type: object
          properties:
            code:
              type: string
              description: The subtype code of the transaction
            description:
              type: string
              description: The description of the subtype of the transaction
        dateTime:
          type: string
          format: date-time
          description: The timestamp when the transaction occured
        info:
          type: object
          description: Object containing additional transaction data.
          properties:
            correctionType:
              type: object
              properties:
                code:
                  type: string
                  description: The type of the correction
                description:
                  type: string
                  description: The description of the correction code
            plateNumberPriorTitular:
              type: string
              description: Plate number prior titular
            previousPlateNrTitular:
              type: string
              description: Previous plate number titular
            newVehicle:
              type: boolean
              description: Indication new vehicle
            secondHandVehicle:
              type: boolean
              description: Indication 2nd-hand vehicle
            importedVehicle:
              type: boolean
              description: Indication imported vehicle
            transferAttest:
              type: object
              properties:
                code:
                  type: string
                  description: The transfer attest code
                description:
                  type: string
                  description: The description of the transfer attest code
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: 'A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".'
        title:
          type: string
          description: 'A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.'
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message
    MagdaException:
      required:
        - code
        - date
        - diagnosis
        - origin
        - type
        - instance
      type: object
      properties:
        code:
          type: integer
          description: "HTTP status code of the request from which this exception stemmed."
        origin:
          maxLength: 5
          type: string
          description: "Who originated this exception."
        type:
          type: string
          description: "Specifies the kind of Exception that occurred. ERROR: The main flow could not be executed successfully. WARNING: The main flow was executed successfully, but there was a non-blocking problem. INFO: The main flow was executed without any problem, but there is addition information that can be communicated."
          enum:
            - ERROR
            - WARNING
            - INFO
        date:
          type: string
          description: "Date-time (yyyy-MM-dd'T'HH:mm:ssXXX) when the error was found."
          format: date-time
        diagnosis:
          type: string
          description: "Short explation of the exception. The possible values are explained in the user guide."
        circumstance:
          type: string
          description: "More details of the cause of the exception."
        annotations:
          type: string
          description: "Not yet in use. To be worked out later."
        elementReferences:
          type: string
          description: "Contains a reference to the payload element on which this exception is applicable."
        instance:
          type: string
          description: "Contains a reference to the user that sent the original request."
      description: "A representation of a MAGDA exception."
    MagdaExceptionList:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/MagdaException'
openapi: 3.0.3
info:
  title: Expose Data DIV - Registrations History Service
  description: This RESTful API is designed to query historical data registered at the DIV. It returns data of the registration including license, certificate, titular and vehicle. Release August 2020
  contact:
    name: "registrationsHistoryAPI"
    email: "helpdesk.magda@vlaanderen.be"
  license:
    name: "registrationsHistoryAPI"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.1"
servers:
  - url: api/v1/mobility
tags:
  - name: Mobility
paths:
  /registrationsHistory:
    get:
      tags:
        - Operations for consultation of Registrations History data
      summary: Query registration historical data. At least one of the principal parameters should be defined.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: dateTimeFrom
          in: query
          description: The start date and time of the period where for the data requested. Always to be specified in combination with the dateTimeTo and a principal query parameter.
          required: true
          schema:
            type: string
            format: date-time
        - name: dateTimeTo
          in: query
          description: The end date and time of the periode where for the data requested. Always to be specified in combination with the dateTimeFrom and a principal query parameter.
          required: true
          schema:
            type: string
            format: date-time
        - name: plateNr
          in: query
          description: The plate number as a principal parameter.
          required: false
          schema:
            type: string
        - name: plateUID
          in: query
          description: '[WAIT]  The license plate unique identifier as a principal parameter.'
          required: false
          schema:
            type: string
        - name: vin
          in: query
          description: The vehicle identification number as a principal parameter.
          required: false
          schema:
            type: string
        - name: unifier
          in: query
          description: The unifier of the vehicle identification number. <br>Optional to be specified always in combination with the VIN.
          required: false
          schema:
            type: string
        - name: nationalNr
          in: query
          description: The national number as a principal parameter.
          required: false
          schema:
            type: string
        - name: companyNr
          in: query
          description: The company number as a principal parameter.
          required: false
          schema:
            type: string
        - name: pageSize
          in: query
          description: Indicates the size of a page in a paginated collection resource.
          required: false
          schema:
            type: number
        - name: after
          in: query
          description: Indicates the element before the first element of the requested page in a cursor-based paginated collection resource.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    Response:
      type: object
      description: The object containing the result
      properties:
        '@context':
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/1693680273/Mobility-context.jsonld'
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: An array of registration objects. The content can be none, one or multiple objects.
          items:
            $ref: '#/components/schemas/Registration'
        total:
          type: number
          description: The total amount of elements in the collection resource following the requested parameters.
        next:
          type: string
          description: Link to the next page.
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    Enduser-Id:
      description: "Reference to the user that triggerd the request."
      type: string
    LangString:
      type: object
      description: String with a language attribute
      properties:
        string:
          type: string
        lang:
          type: string
    Identificator:
      type: object
      description: OSLO object representing an identification element
      properties:
        identificator:
          type: string
    Concept:
      type: object
      description: A concept in a conceptscheme according to the SKOS vocabulary
      properties:
        '@type':
          type: string
          description: declaration of the type of the object
          default: http://www.w3.org/2004/02/skos/core#Concept
        prefLabel:
          $ref: '#/components/schemas/LangString'
    Registration:
      type: object
      description: The registration object.<br>Attributes will be limited to what is necessary in relation to your legal purposes.
      properties:
        license:
          $ref: '#/components/schemas/License'
        certificates:
          type: array
          description: An array of certificate data. The content can be none, one or multiple entries.
          items:
            $ref: '#/components/schemas/Certificate'
        titular:
          $ref: '#/components/schemas/Titular'
        transaction:
          $ref: '#/components/schemas/Transaction'
        vehicle:
          $ref: '#/components/schemas/Vehicle'
    License:
      type: object
      description: The license object.
      properties:
        plateNr:
          type: string
          description: The plate number; as it appears on the plate, without any edit characters.
        plateUID:
          type: string
          description: A technical global unique identifier corresponding with the plate number (GUID) [for Febiac]
        plateNrFormatted:
          type: string
          description: 'The plate number format [for Police]'
        plateType:
          type: object
          properties:
            code:
              type: string
              description: The type code of the plate
            description:
              type: string
              description: The description of the plate type
        languageCode:
          type: string
          description: 'The language of the license; fr, nl, de, en'
        startSituationDate:
          type: string
          format: date-time
          description: 'The begin date of the license. '
        expiryDate:
          type: string
          format: date-time
          description: The (planned) expiry date (when relevant/known)
        lastRegistrationDate:
          type: string
          format: date-time
          description: Date of the last registration
        firstRegistrationDateBelgium:
          type: string
          format: date
          description: Date of the first registration in Belgium. In case of an imported and used vehicle (101), the first_immatriculation_date can differ from the date of the first registration in Belgium.  This attribute will contain the date of the first registration in the DIV-records to indicate that the vehicle in question is an already used vehicle, that is registered after import.
        reRegistrationFlag:
          type: string
          description: Indication of re-registration
        commercialMaxMass:
          type: number
          format: int32
          description: The commercial maximum mass allowed
        commercialMaxCapacity:
          type: number
          format: int32
          description: The commercial maximum capacity allowed
        status:
          type: object
          properties:
            code:
              type: string
              description: The status of the license (registration)
            beginDate:
              type: string
              format: date-time
              description: 'The begin date of this status '
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the status code of the license
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: The legal status of the license
            beginDate:
              type: string
              format: date-time
              description: The begin date of this status
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the legal status code of the license
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
    Certificate:
      type: object
      description: The certificate object.
      properties:
        id:
          type: string
          description: The id of the certificate CIM
        type:
          type: string
          description: The type of the certificate - ORI (Original, DUP (Duplicate), CPY (Copy)
        beginDate:
          type: string
          format: date-time
          description: The begin date of the certificate
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: The legal status of the certificate
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the legal status of the certificate
        relatedCertificateId:
          type: string
          description: The id of the related certificate

    Titular:
      description: The titular object.
      type: object
      properties:
        '@id':
          type: string
          description: 'Identification of the Titular object, should be generated in the form _:XXX'
        '@type':
          type: string
          description: The type of the titular
          default: 'http://purl.org/dc/terms/Agent'
        type:
          type: string
          description: 'Indication whether the titular is a natural person (NP) or a moral person/organization (M). '
        source:
          type: string
          description: 'Indicating the source of the titular identification number in case different from RR/RN and KBO/BCE.'
        title:
          type: string
          description: 'The titular title of the plate. Example of values: Prince, Princess, Duke, Duchess, Marquis, Marquise, Earldom, Countess, Viscount, …'
        person:
          type: object
          description: Person object - only available in case the titular-type is a natural person.
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: Indicates that it is a person
              default: 'http://www.w3.org/ns/person#Person'
            nationalNr:
              $ref: '#/components/schemas/Identificator'
              description: The national number of the person
            lastName:
              description: The last name(s) of the person
              type: array
              items:
                type: string
            firstName:
              description: The first name(s) of the person
              type: array
              items:
                type: string
            birthYear:
              type: string
              description: The year of birth of the titular
        organisation:
          type: object
          description: Organisation object only available in case the titular-type is a moral person (organisation).
          properties:
            '@id':
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @id
            '@type':
              type: string
              description: indicates that it is an organisation
              default: 'http://www.w3.org/ns/org#Organization'
            companyNr:
              $ref: '#/components/schemas/Identificator'
              description: 'The KBO/BCE number of the company. '
            organisationName:
              $ref: '#/components/schemas/LangString'
              description: Name of the organisation
            isLeaseCompany:
              type: string
              description: Indication Y(es) or N(o) whether the organisation is a lease-company (Renta-flag)
            legalFormCode:
              $ref: '#/components/schemas/Concept'
              description: The legal-form code of the company
            legalFormAbbrev:
              $ref: '#/components/schemas/Concept'
              description: The abbreviation of the legal-form of the company.
        contactInfo:
          type: object
          description: In OSLO, the Address is linked the Agents through the contactInfo
          properties:
            '@type':
              type: string
              description: the contactinfo is of type contactInfo
              default: 'https://schema.org/ContactPoint'
            registrationAddress:
              description: "The address of the titular at moment of registration of the plate."
              $ref: '#/components/schemas/Address'
            address:
              description: "The address known at DIV. It is to be interpreted as the address of the titular."
              $ref: '#/components/schemas/Address'
    Address:
      type: object
      description: "Address In OSLO format."
      properties:
        '@type':
          type: string
          description: "Address info of the contact address"
          default: "http://www.w3.org/ns/locn#Address"
        lastUpdateSource:
          type: string
          description: "The datasource from which the last update of the address occurred (‘RR’, ‘BIS’, ‘KBO’, ‘local’)"
        lastUpdateDateTime:
          type: string
          format: date-time
          description: "The date and time the address has been last updated from the mentioned data source"
        streetName:
          $ref: '#/components/schemas/LangString'
          description: "Street name of the address"
        houseNumber:
          type: string
          description: "Housenumber of the address"
        box:
          type: string
          description: "POBox number of the address"
        postalCode:
          type: string
          description: "Postalcode of the address"
        cityNisCode:
          type: string
          description: "Nis code for the city of the address"
        cityName:
          $ref: '#/components/schemas/LangString'
          description: "The city name of the address"
        countryName:
          $ref: '#/components/schemas/LangString'
          description: "Country name"
        countryISO:
          type: string
          description: "Country code (ISO2Code)"

    Vehicle:
      type: object
      description: The vehicle object.
      properties:
        vin:
          type: string
          description: Vehicle Identification Number or Chassis number. The unique number of the vehicle which is stamped in the vehicle by the manufacturer or competent authority.
        unifier:
          type: string
          description: With the VIN, the unifier creates an unique identification for small VIN.
        category:
          type: object
          properties:
            code:
              type: string
              description: European category code. This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
            description:
              type: string
              description: European category description
        makeName:
          type: string
          description: The make name of the vehicle.
        commercialName:
          type: string
          description: The commercial name of the vehicle.
        makeDivCode:
          type: string
          description: DIV code of the make name. Will become OBSOLETE in a next release.
        makeTypeDescription:
          type: string
          description: Make type description. Only filled in case of a national homologation. Will become OBSOLETE in a next release.
        firstRegistrationDate:
          type: string
          format: date
          description: The first registration date of the vehicle (the first time a plate was assigned to it).
        firstKnownUseDate:
          type: string
          format: date
          description: The first date when the vehicle has been used (not necessary the same date as the first registration date). For example, the scooters were used in Belgium and the registration was only possible in 2015.
        maxPermLadenMassNational:
          type: number
          format: int32
          description: Intended registration/in service maximum permissible laden mass in national traffic. In Belgium this is the maximum national mass (F2). [former mmaNational]
        type:
          type: string
          description: The type of the vehicle as stated on the approval. This entry is NOT used for commercial description.
        wvta:
          type: string
          description: European homologation type approval number (Whole Vehicle Type-Approval)
        pvaBelgium:
          type: string
          description: Belgian national approval number
        typeApprovalType:
          type: string
          description: This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
        individualApprovalType:
          type: string
          description: Individual approval type (harmonized/non harmonized)
        variant:
          type: string
          description: The variant of the vehicle as stated on the approval.
        version:
          type: string
          description: The version of the vehicle as stated on the approval.
        dateCOC:
          type: string
          format: date
          description: The date of the COC
        status:
          type: object
          properties:
            code:
              type: string
              description: Vehicle status
            description:
              type: string
              description: Description of the vehicle status
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: Vehicle legal status
            description:
              type: string
              description: Description of the vehicle legal status
        statusAdministrative:
          type: object
          properties:
            code:
              type: string
              description: Vehicle administrative status
            description:
              type: string
              description: Description of the vehicle administrative status
        accidentDate:
          type: string
          format: date
          description: Date of accident
        demolished:
          type: object
          properties:
            code:
              type: string
              description: Indication of demolishing
            date:
              type: string
              format: date
              description: Destruction or demolished date
            description:
              type: string
              description: Description of code demolished
        sellerCompanyCode:
          type: string
          description: Company code of the seller of the vehicle
        customsStickerCode:
          type: string
          description: The customs sticker code
        counterType:
          type: number
          format: int32
          description: Indication of number of digits on the odometer
        distanceType:
          type: string
          description: Indication of km (K) or miles (M) as used in the vehicle
        techControlValidityDate:
          type: string
          format: date
          description: Valid date of the technical control
        techControlEntryDatetime:
          type: string
          format: date-time
          description: Entry timestamp of the technical control
        importedCertificateCountryCode:
          type: string
          description: Country code (ISO3) of the foreign CIM for the imported vehicle
        importedCertificatePlateNumber:
          type: string
          description: Foreign Plate Number in case of vehicle imported
        importedCertificateRegistrationDate:
          type: string
          format: date
          description: Registration date of the imported vehicle
        codeForBodyWork:
          type: array
          items:
            $ref: '#/components/schemas/VehicleCodeForBodyWork'
        kind:
          type: object
          properties:
            code:
              type: string
              description: Vehicle kind as used in Belgium only.
            description:
              type: string
              description: Description fo the vehicle kind code
        nationalBuildup:
          type: object
          properties:
            code:
              type: string
              description: National buildup codes used by technical inspections.
            description:
              type: string
              description: The description of the national buildup code
        nationalConfiguration:
          type: object
          properties:
            code:
              type: string
              description: National vehicle configuration code used by technical inspections.
            description:
              type: string
              description: Description for the national vehicle configuration code
        colour:
          type: array
          items:
            $ref: '#/components/schemas/VehicleColour'
        offRoad:
          type: string
          description: '''G'' value if the vehicle is an ''off-road''; no values in other cases.'
        technicPermissibleMaxMass:
          type: number
          format: int32
          description: Maximum permissible mass of the vehicle.
        massOfTheVehicleInRunningOrder:
          type: number
          format: int32
          description: Mass of the vehicle in running order
        referenceMass:
          type: number
          description: The reference mass
        actualMassOfTheVehicle:
          type: number
          format: int32
          description: Actual mass of the vehicle
        maxPermMassCombination:
          type: number
          format: int32
          description: Permissible maximum mass of the combination
        numberOfAxles:
          type: number
          format: int32
          description: Number of axles of the vehicle
        loadWheelbaseRatio:
          type: number
          format: float
          description: The load wheelbase ratio for the vehicle
        wheelBase:
          type: number
          format: int32
          description: 'This is the total wheelbase. Unit of mesure: mm. In case of motor vehicle or drawbar trailer: first axle to most rear axle. In case of centre-axle-trailer or semi-trailer: the coupling point to most rear axle.'
        maximumSpeed:
          type: number
          format: int32
          description: 'Maximum vehicle speed. Unit: km/h or miles/h'
        limiterIndicator:
          type: boolean
          description: Indicates if the vehicle has a limiter installed
        handicapIndicator:
          type: boolean
          description: Indicates if vehicle is built for disabled person
        tachoIndicator:
          type: boolean
          description: Indicates a tachograph
        assistanceWithoutPedallingIndicator:
          type: boolean
          description: Only available when a vehicle is a speed pedelec. This attribute indicates an autonomous propulsion.
        sizeHeight:
          type: number
          format: int32
          description: The height of the vehicle
        sizeLength:
          type: number
          format: int32
          description: The length of the vehicle
        sizeWidth:
          type: number
          format: int32
          description: The width of the vehicle
        nrOfSeatingPositions:
          type: number
          format: int32
          description: The number of seating positions (including the driver). The seats designated for use only when the vehicle is stationary are not included.
        numberOfStandingPlaces:
          type: number
          format: int32
          description: Number of standing places
        suspension:
          type: object
          properties:
            code:
              type: string
              description: The suspension code
            description:
              type: string
              description: The description of the suspension code
        exhaustDirectiveRefCode:
          type: string
          description: The directive exhaust emisisons code
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
        engine:
          type: array
          description: Array containing vehicle engine(s) specifications
          items:
            $ref: '#/components/schemas/VehicleEngine'
    VehicleCodeForBodyWork:
      type: object
      description: Object containing specific vehicle code for bodywork
      properties:
        code:
          type: string
          description: Code for bodywork
        description:
          type: string
          description: Description of code for bodywork
    VehicleColour:
      type: object
      description: Object containing the colours for a vehicle
      properties:
        code:
          type: string
          description: Colour code
        description:
          type: string
          description: Description of code for colour
    VehicleEngine:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        engineNumber:
          type: string
          description: The engine number is the unique number of the engine as marked on the engine.
        engineCapacity:
          type: number
          format: float
          description: Engine capacity (cm^3)
        electricEngineIndicator:
          type: boolean
          description: Electric Engine
        fuel:
          type: array
          description: Array containing vehicle engine fuel(s) specifications
          items:
            $ref: '#/components/schemas/VehicleFuel'
    VehicleFuel:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        code:
          type: string
          description: The fuel code (carburant)
        description:
          type: string
          description: The fuel description (carburant)
        maximumNetPower:
          type: number
          format: float
          description: Maximum net power for combustion engine. Not used  for electric engines.
        euroNormCode:
          type: string
          description: The emission euronorm
        exhaustEmissionLevelEuro:
          type: string
          description: Exhaust emission level Euro (called Euronorm)
        maximumContinuousRatedPower:
          type: number
          format: float
          description: Maximum continuous rated power/30 minutes power
        weightPowerRatio:
          type: number
          format: float
          description: Power mass ratio
        electricEnergyConsWeightedComb:
          type: number
          format: float
          description: Electric energy consumption weighted, combined (Wh/km)
        electricRangeExternChargeable:
          type: number
          format: int32
          description: Electric range externally chargeable hybrid vehicle (km)
        combinedFuelConsumption:
          type: number
          format: float
          description: Combined fuel consumption
        combinedCO2:
          type: number
          format: int32
          description: Combined CO2
        WLTPCombinedCO2:
          type: number
          format: int32
          description: All power trains,  CO2 emissions of the WLTP combined testing phase
        weightedCombinedCO2:
          type: number
          format: int32
          description: Weighted, combined CO2
        WLTPWeightedCombinedCO2:
          type: number
          format: int32
          description: All power trains, CO2 emissions weighted combined of the WLTP test result
        particulatesMassBenchTest:
          type: number
          format: float
          description: Mass of particulates bench (engine and vehicle) emission
    Transaction:
      type: object
      description: The transaction object.
      properties:
        UID:
          type: string
          description: The unique identifier of the transaction object
        typeCode:
          type: string
          description: The type code of the transaction
        subTypeCode:
          type: object
          properties:
            code:
              type: string
              description: The subtype code of the transaction
            description:
              type: string
              description: The description of the subtype of the transaction
        dateTime:
          type: string
          format: date-time
          description: The timestamp when the transaction occured
        info:
          type: object
          description: Object containing additional transaction data.
          properties:
            correctionType:
              type: object
              properties:
                code:
                  type: string
                  description: The type of the correction
                description:
                  type: string
                  description: The description of the correction code
            plateNumberPriorTitular:
              type: string
              description: Plate number prior titular
            previousPlateNrTitular:
              type: string
              description: Previous plate number titular
            newVehicle:
              type: boolean
              description: Indication new vehicle
            secondHandVehicle:
              type: boolean
              description: Indication 2nd-hand vehicle
            importedVehicle:
              type: boolean
              description: Indication imported vehicle
            transferAttest:
              type: object
              properties:
                code:
                  type: string
                  description: The transfer attest code
                description:
                  type: string
                  description: The description of the transfer attest code
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message
openapi: 3.0.3
info:
  title: Expose Data DIV - Registrations Titular Service
  description: 'This RESTful API is designed to query the data registered at the DIV with focus on finding the current titular for a plate number or vin. It returns data of the registration-domain including sub-domains license, titular and vehicle. Release January 30 - 2021.'
  contact:
    name: registrationsTitularAPI
    email: helpdesk.magda@vlaanderen.be
  license:
    name: RegistrationsTitularAPI
    url: https://overheid.vlaanderen.be/magda
  version: '1.2'
servers:
  - url: '/api/v1/mobility'
paths:
  /registrationsTitular:
    get:
      tags:
        - Operations for consultation of Registrations Titular data
      summary: Query registration data by request parameters. At least one of the principal parameters should be defined. Main source is DIV data, enriched with current address of titular when requested and allowed
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Magda-Enduser-ID
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Enduser-Id'
        - name: addressEnrichment
          description: When set to true, currentAddress of titular is added to the response. When false only the adress know at DIV is returned
          in: query
          required: false
          schema:
            type: boolean
            default: false
        - name: plateNr
          in: query
          description: The plate number as a principal parameter.
          required: false
          schema:
            type: string
        - name: vin
          in: query
          description: The vehicle identification number as a principal parameter.
          required: false
          schema:
            type: string
        - name: unifier
          in: query
          description: 'The unifier of the vehicle identification number. <br>To be specified always in combination with the VIN. '
          required: false
          schema:
            type: string
        - name: dateTime
          in: query
          description: 'The date for which the data is requested. When not specified, the default will be the current date and time. Always to be specified in combination with a principal query parameter.'
          required: false
          schema:
            type: string
            format: date-time
        - name: addressEnrichmentPerson
          description: "Source where titular current addres will be retrieved in case titular is a Person. Omit the query parameter in case the current address is not required."
          in: query
          required: false
          schema:
            type: string
            enum:
              - RR
              - KSZ
        - name: addressEnrichmentOrganisation
          description: "Denotes if titular current addres nees to be provided in case the Titular is an organisation. Omit the query parameter in case the current address is not required."
          in: query
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          headers:
            X-Magda-Exceptions:
              description: "Contains \"Uitzonderingen\" returned by the MAGDA SOAP services called by the business service to do the data enhancements"
              schema:
                $ref: '#/components/schemas/MagdaExceptionList'
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '204':
          description: No result found.
        '400':
          description: Invalid data supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: No data found for the requested parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    Response:
      type: object
      description: The object containing the result
      properties:
        "@context":
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/1693680273/Mobility-context.jsonld'
        self:
          type: string
          description: Link to this request.
        items:
          type: array
          description: An array of registration objects. The content can be none or one object.
          items:
            $ref: '#/components/schemas/Registration'
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    Enduser-Id:
      description: "Reference to the user that triggerd the request."
      type: string
    LangString:
      type: object
      description: String with a language attribute
      properties:
        string:
          type: string
        lang:
          type: string
    Identificator:
      type: object
      description: OSLO object representing an identification element
      properties:
        identificator:
          type: string
    Concept:
      type: object
      description: A concept in a conceptscheme according to the SKOS vocabulary
      properties:
        '@type':
          type: string
          description: declaration of the type of the object
          default: http://www.w3.org/2004/02/skos/core#Concept
        prefLabel:
          $ref: '#/components/schemas/LangString'
    Registration:
      type: object
      description: The registration object.  <br>Attributes will be limited to what is necessary in relation to your legal purposes.
      properties:
        driver:
          $ref: "#/components/schemas/Driver"
        license:
          $ref: '#/components/schemas/License'
        titular:
          $ref: '#/components/schemas/Titular'
        vehicle:
          $ref: '#/components/schemas/Vehicle'
    License:
      type: object
      description: The license object.
      properties:
        plateNr:
          type: string
          description: The plate number; as it appears on the plate, without any edit characters.
        plateUID:
          type: string
          description: 'A technical global unique identifier corresponding with the plate number (GUID) [for Febiac]'
        plateNrFormatted:
          type: string
          description: 'The plate number format [for Police]'
        plateType:
          type: object
          properties:
            code:
              type: string
              description: The type code of the plate
            description:
              type: string
              description: The description of the plate type
        languageCode:
          type: string
          description: The language of the license; fr, nl, de, en
        startSituationDate:
          type: string
          format: date-time
          description: The begin date of the license.
        expiryDate:
          type: string
          format: date-time
          description: The (planned) expiry date (when relevant/known)
        lastRegistrationDate:
          type: string
          format: date-time
          description: Date of the last registration
        firstRegistrationDateBelgium:
          type: string
          format: date
          description: Date of the first registration in Belgium. In case of an imported and used vehicle (101), the first_immatriculation_date can differ from the date of the first registration in Belgium.  This attribute will contain the date of the first registration in the DIV-records to indicate that the vehicle in question is an already used vehicle, that is registered after import.
        reRegistrationFlag:
          type: string
          description: Indication of re-registration
        commercialMaxMass:
          type: number
          format: int32
          description: The commercial maximum mass allowed
        commercialMaxCapacity:
          type: number
          format: int32
          description: The commercial maximum capacity allowed
        status:
          type: object
          properties:
            code:
              type: string
              description: The status of the license (registration)
            beginDate:
              type: string
              format: date-time
              description: 'The begin date of this status '
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the status code of the license
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: The legal status of the license
            beginDate:
              type: string
              format: date-time
              description: 'The begin date of this status '
            endDate:
              type: string
              format: date-time
              description: The end date of this status (as old status) filled when a new status becomes active
            description:
              type: string
              description: The description of the legal status code of the license
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
    Titular:
      description: The titular object.
      type: object
      properties:
        "@id":
          type: string
          description: 'Identification of the Titular object, should be generated in the form _:XXX'
        '@type':
          type: string
          description: The type of the titular
          default: 'http://purl.org/dc/terms/Agent'
        type:
          type: string
          description: "Indication whether the titular is a natural person (NP) or a moral person/organisation (M)."
        source:
          type: string
          description: "Indicating the source of the titular identification number in case different from RR/RN and KBO/BCE."
        title:
          type: string
          description: 'The titular title of the plate. Example of values: Prince, Princess, Duke, Duchess, Marquis, Marquise, Earldom, Countess, Viscount, …'
        person:
          type: object
          description: Person object - only available in case the titular-type is a natural person.
          properties:
            "@id":
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @Id
            '@type':
              type: string
              description: Indicates that it is a person
              default: http://www.w3.org/ns/person#Person
            nationalNr:
              $ref: '#/components/schemas/Identificator'
              description: The national number of the person
            lastName:
              description: The last name(s) of the person
              type: array
              items:
                type: string
            firstName:
              description: The first name(s) of the person
              type: array
              items:
                type: string
            birthYear:
              type: string
              description: The year of birth of the titular
        organisation:
          type: object
          description: Organisation object only available in case the titular-type is a moral person (organisation).
          properties:
            "@id":
              type: string
              description: OSLO Id reference to the Titular object; should be the same value as the titular @Id
            '@type':
              type: string
              description: indicates that it is an organisation
              default: http://www.w3.org/ns/org#Organization
            companyNr:
              $ref: '#/components/schemas/Identificator'
              description: 'The KBO/BCE number of the company. '
            organisationName:
              $ref: '#/components/schemas/LangString'
              description: Name of the organisation
            isLeaseCompany:
              type: string
              description: Indication Y(es) or N(o) whether the organisation is a lease-company (Renta-flag)
            legalFormCode:
              $ref: '#/components/schemas/Concept'
              description: The legal-form code of the company
            legalFormAbbrev:
              $ref: '#/components/schemas/Concept'
              description: The abbreviation of the legal-form of the company.
        contactInfo:
          type: object
          description: In OSLO, the Address is linked the Agents through the contactInfo
          properties:
            '@type':
              type: string
              description: the contactinfo is of type contactInfo
              default: 'https://schema.org/ContactPoint'
            address:
              description: "The address known at DIV. It is to be interpreted as the address of the titular at the moment of inscription."
              $ref: '#/components/schemas/Address'
            currentAddress:
              description: "The current address of the titular. Latest informatie retrieved based the INSZ OR KBO in the respective authentic source. This data block is only returned when addressEnrichment was requested for the corresponsing type of titual (person or organisation)."
              $ref: '#/components/schemas/Address'
    Vehicle:
      type: object
      description: The vehicle object.
      properties:
        vin:
          type: string
          description: Vehicle Identification Number or Chassis number. The unique number of the vehicle which is stamped in the vehicle by the manufacturer or competent authority.
        unifier:
          type: string
          description: With the VIN, the unifier creates an unique identification for small VIN.
        category:
          type: object
          properties:
            code:
              type: string
              description: European category code. This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
            description:
              type: string
              description: European category description
        makeName:
          type: string
          description: The make name of the vehicle.
        commercialName:
          type: string
          description: The commercial name of the vehicle.
        makeDivCode:
          type: string
          description: DIV code of the make name. Will become OBSOLETE in a next release.
        makeTypeDescription:
          type: string
          description: Make type description. Only filled in case of a national homologation. Will become OBSOLETE in a next release.
        firstRegistrationDate:
          type: string
          format: date
          description: The first registration date of the vehicle (the first time a plate was assigned to it).
        firstKnownUseDate:
          type: string
          format: date
          description: The first date when the vehicle has been used (not necessary the same date as the first registration date). For example, the scooters were used in Belgium and the registration was only possible in 2015.
        maxPermLadenMassNational:
          type: number
          format: int32
          description: 'Intended registration/in service maximum permissible laden mass in national traffic. In Belgium this is the maximum national mass (F2). [former mmaNational]'
        type:
          type: string
          description: The type of the vehicle as stated on the approval. This entry is NOT used for commercial description.
        wvta:
          type: string
          description: European homologation type approval number (Whole Vehicle Type-Approval)
        pvaBelgium:
          type: string
          description: Belgian national approval number
        typeApprovalType:
          type: string
          description: This entry is used to give the information about the type approval which is stated on the COC. Despite of the different ApprovalNumber it is needed to identify these approvals in an easy way.
        individualApprovalType:
          type: string
          description: Individual approval type (harmonized/non harmonized)
        variant:
          type: string
          description: The variant of the vehicle as stated on the approval.
        version:
          type: string
          description: The version of the vehicle as stated on the approval.
        dateCOC:
          type: string
          format: date
          description: The date of the COC
        status:
          type: object
          properties:
            code:
              type: string
              description: Vehicle status
            description:
              type: string
              description: Description of the vehicle status
        statusLegal:
          type: object
          properties:
            code:
              type: string
              description: Vehicle legal status
            description:
              type: string
              description: Description of the vehicle legal status
        statusAdministrative:
          type: object
          properties:
            code:
              type: string
              description: Vehicle administrative status
            description:
              type: string
              description: Description of the vehicle administrative status
        accidentDate:
          type: string
          format: date
          description: Date of accident
        demolished:
          type: object
          properties:
            code:
              type: string
              description: Indication of demolishing
            date:
              type: string
              format: date
              description: Destruction or demolished date
            description:
              type: string
              description: Description of code demolished
        sellerCompanyCode:
          type: string
          description: Company code of the seller of the vehicle
        customsStickerCode:
          type: string
          description: The customs sticker code
        counterType:
          type: number
          format: int32
          description: Indication of number of digits on the odometer
        distanceType:
          type: string
          description: Indication of km (K) or miles (M) as used in the vehicle
        techControlValidityDate:
          type: string
          format: date
          description: Valid date of the technical control
        techControlEntryDatetime:
          type: string
          format: date-time
          description: Entry timestamp of the technical control
        importedCertificateCountryCode:
          type: string
          description: Country code (ISO3) of the foreign CIM for the imported vehicle
        importedCertificatePlateNumber:
          type: string
          description: Foreign Plate Number in case of vehicle imported
        importedCertificateRegistrationDate:
          type: string
          format: date
          description: Registration date of the imported vehicle
        codeForBodyWork:
          type: array
          items:
            $ref: '#/components/schemas/VehicleCodeForBodyWork'
        kind:
          type: object
          properties:
            code:
              type: string
              description: Vehicle kind as used in Belgium only.
            description:
              type: string
              description: Description fo the vehicle kind code
        nationalBuildup:
          type: object
          properties:
            code:
              type: string
              description: National buildup codes used by technical inspections.
            description:
              type: string
              description: The description of the national buildup code
        nationalConfiguration:
          type: object
          properties:
            code:
              type: string
              description: National vehicle configuration code used by technical inspections.
            description:
              type: string
              description: Description for the national vehicle configuration code
        colour:
          type: array
          items:
            $ref: '#/components/schemas/VehicleColour'
        offRoad:
          type: string
          description: '''G'' value if the vehicle is an ''off-road''; no values in other cases.'
        technicPermissibleMaxMass:
          type: number
          format: int32
          description: Maximum permissible mass of the vehicle.
        massOfTheVehicleInRunningOrder:
          type: number
          format: int32
          description: Mass of the vehicle in running order
        referenceMass:
          type: number
          description: The reference mass
        actualMassOfTheVehicle:
          type: number
          format: int32
          description: Actual mass of the vehicle
        maxPermMassCombination:
          type: number
          format: int32
          description: Permissible maximum mass of the combination
        numberOfAxles:
          type: number
          format: int32
          description: Number of axles of the vehicle
        loadWheelbaseRatio:
          type: number
          format: float
          description: The load wheelbase ratio for the vehicle
        wheelBase:
          type: number
          format: int32
          description: 'This is the total wheelbase. Unit of mesure: mm. In case of motor vehicle or drawbar trailer: first axle to most rear axle. In case of centre-axle-trailer or semi-trailer: the coupling point to most rear axle.'
        maximumSpeed:
          type: number
          format: int32
          description: 'Maximum vehicle speed. Unit: km/h or miles/h'
        limiterIndicator:
          type: boolean
          description: Indicates if the vehicle has a limiter installed
        handicapIndicator:
          type: boolean
          description: Indicates if vehicle is built for disabled person
        tachoIndicator:
          type: boolean
          description: Indicates a tachograph
        assistanceWithoutPedallingIndicator:
          type: boolean
          description: Only available when a vehicle is a speed pedelec. This attribute indicates an autonomous propulsion.
        sizeHeight:
          type: number
          format: int32
          description: The height of the vehicle
        sizeLength:
          type: number
          format: int32
          description: The length of the vehicle
        sizeWidth:
          type: number
          format: int32
          description: The width of the vehicle
        nrOfSeatingPositions:
          type: number
          format: int32
          description: The number of seating positions (including the driver). The seats designated for use only when the vehicle is stationary are not included.
        numberOfStandingPlaces:
          type: number
          format: int32
          description: Number of standing places
        suspension:
          type: object
          properties:
            code:
              type: string
              description: The suspension code
            description:
              type: string
              description: The description of the suspension code
        exhaustDirectiveRefCode:
          type: string
          description: The directive exhaust emisisons code
        creationDateTime:
          type: string
          format: date-time
          description: Timestamp of the creation of this object within the datastorage
        lastUpdateDateTime:
          type: string
          format: date-time
          description: Timestamp of last modification of data within this object
        engine:
          type: array
          description: Array containing vehicle engine(s) specifications
          items:
            $ref: '#/components/schemas/VehicleEngine'
    VehicleCodeForBodyWork:
      type: object
      description: Object containing specific vehicle code for bodywork
      properties:
        code:
          type: string
          description: Code for bodywork
        description:
          type: string
          description: Description of code for bodywork
    VehicleColour:
      type: object
      description: Object containing the colours for a vehicle
      properties:
        code:
          type: string
          description: Colour code
        description:
          type: string
          description: Description of code for colour
    VehicleEngine:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        engineNumber:
          type: string
          description: The engine number is the unique number of the engine as marked on the engine.
        engineCapacity:
          type: number
          format: float
          description: Engine capacity (cm^3)
        electricEngineIndicator:
          type: boolean
          description: Electric Engine
        fuel:
          type: array
          description: Array containing vehicle engine fuel(s) specifications
          items:
            $ref: '#/components/schemas/VehicleFuel'
    VehicleFuel:
      type: object
      description: Object containing specific vehicle technical engine specifications
      properties:
        code:
          type: string
          description: The fuel code (carburant)
        description:
          type: string
          description: The fuel description (carburant)
        maximumNetPower:
          type: number
          format: float
          description: Maximum net power for combustion engine. Not used  for electric engines.
        euroNormCode:
          type: string
          description: The emission euronorm
        exhaustEmissionLevelEuro:
          type: string
          description: Exhaust emission level Euro (called Euronorm)
        maximumContinuousRatedPower:
          type: number
          format: float
          description: Maximum continuous rated power/30 minutes power
        weightPowerRatio:
          type: number
          format: float
          description: Power mass ratio
        electricEnergyConsWeightedComb:
          type: number
          format: float
          description: 'Electric energy consumption weighted, combined (Wh/km)'
        electricRangeExternChargeable:
          type: number
          format: int32
          description: Electric range externally chargeable hybrid vehicle (km)
        combinedFuelConsumption:
          type: number
          format: float
          description: Combined fuel consumption
        combinedCO2:
          type: number
          format: int32
          description: Combined CO2
        WLTPCombinedCO2:
          type: number
          format: int32
          description: All power trains,  CO2 emissions of the WLTP combined testing phase
        weightedCombinedCO2:
          type: number
          format: int32
          description: Weighted, combined CO2
        WLTPWeightedCombinedCO2:
          type: number
          format: int32
          description: All power trains, CO2 emissions weighted combined of the WLTP test result
        particulatesMassBenchTest:
          type: number
          format: float
          description: Mass of particulates bench (engine and vehicle) emission
    Address:
      type: object
      description: "Address In OSLO format."
      properties:
        '@type':
          type: string
          description: "Address info of the contact address"
          default: "http://www.w3.org/ns/locn#Address"
        lastUpdateSource:
          type: string
          description: "The datasource from which the last update of the address occurred (‘RR’, ‘BIS’, ‘KBO’, ‘local’)"
        lastUpdateDateTime:
          type: string
          format: date-time
          description: "The date and time the address has been last updated from the mentioned data source"
        streetName:
          $ref: '#/components/schemas/LangString'
          description: "Street name of the address"
        natRegStreetCode:
          type: string
          description: "streetcode which defines a street in the municipality."
        houseNumber:
          type: string
          description: "Housenumber of the address"
        box:
          type: string
          description: "POBox number of the address"
        postalCode:
          type: string
          description: "Postalcode of the address"
        cityNisCode:
          type: string
          description: "Nis code for the city of the address"
        cityName:
          $ref: '#/components/schemas/LangString'
          description: "The city name of the address"
        countryName:
          $ref: '#/components/schemas/LangString'
          description: "Country name"
        countryISO:
          type: string
          description: "Country code (ISO2Code)"

    Driver:
      type: object
      properties:
        source:
          type: string
          description: Indicating the source of the driver identification.
        address:
          $ref: "#/components/schemas/Address"
          description: Address of the driver
        person:
          type: object
          properties:
            '@type':
              type: string
              description: Indicates that it is a person
              default: http://www.w3.org/ns/person#Person
            nationalNr:
              $ref: '#/components/schemas/Identificator'
              description: The national number of the person
            lastName:
              type: array
              description: The last name(s) of the person
              items:
                type: string
            firstName:
              type: array
              description: The first name(s) of the person
              items:
                type: string
          description: Person object.
      description: The driver object.

    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message
    MagdaException:
      required:
        - code
        - date
        - diagnosis
        - origin
        - type
        - instance
      type: object
      properties:
        code:
          type: integer
          description: "HTTP status code of the request from which this exception stemmed."
        origin:
          maxLength: 5
          type: string
          description: "Who originated this exception."
        type:
          type: string
          description: "Specifies the kind of Exception that occurred. ERROR: The main flow could not be executed successfully. WARNING: The main flow was executed successfully, but there was a non-blocking problem. INFO: The main flow was executed without any problem, but there is addition information that can be communicated."
          enum:
            - ERROR
            - WARNING
            - INFO
        date:
          type: string
          description: "Date-time (yyyy-MM-dd'T'HH:mm:ssXXX) when the error was found."
          format: date-time
        diagnosis:
          type: string
          description: "Short explation of the exception. The possible values are explained in the user guide."
        circumstance:
          type: string
          description: "More details of the cause of the exception."
        annotations:
          type: string
          description: "Not yet in use. To be worked out later."
        elementReferences:
          type: string
          description: "Contains a reference to the payload element on which this exception is applicable."
        instance:
          type: string
          description: "Contains a reference to the user that sent the original request."
      description: "A representation of a MAGDA exception."
    MagdaExceptionList:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/MagdaException'

Onderneming

adressenLocaties

e

openapi: "3.0.2"
info:
  title: "Digitaal vlaanderen - adres locaties"
  description: "Deze dienst geeft adresinformatie die beschikbaar is in KBO en in GRAR (Gebouwen- & AdressenRegister). Meer specifiek worden de adreslocaties opgehaald."
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "Adreslocaties"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/onderneming"

paths:
  /ondernemingen/adressenLocaties/{ondernemingsNummer}:
    get:
      tags:
        - "Adressenlocaties"
      summary: "Haalt de adressenlocaties op van een gegeven ondernemingsnummer."
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: ondernemingsNummer
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/ondernemingsNummer'
      responses:
        200:
          description: "Response met inhoud"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/adresLocatieLijstObject"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

components:
 parameters:
    CorrelationId:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/Correlation-Id'
 responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'

 schemas:
    Correlation-Id:
      description: "ID van de transactie. Gebruik deze ID voor het tracen van logs en voor het afhandelen van incidenten."
      type: string
      minLength: 10
      maxLength: 36

    adresLocatieLijstObject:
      type: object
      properties:
        "@context":
          type: string
          example: "https://vlaamseoverheid.atlassian.net/wiki/download/attachments/6118410708/adressenLocaties-context.jsonld?api=v2"
        ondernemingsNummer:
          $ref: '#/components/schemas/ondernemingsNummer'
        soortOnderneming:
          $ref: '#/components/schemas/soortOnderneming'
        adresLocatieLijst:
          type: array
          items:
            $ref: '#/components/schemas/adresLocatie'
      required:
        - ondernemingsNummer
    adresLocatie:
      type: object
      properties:
        kboAdres:
          $ref: '#/components/schemas/kboAdres'
        grarAdressen:
          type: array
          items:
            $ref: '#/components/schemas/grarAdres'

    ondernemingsNummer:
      description: "Ondernemingsnummer zoals gekend bij KBO"
      type: string
      pattern: "[0-9]{10}"
    
    soortOnderneming:
      type: object 
      description: "Duidt aan of de onderneming een natuurlijk persoon of rechtspersoon betreft. Komt niet terug bij een vestiging."
      properties:
        code:
          type: object
          properties:
            waarde:
              type: integer
              maxLength: 1
              description: "1: Natuurlijke persoon, 2: Rechtspersoon"
              example: 1
            beschrijving:
              type: string
              maxLength: 255
              description: "1: Natuurlijke persoon, 2: Rechtspersoon"
              example: "Natuurlijke persoon"
          required: 
            - waarde
    kboAdres:
      type: object
      properties:
        datumBegin:
          type: string
          format: date
        datumEinde: 
          type: string
          format: date
        straat:
          type: object
          properties:
            code:
              type: string
              maxLength: 4
              description: "RR code van straat"
            naam:
              type: string
              maxLength: 120
        huisNummer:
          type: string
          maxLength: 15
          example: "75A"
        busNummer:
          type: string
          maxLength: 15
          example: "101"
        gemeente:
          type: object
          properties:
            nisCode:
              type: string
              pattern: "[0-9]{1,5}"
            postCode:
              type: string
              maxLength: 15
              example: "2800"
            naam:
              type: string
              maxLength: 120
              example: "Mechelen"
        staat:
          type: string
          maxLength: 120
          description: "Buitenlandse staat"
          example: "OH"
        land:
          type: object
          properties:
            nisCode:
              type: string
              pattern: "[0-9]{3}"
            isoCode:
              type: string
              pattern: "[a-zA-A0-9]{2,3}"
            naam:
              type: string
              maxLength: 120
              example: "België"
          required:
            - nisCode
        taal:
          type: object
          description: "Bevat code en omschrijving van de taal waarin het adres terugkomt."
          properties:
            code:
              type: object
              properties:
                waarde:
                  type: string
                  example: 0
                  maxLength: 2
                  description: "De taal van het adres in code (0, 1, 2, 3). Opm.: Er kunnen mogelijk andere codes terugkomen, maar deze krijgen dan geen Beschrijving. Het betreft hier voor ons onbekende codes die we vanuit KBO hebben ontvangen."
                beschrijving:
                  type: string
                  maxLength: 255
                  example: "onbekend"
                  description: "0: onbekend, 1: fr, 2: nl, 3: de"
              required:
               - waarde
          required:
            - code
        type:
          type: object
          properties:
            code:
              type: object
              properties:
                waarde:
                  type: string
                  minLength: 3
                  maxLength: 3
                  description: "Type adres: 001: Onderneming, 002: Vestiging, 003: Bijhuis"
                  example: "001"
                beschrijving: 
                  type: string
                  maxLength: 255
                  description: "Type adres: 001: Onderneming, 002: Vestiging, 003: Bijhuis"
                  example: "Onderneming"
              required:
                - waarde
          required:
            - code
      
    grarAdres:
      type: object
      properties:
        taalCode:
          type: string
          enum:
            - "nl"
            - "fr"
            - "de"
            - "en"
        grarId:
          type: number
        straat:
          type: object
          properties:
            grarId:
              type: number
            naam:
              type: string
              maxLength: 120
        huisNummer:
          type: string
          maxLength: 15
          example: "75A"
        busNummer:
          type: string
          maxLength: 15
          example: "101"
        postKanton:
          type: string
          pattern: "[1-9][0-9]{3}"
        homoniemToevoeging:
          type: string
          maxLength: 50
          description: "Toevoeging die toelaat het onderscheid te maken tussen twee straten die dezelfde naam hebben binnen dezelfde gemeente."
        adresPositie:
          type: object
          properties:
            coördinaat:
              type: string
              maxLength: 50
              example: "POINT (110892.88 210440.22)"
            positieGeometrieMethode:
              type: string
              enum:
                - aangeduidDoorBeheerder
                - afgeleidVanObject
                - geïnterpoleerd
            positieSpecificatie:
              type: string
              enum:
                - gemeente
                - straat
                - perceel
                - lot
                - standplaats
                - ligplaats
                - gebouw
                - gebouweenheid
                - ingang
                - wegsegment
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: "A URI reference that identifies the problem type. This specification encourages that, when de-referenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be about:blank."
        title:
          type: string
          description: "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation."
        status:
          type: string
          description: "The HTTP status code generated by the origin server for this occurrence of the problem."
        detail:
          type: string
          description: "A human-readable explanation specific to this occurrence of the problem."
        instance:
          type: string
          description: "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if de-referenced."
      description: "A representation of a generic error message."

CompanyCompositionControls

openapi: "3.0.3"
info:
  title: "Digitaal Vlaanderen - UBO register API"
  description: "API to request data from the UBO register at FodFin. Release Apr23"
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "UBO register"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/company"
paths: 
  /ubo/companyCompositions/controls:
    get:
      tags:
        - "controls"
      summary: "Finds all actives controls for a specified company"
      operationId: getCompanyControls
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: companyNumber
          in: header
          description: CBE/foreign identifier
          required: true
          schema:
            maxLength: 30
            minLength: 1
            type: string
        - name: controlType
          in: query
          description: Define a control type to filter the returned controls
          required: false
          schema:
            type: string
            enum:
              - NONE
              - PERCENT
              - OTHER
              - CEO
              - BOARD_MEMBER
              - REPRESENTATIVE
              - DAILY_MANAGER
              - FOUNDER
              - PHYSICAL_PERSON
              - CATEGORY
              - OTHER_NON_PROFIT
              - CATEGORY_TRUST
              - OTHER_TRUST
              - BENEFICIARIES
              - PROTECTOR
              - TRUSTEE
              - SETTLOR
        
      responses:
        200:
          description: "Response with payload"
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResumedControlDTO'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
  /ubo/controls/{controlId}:
    get:
      tags:
        - "controls"
      summary: "request the control based on the ControlId."
      operationId: getControlDetails
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: controlId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: "Response with payload"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedControlDTO'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'


components:
 parameters:
    CorrelationId:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/Correlation-Id'
 responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
 schemas:
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling"
      type: string
      minLength: 10
      maxLength: 36
    ResumedControlDTO:
      type: object
      properties:
        beneficiaryName:
          type: string
          description: Control's beneficiary
        beneficiarySitranNames:
          type: object
          additionalProperties:
            type: string
            description: Control's name translatable
          description: Control's name translatable
        beneficiaryIdentifier:
          type: string
          description: Company BCE/foreign identifier
        controlId:
          type: integer
          description: Technical id
          format: int64
        beneficiaryType:
          type: string
          description: Beneficiary's type
          enum:
            - COMPANY
            - PERSON
            - CATEGORY
        controlType:
          type: string
          description: Control's type
          enum:
            - NONE
            - PERCENT
            - OTHER
            - CEO
            - BOARD_MEMBER
            - REPRESENTATIVE
            - DAILY_MANAGER
            - FOUNDER
            - PHYSICAL_PERSON
            - CATEGORY
            - OTHER_NON_PROFIT
            - CATEGORY_TRUST
            - OTHER_TRUST
            - BENEFICIARIES
            - PROTECTOR
            - TRUSTEE
            - SETTLOR
        percentInVote:
          type: number
          description: Control vote percentage
        percent:
          type: number
          description: Control capital percentage
        groupName:
          type: string
          description: Group's name to which the control belongs
        groupId:
          type: number
          description: Group's identifier to which the control belongs
        derogated:
          type: boolean
          description: Define the control derogation status
      description: Resumed representation of the control business object
    DetailedControlDTO:
      type: object
      properties:
        controlId:
          type: integer
          description: Control id
          format: int64
        controlType:
          type: string
          description: Control's type
        beginDate:
          type: string
          description: Control's start date
        endDate:
          type: string
          description: Control's end date
          nullable: true
        percentInVote:
          type: number
          description: Control capital percentage
        percent:
          type: number
          description: Control vote percentage
        beneficiary:
          $ref: '#/components/schemas/BeneficiaryDTO'
        companyIdentifier:
          type: string
          description: Company BCE/foreign identifier
        group:
          $ref: '#/components/schemas/GroupDTO'
        comment:
          type: string
          description: Comment
        derogated:
          type: boolean
          description: Define the control derogation status
        documents:
          uniqueItems: true
          type: array
          description: Set of supporting documents
          items:
            $ref: '#/components/schemas/ControlDocumentResumedDTO'
    BeneficiaryDTO:
      type: object
      properties:
        identifier:
          type: string
          description: Beneficiary's identifier
        type:
          type: string
          description: Beneficiary's type
      description: Beneficiary
      discriminator:
        propertyName: type
        mapping:
          COMPANY: '#/components/schemas/CompanyDTO'
          PERSON: '#/components/schemas/PersonDTO'
          CATEGORY: '#/components/schemas/CategoryDTO'
      oneOf:
        - $ref: '#/components/schemas/PersonDTO'
        - $ref: '#/components/schemas/CompanyDTO'
        - $ref: '#/components/schemas/CategoryDTO'
    GroupDTO:
      type: object
      properties:
        id:
          type: string
          description: Group's id
        name:
          type: string
          description: Group's type
      description: Group to which the control belongs
    ControlDocumentResumedDTO:
      type: object
      properties:
        name:
          type: string
          description: Name of the supporting document
        uuid:
          type: string
          description: UUI of the supporting document, id is needed to retrieve document
        controlId:
          type: integer
          description: Name of the beneficiary
          format: int64
        type:
          type: string
          description: The type of document
        dueDate:
          type: string
          description: The dueDate of the document
          format: date
        documentId:
          type: integer
          description: 'The documentId '
          format: int64
        removed:
          type: boolean
          description: A boolean to show if removed or not
      description: Set of supporting documents
    PersonDTO:
      type: object
      properties:
        identifier:
          type: string
          description: Beneficiary's identifier
        type:
          type: string
          description: Beneficiary's type
        firstName:
          type: string
          description: Person's firstname
        lastName:
          type: string
          description: Person's lastname
        birthDate:
          type: string
          description: Person's birthdate
        nationalities:
          type: array
          description: Person's nationalities
          items:
            type: string
            description: Person's nationalities
    CompanyDTO:
      type: object
      properties:
        identifier:
          type: string
          description: Beneficiary's identifier
        type:
          type: string
          description: Beneficiary's type
        name:
          type: string
          description: Company's name
        sitranNames:
          type: object
          additionalProperties:
            type: string
            description: Control's name translatable
          description: Control's name translatable
        creationDate:
          type: string
          description: Company's creation date
          format: date
        companyType:
          type: string
          description: Company's type
          enum:
            - NON_PROFIT
            - ARTICLE2
            - FOREIGN_TRUST
            - FOREIGN
            - NONE
        nacebelCodes:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
              description: Nacebel codes
            description: Nacebel codes
          description: Nacebel codes
    CategoryDTO:
      type: object
      properties:
        identifier:
          type: string
          description: Beneficiary's identifier
        type:
          type: string
          description: Beneficiary's type
        name:
          type: string
          description: Category's name



    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: "A URI reference that identifies the problem type. This specification encourages that, when de-referenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be about:blank."
        title:
          type: string
          description: "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation."
        status:
          type: string
          description: "The HTTP status code generated by the origin server for this occurrence of the problem."
        detail:
          type: string
          description: "A human-readable explanation specific to this occurrence of the problem."
        instance:
          type: string
          description: "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if de-referenced."
      description: "A representation of a generic error message."

Organisaties

Verenigingen

openapi: "3.0.2"
info:
  title: "Verenigingen"
  description: "Een api voor het beheer van een (feitelijke) verenigingen voor verenigingsregister"
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "Verenigingen"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/organisaties"

paths:
  /verenigingen/verenigingen/{vCode}:
    get:
      tags:
        - Opvragen van verenigingen
      summary: Vraag het detail van een vereniging op.
      parameters:
        - name: vCode
          in: path
          description: De vCode van de vereniging
          required: true
          schema:
            type: string
        - name: expectedSequence
          in: query
          description: Sequentiewaarde verkregen bij creatie of aanpassing vereniging.
          schema:
            type: integer
            format: int64
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        200:
          description: Het detail van een vereniging
          headers:
            ETag:
              description: De versie van de aangepaste vereniging.
              schema:
                type: string
                description: De versie van de aangepaste vereniging.
                format: ''
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.DetailVerenigingResponse
        400:
          $ref: "#/components/responses/BadRequest"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

    patch:
      tags:
        - Decentraal beheer van verenigingen
      summary: Wijzig de basisgegevens van een vereniging.
      description: "Enkel velden die worden doorgestuurd in de request worden verwerkt. Null waarden worden niet verwerkt.\r\nWanneer er wijzigingen veroorzaakt zijn door de request, bevat de response een sequence header.\r\n            \r\nNa het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De vCode van de vereniging
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.WijzigBasisgegevens.FeitelijkeVereniging.RequestModels.WijzigBasisgegevensRequest
      responses:
        200:
          description: Er waren geen wijzigingen
        202:
          description: De basisgegevens van de vereniging werden gewijzigd
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de aangepaste vereniging.
              schema:
                type: string
                description: De versie van de aangepaste vereniging.
                format: ''
            Location:
              description: De locatie van de aangepaste vereniging.
              schema:
                type: string
                description: De locatie van de aangepaste vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/contactgegevens:
    post:
      tags:
        - Decentraal beheer van verenigingen
      summary: Voeg een contactgegeven toe.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De VCode van de vereniging
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Het toe te voegen contactgegeven
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.FeitelijkeVereniging.VoegContactGegevenToe.RequestsModels.VoegContactgegevenToeRequest
      responses:
        202:
          description: Het contactgegeven werd goedgekeurd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/contactgegevens/{contactgegevenId}:
    delete:
      tags:
        - Decentraal beheer van verenigingen
      summary: Verwijder een contactgegeven.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De unieke identificatie code van deze vereniging
          required: true
          schema:
            type: string
        - name: contactgegevenId
          in: path
          description: >-
            De unieke identificatie code van dit contactgegeven binnen de
            vereniging
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: Het contactgegeven werd verwijderd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

    patch:
      tags:
        - Decentraal beheer van verenigingen
      summary: Wijzig een contactgegeven.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De unieke identificatie code van deze vereniging
          required: true
          schema:
            type: string
        - name: contactgegevenId
          in: path
          description: >-
            De unieke identificatie code van dit contactgegeven binnen de
            vereniging
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Het te wijzigen contactgegeven
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.FeitelijkeVereniging.WijzigContactgegeven.RequestModels.WijzigContactgegevenRequest
      responses:
        '200':
          description: Er waren geen wijzigingen.
        '202':
          description: De wijziging werd aanvaard.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/historiek:
    get:
      tags:
        - Opvragen van verenigingen
      summary: Vraag de historiek van een vereniging op.
      description: "De historiek van een vereniging geeft zicht op de wijzigingen op de verenigingsdata zoals terug te vinden in het register.\r\n            \r\nDe gebeurtenissen met naam “WerdGewijzigd” betekenen voor de basisgegevens het volgende:\r\n- data werd toegevoegd (een waarde werd toegevoegd na registratie van de vereniging)\r\n- data werd gewijzigd (de bestaande waarde werd gewijzigd)\r\n- data werd verwijderd (de waarde werd verwijderd)\r\n            \r\nContactgegevens, locaties en vertegenwoordigers maken geen onderdeel uit van de basisgegevens.\r\nWijzigingen op deze data genereren gebeurtenissen met de namen “WerdToegevoegd”, “WerdGewijzigd” en “WerdVerwijderd”."
      parameters:
        - name: vCode
          in: path
          description: De vCode van de vereniging
          required: true
          schema:
            type: string
        - name: expectedSequence
          in: query
          description: Sequentiewaarde verkregen bij creatie of aanpassing vereniging.
          schema:
            type: integer
            format: int64
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: De historiek van een vereniging
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Historiek.ResponseModels.HistoriekResponse
        400:
          $ref: "#/components/responses/BadRequest"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"
  /verenigingen/verenigingen/{vCode}/kbo:
    patch:
      tags:
        - Wijzigen van gegevens uit KBO
      summary: Wijzig de basisgegevens.
      description: "Enkel velden die worden doorgestuurd in de request worden verwerkt. Null waarden worden niet verwerkt.\r\nWanneer er wijzigingen veroorzaakt zijn door de request, bevat de response een sequence header.\r\n            \r\nNa het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De vCode van de vereniging
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.WijzigBasisgegevens.MetRechtspersoonlijkheid.RequestModels.WijzigBasisgegevensRequest
      responses:
        '200':
          description: Er waren geen wijzigingen
        '202':
          description: De basisgegevens van de vereniging werden gewijzigd
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de aangepaste vereniging.
              schema:
                type: string
                description: De versie van de aangepaste vereniging.
                format: ''
            Location:
              description: De locatie van de aangepaste vereniging.
              schema:
                type: string
                description: De locatie van de aangepaste vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequest"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"
  /verenigingen/verenigingen/{vCode}/kbo/contactgegevens/{contactgegevenId}:
    patch:
      tags:
        - Wijzigen van gegevens uit KBO
      summary: Wijzig een contactgegeven uit KBO.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De unieke identificatie code van deze vereniging
          required: true
          schema:
            type: string
        - name: contactgegevenId
          in: path
          description: >-
            De unieke identificatie code van dit contactgegeven binnen de
            vereniging
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Het te wijzigen contactgegeven
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.VerenigingMetRechtspersoonlijkheid.WijzigContactgegeven.RequestModels.WijzigContactgegevenRequest
      responses:
        '200':
          description: Er waren geen wijzigingen.
        '202':
          description: De wijziging werd aanvaard.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequest"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"
  /verenigingen/verenigingen/{vCode}/kbo/locaties/{locatieId}:
    patch:
      tags:
        - Wijzigen van gegevens uit KBO
      summary: Wijzig de maatschappelijke zetel volgens KBO.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De VCode van de vereniging
          required: true
          schema:
            type: string
        - name: locatieId
          in: path
          description: >-
            De unieke identificatie code van de maatschappelijke zetel volgens
            KBO binnen de vereniging.
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De te wijzigen gegevens
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Locaties.VerenigingMetRechtspersoonlijkheid.WijzigMaatschappelijkeZetel.RequestModels.WijzigMaatschappelijkeZetelRequest
            example:
              locatie:
                isPrimair: true
                naam: Naam locatie
      responses:
        '200':
          description: Er waren geen wijzigingen.
        '202':
          description: De locatie werd gewijzigd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequest"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/locaties:
    post:
      tags:
        - Decentraal beheer van verenigingen
      summary: Voeg een locatie toe.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De VCode van de vereniging
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De toe te voegen locatie
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Locaties.FeitelijkeVereniging.VoegLocatieToe.RequestModels.VoegLocatieToeRequest
      responses:
        '202':
          description: De locatie werd goedgekeurd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/locaties/{locatieId}:
    delete:
      tags:
        - Decentraal beheer van verenigingen
      summary: Verwijder een locatie.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De unieke identificatie code van deze vereniging
          required: true
          schema:
            type: string
        - name: locatieId
          in: path
          description: >-
            De unieke identificatie code van deze locatie die verwijderd moet
            worden
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: De vertegenwoordiger werd verwijderd van deze vereniging.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

    patch:
      tags:
        - Decentraal beheer van verenigingen
      summary: Wijzig een locatie.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De VCode van de vereniging
          required: true
          schema:
            type: string
        - name: locatieId
          in: path
          description: De unieke identificatie code van deze locatie binnen de vereniging.
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De te wijzigen locatie
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Locaties.FeitelijkeVereniging.WijzigLocatie.RequestModels.WijzigLocatieRequest
      responses:
        '200':
          description: Er waren geen wijzigingen.
        '202':
          description: De locatie werd goedgekeurd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"
  /verenigingen/verenigingen/{vCode}/stop:
    post:
      tags:
        - Decentraal beheer van verenigingen
      summary: Stoppen van een vereniging.
      description: "Wanneer er wijzigingen veroorzaakt zijn door de request, bevat de response een sequence header.\r\n            \r\nNa het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De vCode van de vereniging
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Stop.RequestModels.StopVerenigingRequest
      responses:
        '200':
          description: Er waren geen wijzigingen
        '202':
          description: De vereniging werd gestopt
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de aangepaste vereniging.
              schema:
                type: string
                description: De versie van de aangepaste vereniging.
                format: ''
            Location:
              description: De locatie van de aangepaste vereniging.
              schema:
                type: string
                description: De locatie van de aangepaste vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/vertegenwoordigers:
    post:
      tags:
        - Decentraal beheer van verenigingen
      summary: Voeg een vertegenwoordiger toe.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De vCode van de vereniging
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De gegevens van de toe te voegen vertegenwoordiger
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Vertegenwoordigers.FeitelijkeVereniging.VoegVertegenwoordigerToe.RequestModels.VoegVertegenwoordigerToeRequest
      responses:
        '202':
          description: De vertegenwoordiger werd toegevoegd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/{vCode}/vertegenwoordigers/{vertegenwoordigerId}:
    delete:
      tags:
        - Decentraal beheer van verenigingen
      summary: Verwijder een vertegenwoordiger.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De unieke identificatie code van deze vereniging
          required: true
          schema:
            type: string
        - name: vertegenwoordigerId
          in: path
          description: >-
            De unieke identificatie code van deze vertegenwoordiger die
            verwijderd moet worden
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: De vertegenwoordiger werd verwijderd van deze vereniging.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

    patch:
      tags:
        - Decentraal beheer van verenigingen
      summary: Wijzig een vertegenwoordiger.
      description: "Na het uitvoeren van deze actie wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de aanpassing\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: vCode
          in: path
          description: De unieke identificatie code van deze vereniging
          required: true
          schema:
            type: string
        - name: vertegenwoordigerId
          in: path
          description: >-
            De unieke identificatie code van deze vertegenwoordiger binnen de
            vereniging
          required: true
          schema:
            type: integer
            format: int32
        - name: If-Match
          in: header
          description: >-
            If-Match header met ETag van de laatst gekende versie van de
            vereniging.
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De gegevens van de vertegenwoordiger die gewijzigd moeten worden
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Vertegenwoordigers.FeitelijkeVereniging.WijzigVertegenwoordiger.RequestModels.WijzigVertegenwoordigerRequest
      responses:
        '200':
          description: Er waren geen wijzigingen.
        '202':
          description: De vertegenwoordiger werd gewijzigd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/feitelijkeverenigingen:
    post:
      tags:
        - Registratie
      summary: Registreer een feitelijke vereniging.
      description: "Bij het registreren van de vereniging wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de zonet geregistreerde vereniging\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: VR-BevestigingsToken
          in: header
          description: "Dit token wordt gebruikt als bevestiging dat de vereniging uniek is,\r\n            ondanks de voorgestelde duplicaten."
          schema:
            type: string
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De gegevens van de te registreren vereniging
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.FeitelijkeVereniging.RequetsModels.RegistreerFeitelijkeVerenigingRequest
      responses:
        '202':
          description: De feitelijke vereniging werd geregistreerd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
            Location:
              description: De locatie van de geregistreerde vereniging.
              schema:
                type: string
                description: De locatie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        409:
          description: >-
            Er zijn één of meerdere mogelijke duplicaten van deze vereniging
            gevonden.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.PotentialDuplicatesResponse
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"
  /verenigingen/verenigingen/kbo:
    post:
      tags:
        - Registratie
      summary: Registreer een vereniging met rechtspersoonlijkheid vanuit de KBO.
      description: "Bij het registreren van de vereniging wordt een sequentie teruggegeven via de `VR-Sequence` header.\r\nDeze waarde kan gebruikt worden in andere endpoints om op te volgen of de zonet geregistreerde vereniging\r\nal is doorgestroomd naar deze endpoints."
      parameters:
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: De gegevens van de te registreren vereniging
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.MetRechtspersoonlijkheid.RequestModels.RegistreerVerenigingUitKboRequest
      responses:
        '200':
          description: De vereniging was reeds geregistreerd in het register.
          headers:
            Location:
              description: De locatie van de geregistreerde vereniging.
              schema:
                type: string
                description: De locatie van de geregistreerde vereniging.
                format: ''
        '202':
          description: De vereniging met rechtspersoonlijkheid werd geregistreerd.
          headers:
            VR-Sequence:
              description: Het sequence nummer van deze request.
              schema:
                type: string
                description: Het sequence nummer van deze request.
                format: ''
            ETag:
              description: De versie van de geregistreerde vereniging.
              schema:
                type: string
                description: De versie van de geregistreerde vereniging.
                format: ''
            Location:
              description: De locatie van de geregistreerde vereniging.
              schema:
                type: string
                description: De locatie van de geregistreerde vereniging.
                format: ''
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"

  /verenigingen/verenigingen/zoeken:
    get:
      tags:
        - Opvragen van verenigingen
      summary: Zoek verenigingen op.
      description: "Dit endpoint laat toe verenigingen op te zoeken.\r\nVoor de zoekterm `q` kan je gebruik maken van volledige termen, of gebruik maken van wildcards.\r\n- `q=Liedekerke` zoekt in alle velden naar de volledige term,\r\n- `q=Liedeke*` zoekt in alle velden naar een term die begint met 'Liedeke',\r\n- `q=*kerke` zoekt in alle velden naar een term die eindigt op 'kerke',\r\n- `q=*kerke*` zoekt in alle velden naar een term die 'kerke' bevat.\r\nOm te zoeken binnen een bepaald veld, gebruik je de naam van het veld.\r\n- `q=gemeente:Liedekerke`\r\n- `q=korteNaam:DV*`\r\nOm te zoeken op een genest veld, beschrijf je het pad naar het veld.\r\n- `q=locaties.postcode:1000`\r\nStandaard gebruiken we een paginatie limiet van 50 verenigingen.\r\nOm een andere limiet te gebruiken, geef je de parameter `limit` mee.\r\nDe maximum limiet die kan gebruikt worden is 1000.\r\n- `q=...&limit=100`\r\nOm de volgende pagina's op te vragen, geef je de parameter `offset` mee.\r\n- `q=...&offset=50`\r\n- `q=...&offset=30&limit=30`\r\nEr kan enkel gepagineerd worden binnen de eerste 1000 resultaten.\r\nDit betekent dat de som van limit en offset nooit meer kan bedragen dan 1000."
      parameters:
        - name: q
          in: query
          description: De querystring
          schema:
            type: string
        - name: offset
          in: query
          description: Het aantal items dat overgeslagen zal worden
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          description: Het aantal items dat (maximaal) zal worden opgehaald
          schema:
            type: integer
            format: int32
        - name: X-Correlation-Id
          in: header
          description: Deze id identificeert de request.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Indien de zoekopdracht succesvol was.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.SearchVerenigingenResponse
        400:
          $ref: "#/components/responses/BadRequestValidation"
        401:
          $ref: "#/components/responses/InvalidAuthorization"
        403:
          $ref: "#/components/responses/Forbidden"
        404:
          $ref: "#/components/responses/NotFound"
        412:
          $ref: "#/components/responses/PreConditionFailed"
        500:
          $ref: "#/components/responses/UnexpectedServerError"
        502:
          $ref: "#/components/responses/BadGateway"
        503:
          $ref: "#/components/responses/ServiceUnavailable"
        504:
          $ref: "#/components/responses/GatewayTimeout"
components:
  responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails

    BadRequestValidation:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ValidationProblemDetails
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 412
    PreConditionFailed:
      description: "Precondition Failed"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails
  schemas:
    AssociationRegistry.Admin.Api.Verenigingen.Common.Adres:
      type: object
      properties:
        straatnaam:
          type: string
          description: De straat van het adres
        huisnummer:
          type: string
          description: Het huisnummer van het adres
        busnummer:
          type: string
          description: Het busnummer van het adres
        postcode:
          type: string
          description: De postcode van het adres
        gemeente:
          type: string
          description: De gemeente van het adres
        land:
          type: string
          description: Het land van het adres
      additionalProperties: false
      description: Een adres van een locatie
    AssociationRegistry.Admin.Api.Verenigingen.Common.AdresId:
      type: object
      properties:
        broncode:
          type: string
          description: De code van de bron van het adres
        bronwaarde:
          type: string
          description: De unieke identificator volgens de bron
      additionalProperties: false
      description: De unieke identificator van het adres in een andere bron
    AssociationRegistry.Admin.Api.Verenigingen.Common.DoelgroepRequest:
      type: object
      properties:
        minimumleeftijd:
          maximum: 150
          minimum: 0
          type: integer
          description: De minimum leeftijd voor de doelgroep
          format: int32
          default: 0
        maximumleeftijd:
          maximum: 150
          minimum: 0
          type: integer
          description: De maximum leeftijd voor de doelgroep
          format: int32
          default: 150
      additionalProperties: false
      description: >-
        De doelgroep waar de activiteiten van deze vereniging zich op
        concentreert
    AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenContactgegeven:
      type: object
      properties:
        contactgegeventype:
          type: string
          description: "Het type contactgegeven\r\n\r\nMogelijke waarden:\r\n- E-mail\r\n- SocialMedia\r\n- Telefoon\r\n- Website"
          example: E-mail
        waarde:
          type: string
          description: De waarde van het contactgegeven
        beschrijving:
          type: string
          description: >-
            Vrij veld die het het contactgegeven beschrijft (bijv: algemeen,
            administratie, ...)
        isPrimair:
          type: boolean
          description: Duidt het contactgegeven aan als primair contactgegeven
      additionalProperties: false
      description: Het toe te voegen contactgegeven
    AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenLocatie:
      type: object
      properties:
        locatietype:
          type: string
          description: "Het soort locatie dat beschreven wordt<br /><br />\r\nMogelijke waarden:<br />\r\n- Activiteiten<br />\r\n- Correspondentie - Slechtséén maal mogelijk<br />"
        isPrimair:
          type: boolean
          description: Duidt aan dat dit de primaire locatie is
        naam:
          type: string
          description: Een beschrijvende naam voor de locatie
        adresId:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.AdresId
          description: De unieke identificator van het adres in een andere bron
        adres:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.Adres
          description: Het adres van de locatie
      additionalProperties: false
      description: Een locatie van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenVertegenwoordiger:
      type: object
      properties:
        insz:
          type: string
          description: >-
            Dit is de unieke identificatie van een vertegenwoordiger, dit kan
            een rijksregisternummer of bisnummer zijn
        voornaam:
          type: string
          description: De voornaam van de vertegenwoordiger
        achternaam:
          type: string
          description: De achternaam van de vertegenwoordiger
        rol:
          type: string
          description: Dit is de rol van de vertegenwoordiger binnen de vereniging
        roepnaam:
          type: string
          description: Dit is de roepnaam van de vertegenwoordiger
        isPrimair:
          type: boolean
          description: >-
            Dit duidt aan dat dit de unieke primaire contactpersoon is voor alle
            communicatie met overheidsinstanties
        e-mail:
          type: string
          description: Het e-mailadres van de vertegenwoordiger
        telefoon:
          type: string
          description: Het telefoonnummer van de vertegenwoordiger
        mobiel:
          type: string
          description: Het mobiel nummer van de vertegenwoordiger
        socialMedia:
          type: string
          description: Het socialmedia account van de vertegenwoordiger
      additionalProperties: false
      description: Een vertegenwoordiger van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.FeitelijkeVereniging.VoegContactGegevenToe.RequestsModels.VoegContactgegevenToeRequest:
      type: object
      properties:
        contactgegeven:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenContactgegeven
          description: Het toe te voegen contactgegeven
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.FeitelijkeVereniging.WijzigContactgegeven.RequestModels.TeWijzigenContactgegeven:
      type: object
      properties:
        waarde:
          type: string
          description: De waarde van het contactgegeven
        beschrijving:
          type: string
          description: >-
            Vrij veld die het het contactgegeven beschrijft (bijv: algemeen,
            administratie, ...)
        isPrimair:
          type: boolean
          description: Duidt het contactgegeven aan als primair contactgegeven
      additionalProperties: false
      description: Het te wijzigen contactgegeven
    AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.FeitelijkeVereniging.WijzigContactgegeven.RequestModels.WijzigContactgegevenRequest:
      type: object
      properties:
        contactgegeven:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.FeitelijkeVereniging.WijzigContactgegeven.RequestModels.TeWijzigenContactgegeven
          description: Het te wijzigen contactgegeven
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.VerenigingMetRechtspersoonlijkheid.WijzigContactgegeven.RequestModels.TeWijzigenContactgegeven:
      type: object
      properties:
        beschrijving:
          type: string
          description: >-
            Vrij veld die het het contactgegeven beschrijft (bijv: algemeen,
            administratie, ...)
        isPrimair:
          type: boolean
          description: Duidt het contactgegeven aan als primair contactgegeven
      additionalProperties: false
      description: Het te wijzigen contactgegeven
    AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.VerenigingMetRechtspersoonlijkheid.WijzigContactgegeven.RequestModels.WijzigContactgegevenRequest:
      type: object
      properties:
        contactgegeven:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Contactgegevens.VerenigingMetRechtspersoonlijkheid.WijzigContactgegeven.RequestModels.TeWijzigenContactgegeven
          description: Het te wijzigen contactgegeven
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Adres:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        straatnaam:
          type: string
          description: De straat van de locatie
        huisnummer:
          type: string
          description: Het huisnummer van de locatie
        busnummer:
          type: string
          description: Het busnummer van de locatie
        postcode:
          type: string
          description: De postcode van de locatie
        gemeente:
          type: string
          description: De gemeente van de locatie
        land:
          type: string
          description: Het land van de locatie
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.AdresId:
      type: object
      properties:
        broncode:
          type: string
          description: De identificator voor dit adres bij de Adresbron
        bronwaarde:
          type: string
          description: De bron waar het AdresId naar verwijst
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.AdresVerwijzing:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Contactgegeven:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        contactgegevenId:
          type: integer
          description: >-
            De unieke identificatie code van dit contactgegeven binnen de
            vereniging
          format: int32
        contactgegeventype:
          type: string
          description: Het type contactgegeven
        waarde:
          type: string
          description: De waarde van het contactgegeven
        beschrijving:
          type: string
          description: >-
            Vrij veld die het het contactgegeven beschrijft (bijv: algemeen,
            administratie, ...)
        isPrimair:
          type: boolean
          description: Duidt het contactgegeven aan als primair contactgegeven
        bron:
          type: string
          description: "De bron die dit contactgegeven beheert\r\n           <br />\r\n               Mogelijke waarden:<br />\r\n               - Initiator<br />\r\n               - KBO"
      additionalProperties: false
      description: Een contactgegeven van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.DetailVerenigingResponse:
      type: object
      properties:
        '@context':
          type: string
          description: De JSON-LD open data context
        vereniging:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.VerenigingDetail
        metadata:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Metadata
          description: >-
            De metadata van de vereniging, deze bevat bv de datum van laatste
            aanpassing
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.DoelgroepResponse:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        minimumleeftijd:
          type: integer
          description: De minimum leeftijd voor de doelgroep
          format: int32
        maximumleeftijd:
          type: integer
          description: De maximum leeftijd voor de doelgroep
          format: int32
      additionalProperties: false
      description: >-
        De doelgroep waar de activiteiten van deze vereniging zich op
        concentreert
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.GerelateerdeVereniging:
      type: object
      properties:
        kboNummer:
          type: string
          description: Het KBO nummer van de gerelateerde vereniging
        vCode:
          type: string
          description: >-
            De unieke identificator van de gerelateerde vereniging in het
            verenigingsregister
        naam:
          type: string
          description: De naam van de gerelateerde vereniging
        detail:
          type: string
          description: De link naar het beheer detail van de gerelateerde vereniging
        magdaDetail:
          type: string
          description: Magda naar het beheer detail van de gerelateerde vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.GestructureerdeIdentificator:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        nummer:
          type: string
          description: De externe identificator van de vereniging in de bron
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.HoofdactiviteitVerenigingsloket:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        code:
          type: string
          description: De code van de hoofdactivititeit
        naam:
          type: string
          description: De beschrijving van de hoofdactivititeit
      additionalProperties: false
      description: De hoofdactivititeit van een vereniging volgens het verenigingsloket
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Locatie:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        locatieId:
          type: integer
          description: De unieke identificatie code van deze locatie binnen de vereniging
          format: int32
        locatietype:
          type: string
          description: "Het soort locatie dat beschreven wordt<br /><br />\r\nMogelijke waarden:<br />\r\n- Activiteiten<br />\r\n- Correspondentie - Slechts één maal mogelijk<br />\r\n- Maatschappelijke zetel volgens KBO - Enkel mogelijk voor verenigingen met rechtspersoonlijkheid<br />"
        isPrimair:
          type: boolean
          description: Duidt aan dat dit de primaire locatie is
        naam:
          type: string
          description: Een beschrijvende naam voor de locatie
        adres:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Adres
          description: De adrescomponenten van de locatie
        adresvoorstelling:
          type: string
          description: Een standaard geformatteerde weergave van het adres van de locatie
        adresId:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.AdresId
          description: De identifier van het adres op een externe bron
        verwijstNaar:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.AdresVerwijzing
          description: De verwijzing naar een adres in het adresregister
        bron:
          type: string
          description: "De bron die deze locatie beheert.\r\n            <br />\r\n                Mogelijke waarden:<br />\r\n                - Initiator<br />\r\n                - KBO"
      additionalProperties: false
      description: Een locatie van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Metadata:
      type: object
      properties:
        datumLaatsteAanpassing:
          type: string
          description: >-
            De datum waarop de laatste aanpassing uitgevoerd is op de gegevens
            van de vereniging
      additionalProperties: false
      description: >-
        De metadata van de vereniging, deze bevat bv de datum van laatste
        aanpassing
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Relatie:
      type: object
      properties:
        relatietype:
          type: string
          description: Het type relatie
        andereVereniging:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.GerelateerdeVereniging
          description: de gerelateerde vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Sleutel:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        bron:
          type: string
          description: De bron van de sleutel
        waarde:
          type: string
          description: De externe identificator van de vereniging in de bron
        codeerSysteem:
          type: string
          description: het codeersysteem van de sleutel
        gestructureerdeIdentificator:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.GestructureerdeIdentificator
          description: De gestructureerde identificator
      additionalProperties: false
      description: >-
        Een uniek identificerende sleutel van deze vereniging in een externe
        bron
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.VerenigingDetail:
      type: object
      properties:
        '@type':
          type: string
          description: Het json-ld type
        vCode:
          type: string
          description: De unieke identificatie code van deze vereniging
        verenigingstype:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.VerenigingsType
          description: Het type van deze vereniging
        naam:
          type: string
          description: Naam van de vereniging
        roepnaam:
          type: string
          description: >-
            Roepnaam van de vereniging. Dit veld is enkel aanwezig bij
            verenigingen met rechtspersoonlijkheid
          default: null
        korteNaam:
          type: string
          description: Korte naam van de vereniging
        korteBeschrijving:
          type: string
          description: Korte beschrijving van de vereniging
        startdatum:
          type: string
          description: Datum waarop de vereniging gestart is
        einddatum:
          type: string
          description: Datum waarop de vereniging gestopt is
        doelgroep:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.DoelgroepResponse
          description: >-
            De doelgroep waar de activiteiten van deze vereniging zich op
            concentreert
        status:
          type: string
          description: "Status van de vereniging<br /><br />\r\n                Mogelijke waarden:<br />\r\n                - Actief<br />\r\n                - Gestopt<br />"
        isUitgeschrevenUitPubliekeDatastroom:
          type: boolean
          description: Is deze vereniging uitgeschreven uit de publieke datastroom
        hoofdactiviteitenVerenigingsloket:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.HoofdactiviteitVerenigingsloket
          description: >-
            De hoofdactivititeiten van deze vereniging volgens het
            verenigingsloket
        contactgegevens:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Contactgegeven
          description: De contactgegevens van deze vereniging
        locaties:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Locatie
          description: Alle locaties waar deze vereniging actief is
        vertegenwoordigers:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Vertegenwoordiger
          description: Alle vertegenwoordigers van deze vereniging
        sleutels:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Sleutel
          description: De sleutels van deze vereniging
        relaties:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Relatie
          description: De relaties van deze vereniging
        bron:
          type: string
          description: "De bron die deze vereniging beheert.\r\n                 <br />\r\n                Mogelijke waarden:<br />\r\n                - Initiator<br />\r\n                - KBO"
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.VerenigingsType:
      type: object
      properties:
        code:
          type: string
          description: De code van het type vereniging
        naam:
          type: string
          description: De beschrijving van het type vereniging
      additionalProperties: false
      description: Het type van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.Vertegenwoordiger:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        vertegenwoordigerId:
          type: integer
          description: >-
            De unieke identificatie code van deze vertegenwoordiger binnen de
            vereniging
          format: int32
        insz:
          type: string
          description: Het insz van deze vertegenwoordiger
        voornaam:
          type: string
          description: >-
            Dit is de voornaam van de vertegenwoordiger volgens het
            rijksregister
        achternaam:
          type: string
          description: >-
            Dit is de achternaam van de vertegenwoordiger volgens het
            rijksregister
        roepnaam:
          type: string
          description: Dit is de roepnaam van de vertegenwoordiger
        rol:
          type: string
          description: Dit is de rol van de vertegenwoordiger binnen de vereniging
        isPrimair:
          type: boolean
          description: >-
            Dit duidt aan dat dit de unieke primaire contactpersoon is voor alle
            communicatie met overheidsinstanties
        e-mail:
          type: string
          description: Het e-mailadres van de vertegenwoordiger
        telefoon:
          type: string
          description: Het telefoonnummer van de vertegenwoordiger
        mobiel:
          type: string
          description: Het mobiel nummer van de vertegenwoordiger
        socialMedia:
          type: string
          description: Het socialmedia account van de vertegenwoordiger
        vertegenwoordigerContactgegevens:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.VertegenwoordigerContactgegevens
          description: de contactgegevens van de vertegenwoordiger
        bron:
          type: string
          description: "De bron die deze vertegenwoordiger beheert.\r\n           <br />\r\n               Mogelijke waarden:<br />\r\n               - Initiator<br />\r\n               - KBO"
      additionalProperties: false
      description: Een vertegenwoordiger van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Detail.ResponseModels.VertegenwoordigerContactgegevens:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        isPrimair:
          type: boolean
          description: >-
            Dit duidt aan dat dit de unieke primaire contactpersoon is voor alle
            communicatie met overheidsinstanties
        e-mail:
          type: string
          description: Het e-mailadres van de vertegenwoordiger
        telefoon:
          type: string
          description: Het telefoonnummer van de vertegenwoordiger
        mobiel:
          type: string
          description: Het mobiel nummer van de vertegenwoordiger
        socialMedia:
          type: string
          description: Het socialmedia account van de vertegenwoordiger
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Historiek.ResponseModels.HistoriekGebeurtenisResponse:
      type: object
      properties:
        beschrijving:
          type: string
          description: De beschrijving van de gebeurtenis
        gebeurtenis:
          type: string
          description: Het type van de gebeurtenis
        data:
          description: De relevante data die hoort bij de gebeurtenis
        initiator:
          type: string
          description: Instantie die de vereniging heeft geregistreerd of gewijzigd
        tijdstip:
          type: string
          description: Het tijdstip waarop de gebeurtenis plaatsvond
      additionalProperties: false
      description: Een gebeurtenis van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Historiek.ResponseModels.HistoriekResponse:
      type: object
      properties:
        '@context':
          type: string
          description: De JSON-LD open data context
        vCode:
          type: string
          description: De unieke identificatie code van deze vereniging
        gebeurtenissen:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Historiek.ResponseModels.HistoriekGebeurtenisResponse
          description: Alle gebeurtenissen van deze vereniging
      additionalProperties: false
      description: Alle gebeurtenissen van deze vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Locaties.FeitelijkeVereniging.VoegLocatieToe.RequestModels.VoegLocatieToeRequest:
      type: object
      properties:
        locatie:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenLocatie
          description: Een locatie van een vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Locaties.FeitelijkeVereniging.WijzigLocatie.RequestModels.TeWijzigenLocatie:
      type: object
      properties:
        locatietype:
          type: string
          description: "Het soort locatie dat beschreven wordt<br /><br />\r\nMogelijke waarden:<br />\r\n- Activiteiten<br />\r\n- Correspondentie - Slechts één maal mogelijk<br />"
        isPrimair:
          type: boolean
          description: Duidt aan dat dit de primaire locatie is
        naam:
          type: string
          description: Een beschrijvende naam voor de locatie
        adresId:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.AdresId
          description: De unieke identificator van het adres in een andere bron
        adres:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.Adres
          description: Het adres van de locatie
      additionalProperties: false
      description: Een locatie van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Locaties.FeitelijkeVereniging.WijzigLocatie.RequestModels.WijzigLocatieRequest:
      type: object
      properties:
        locatie:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Locaties.FeitelijkeVereniging.WijzigLocatie.RequestModels.TeWijzigenLocatie
          description: Een locatie van een vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Locaties.VerenigingMetRechtspersoonlijkheid.WijzigMaatschappelijkeZetel.RequestModels.TeWijzigenMaatschappelijkeZetel:
      type: object
      properties:
        isPrimair:
          type: boolean
          description: Duidt aan dat dit de primaire locatie is
        naam:
          type: string
          description: Een beschrijvende naam voor de locatie
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Locaties.VerenigingMetRechtspersoonlijkheid.WijzigMaatschappelijkeZetel.RequestModels.WijzigMaatschappelijkeZetelRequest:
      type: object
      properties:
        locatie:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Locaties.VerenigingMetRechtspersoonlijkheid.WijzigMaatschappelijkeZetel.RequestModels.TeWijzigenMaatschappelijkeZetel
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.DuplicaatVerenigingContract:
      type: object
      properties:
        vCode:
          type: string
          description: De unieke identificatie code van deze vereniging
        naam:
          type: string
          description: Naam van de vereniging
        korteNaam:
          type: string
          description: Korte naam van de vereniging
        verenigingstype:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.VerenigingsType
          description: Type van de vereniging
        hoofdactiviteitenVerenigingsloket:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.HoofdactiviteitVerenigingsloket
          description: >-
            De hoofdactivititeiten van deze vereniging volgens het
            verenigingsloket
        locaties:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.Locatie
          description: Alle locaties waar deze vereniging actief is
        links:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.VerenigingLinks
          description: Weblinks i.v.m. deze vereniging
      additionalProperties: false
      description: Een mogelijke duplicaat van de te registreren vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.FeitelijkeVereniging.RequetsModels.RegistreerFeitelijkeVerenigingRequest:
      required:
        - naam
      type: object
      properties:
        naam:
          type: string
          description: Naam van de vereniging
        korteNaam:
          type: string
          description: Korte naam van de vereniging
        korteBeschrijving:
          type: string
          description: Korte beschrijving van de vereniging
        startdatum:
          type: string
          description: >-
            Datum waarop de vereniging gestart is. Deze datum mag niet later
            zijn dan vandaag
          format: date
        doelgroep:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.DoelgroepRequest
          description: >-
            De doelgroep waar de activiteiten van deze vereniging zich op
            concentreert
        isUitgeschrevenUitPubliekeDatastroom:
          type: boolean
          description: Is deze vereniging uitgeschreven uit de publieke datastroom
        contactgegevens:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenContactgegeven
          description: De contactgegevens van deze vereniging
        locaties:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenLocatie
          description: Alle locaties waar deze vereniging actief is
        vertegenwoordigers:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenVertegenwoordiger
          description: De vertegenwoordigers van deze vereniging
        hoofdactiviteitenVerenigingsloket:
          type: array
          items:
            type: string
          description: De codes van de hoofdactivititeiten volgens het verenigingsloket
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.HoofdactiviteitVerenigingsloket:
      type: object
      properties:
        code:
          type: string
          description: De code van de hoofdactivititeit
        naam:
          type: string
          description: De beschrijving van de hoofdactivititeit
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.Locatie:
      type: object
      properties:
        locatietype:
          type: string
          description: Het soort locatie dat beschreven wordt
        isPrimair:
          type: boolean
          description: Duidt aan dat dit de primaire locatie is
        adresvoorstelling:
          type: string
          description: Het samengestelde adres van de locatie
        naam:
          type: string
          description: Een beschrijvende naam voor de locatie
        postcode:
          type: string
          description: Het busnummer van de locatie
        gemeente:
          type: string
          description: De gemeente van de locatie
      additionalProperties: false
      description: Een locatie van een vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.MetRechtspersoonlijkheid.RequestModels.RegistreerVerenigingUitKboRequest:
      required:
        - kboNummer
      type: object
      properties:
        kboNummer:
          type: string
          description: Kbo nummer van de vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.PotentialDuplicatesResponse:
      type: object
      properties:
        bevestigingsToken:
          type: string
          description: "Dit token wordt gebruikt als bevestiging dat de vereniging uniek is en geregistreerd mag worden,\r\n            ondanks de voorgestelde duplicaten."
          readOnly: true
        mogelijkeDuplicateVerenigingen:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Registreer.DuplicaatVerenigingContract
          description: "Een lijst van verenigingen die mogelijks een duplicaat zijn\r\n            van de vereniging uit de registreer aanvraag"
          readOnly: true
        instance:
          type: string
          description: URI naar de specifieke instantie van dit probleem.
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.VerenigingLinks:
      type: object
      properties:
        detail:
          type: string
          description: De link naar het beheer detail van de vereniging
          format: uri
        magdaDetail:
          type: string
          description: Magda link naar het beheer detail van de vereniging
          format: uri
      additionalProperties: false
      description: Weblinks i.v.m. deze vereniging
    AssociationRegistry.Admin.Api.Verenigingen.Registreer.VerenigingsType:
      type: object
      properties:
        code:
          type: string
          description: De code van het type van deze vereniging
        naam:
          type: string
          description: De beschrijving van het type van deze vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.DoelgroepResponse:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        minimumleeftijd:
          type: integer
          description: De minimum leeftijd voor de doelgroep
          format: int32
        maximumleeftijd:
          type: integer
          description: De maximum leeftijd voor de doelgroep
          format: int32
      additionalProperties: false
      description: >-
        De doelgroep waar de activiteiten van deze vereniging zich op
        concentreert
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.GestructureerdeIdentificator:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        nummer:
          type: string
          description: De externe identificator van de vereniging in de bron
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.HoofdactiviteitVerenigingsloket:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        code:
          type: string
          description: De verkorte code van de hoofdactiviteit
        naam:
          type: string
          description: De volledige beschrijving van de hoofdactiviteit
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Locatie:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        locatietype:
          type: string
          description: "Het soort locatie dat beschreven wordt<br /><br />\r\nMogelijke waarden:<br />\r\n- Activiteiten<br />\r\n- Correspondentie - Slechts één maal mogelijk<br />\r\n- Maatschappelijke zetel volgens KBO - Enkel mogelijk voor verenigingen met rechtspersoonlijkheid<br />"
        isPrimair:
          type: boolean
          description: Is dit de primaire locatie van deze vereniging
        adresvoorstelling:
          type: string
          description: De volledige adresvoorstelling van de locatie
        naam:
          type: string
          description: De naam van de locatie
        postcode:
          type: string
          description: De postcode van de locatie
        gemeente:
          type: string
          description: De gemeente waarin de locatie ligt
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Metadata:
      type: object
      properties:
        pagination:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Pagination
          description: De paginatie metaData
      additionalProperties: false
      description: >-
        In deze metadata plaatsen we alle relevante metadata voor de
        zoekopdracht, de paginering informatie
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Pagination:
      type: object
      properties:
        totalCount:
          type: integer
          description: Het totaal aantal verenigingen dat voldoet aan de zoekcriteria
          format: int64
        offset:
          type: integer
          description: Het aantal overgeslagen resultaten
          format: int32
        limit:
          type: integer
          description: Het maximum aantal teruggegeven resultaten
          format: int32
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.SearchVerenigingenResponse:
      type: object
      properties:
        '@context':
          type: string
          description: De JSON-LD open data context
        verenigingen:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Vereniging
          description: >-
            Dit is de lijst van verenigingen die het resultaat van de
            zoekopdracht zijn
        metadata:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Metadata
          description: >-
            In deze metadata plaatsen we alle relevante metadata voor de
            zoekopdracht, de paginering informatie
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Sleutel:
      type: object
      properties:
        '@id':
          type: string
          description: De json-ld id
        '@type':
          type: string
          description: Het json-ld type
        bron:
          type: string
          description: De bron van de sleutel
        waarde:
          type: string
          description: De externe identificator van de vereniging in de bron
        codeerSysteem:
          type: string
          description: het codeersysteem van de sleutel
        gestructureerdeIdentificator:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.GestructureerdeIdentificator
          description: De gestructureerde identificator
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Vereniging:
      type: object
      properties:
        '@type':
          type: string
          description: Het json-ld type
        vCode:
          type: string
          description: De vCode van de vereniging
        verenigingstype:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.VerenigingsType
          description: Het type van de vereniging
        naam:
          type: string
          description: De naam van de vereniging
        roepnaam:
          type: string
          description: >-
            Roepnaam van de vereniging. Dit veld is enkel aanwezig bij
            verenigingen met rechtspersoonlijkheid
          default: null
        korteNaam:
          type: string
          description: De korte naam van de vereniging
        status:
          type: string
          description: "Status van de vereniging<br /><br />\r\n                Mogelijke waarden:<br />\r\n                - Actief<br />\r\n                - Gestopt<br />"
        doelgroep:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.DoelgroepResponse
          description: >-
            De doelgroep waar de activiteiten van deze vereniging zich op
            concentreert
        hoofdactiviteitenVerenigingsloket:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.HoofdactiviteitVerenigingsloket
          description: De lijst van hoofdactiviteiten erkend door het vereningingsloket
        locaties:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Locatie
          description: De locaties waar de vereniging actief is
        sleutels:
          type: array
          items:
            $ref: >-
              #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.Sleutel
          description: De sleutels van deze vereniging
        links:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.VerenigingLinks
          description: Weblinks i.v.m. deze vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.VerenigingLinks:
      type: object
      properties:
        detail:
          type: string
          description: De link naar het beheer detail van de vereniging
          format: uri
        magdaDetail:
          type: string
          description: Magda link naar het beheer detail van de vereniging
          format: uri
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Search.ResponseModels.VerenigingsType:
      type: object
      properties:
        code:
          type: string
          description: De code van het type vereniging
        naam:
          type: string
          description: De beschrijving van het type vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Stop.RequestModels.StopVerenigingRequest:
      required:
        - einddatum
      type: object
      properties:
        einddatum:
          type: string
          description: De datum waarop de vereniging gestopt werd.
          format: date
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Vertegenwoordigers.FeitelijkeVereniging.VoegVertegenwoordigerToe.RequestModels.VoegVertegenwoordigerToeRequest:
      type: object
      properties:
        vertegenwoordiger:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.ToeTeVoegenVertegenwoordiger
          description: De toe te voegen vertegenwoordiger
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.Vertegenwoordigers.FeitelijkeVereniging.WijzigVertegenwoordiger.RequestModels.TeWijzigenVertegenwoordiger:
      type: object
      properties:
        rol:
          type: string
          description: Dit is de rol van de vertegenwoordiger binnen de vereniging
        roepnaam:
          type: string
          description: Dit is de roepnaam van de vertegenwoordiger
        isPrimair:
          type: boolean
          description: >-
            Dit duidt aan dat dit de unieke primaire contactpersoon is voor alle
            communicatie met overheidsinstanties
        e-mail:
          type: string
          description: Het e-mailadres van de vertegenwoordiger
        telefoon:
          type: string
          description: Het telefoonnummer van de vertegenwoordiger
        mobiel:
          type: string
          description: Het mobiel nummer van de vertegenwoordiger
        socialMedia:
          type: string
          description: Het socialmedia account van de vertegenwoordiger
      additionalProperties: false
      description: De te wijzigen vertegenwoordiger
    AssociationRegistry.Admin.Api.Verenigingen.Vertegenwoordigers.FeitelijkeVereniging.WijzigVertegenwoordiger.RequestModels.WijzigVertegenwoordigerRequest:
      type: object
      properties:
        vertegenwoordiger:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Vertegenwoordigers.FeitelijkeVereniging.WijzigVertegenwoordiger.RequestModels.TeWijzigenVertegenwoordiger
          description: De te wijzigen vertegenwoordiger
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.WijzigBasisgegevens.FeitelijkeVereniging.RequestModels.WijzigBasisgegevensRequest:
      type: object
      properties:
        naam:
          type: string
          description: Nieuwe naam van de vereniging
        korteNaam:
          type: string
          description: Nieuwe korte naam van de vereniging
        korteBeschrijving:
          type: string
          description: Nieuwe korte beschrijving van de vereniging
        startdatum:
          type: string
          description: >-
            Nieuwe startdatum van de vereniging. Deze datum mag niet later zijn
            dan vandaag
          format: date
        doelgroep:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.DoelgroepRequest
          description: >-
            De doelgroep waar de activiteiten van deze vereniging zich op
            concentreert
        hoofdactiviteitenVerenigingsloket:
          type: array
          items:
            type: string
          description: >-
            De codes van de nieuwe hoofdactiviteiten volgens het
            verenigingsloket
        isUitgeschrevenUitPubliekeDatastroom:
          type: boolean
          description: >-
            Is deze vereniging uitgeschreven uit de publiek datastroom, dit kan
            enkel gewijzigd worden voor een feitelijke vereniging
      additionalProperties: false
    AssociationRegistry.Admin.Api.Verenigingen.WijzigBasisgegevens.MetRechtspersoonlijkheid.RequestModels.WijzigBasisgegevensRequest:
      type: object
      properties:
        korteBeschrijving:
          type: string
          description: Nieuwe korte beschrijving van de vereniging
        doelgroep:
          allOf:
            - $ref: >-
                #/components/schemas/AssociationRegistry.Admin.Api.Verenigingen.Common.DoelgroepRequest
          description: >-
            De doelgroep waar de activiteiten van deze vereniging zich op
            concentreert
        hoofdactiviteitenVerenigingsloket:
          type: array
          items:
            type: string
          description: >-
            De codes van de nieuwe hoofdactiviteiten volgens het
            verenigingsloket
        roepnaam:
          type: string
          description: De nieuwe roepnaam van de vereniging
      additionalProperties: false
    Be.Vlaanderen.Basisregisters.BasicApiProblem.ProblemDetails:
      type: object
      properties:
        type:
          type: string
          description: URI referentie die het probleem type bepaalt.
        title:
          type: string
          description: Korte omschrijving van het probleem.
        detail:
          type: string
          description: Specifieke details voor dit probleem.
        status:
          type: integer
          description: HTTP status code komende van de server voor dit probleem.
          format: int32
        instance:
          type: string
          description: URI naar de specifieke instantie van dit probleem.
      additionalProperties: false
    Be.Vlaanderen.Basisregisters.BasicApiProblem.ValidationError:
      type: object
      properties:
        code:
          type: string
        reason:
          type: string
      additionalProperties: false
    Be.Vlaanderen.Basisregisters.BasicApiProblem.ValidationProblemDetails:
      type: object
      properties:
        validationErrors:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: >-
                #/components/schemas/Be.Vlaanderen.Basisregisters.BasicApiProblem.ValidationError
          description: Validatie fouten.
        type:
          type: string
          description: URI referentie die het probleem type bepaalt.
        title:
          type: string
          description: Korte omschrijving van het probleem.
        detail:
          type: string
          description: Specifieke details voor dit probleem.
        status:
          type: integer
          description: HTTP status code komende van de server voor dit probleem.
          format: int32
        instance:
          type: string
          description: URI naar de specifieke instantie van dit probleem.
      additionalProperties: false

Persoon

Persoon

openapi: "3.0.3"
info:
  title: "Persoon domein"
  description: "Deze api bevat alle schema's van de diensten in het domain persoon."
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "Persoon domein"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/persoon"
paths: 
  /handtekeningen:
    get:
      tags:
        - "handtekeningen"
      summary: "Deze dienst haalt de handtekening op zoals die op de identiteitskaart staat"
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: x-insz
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Rijksregisternummer'
      responses:
        200:
          description: "handtekening"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Handtekening"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
         
  /pasfotos:
    get:
      tags:
        - "pasfotos"
      summary: "Deze dienst haalt de pasfoto op zoals die op de identiteitskaart staat"
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: x-insz
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Rijksregisternummer'
      responses:
        200:
          description: "pasfoto"
          content:
            application/json:
              schema:
                $ref: "#components/schemas/Pasfoto"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

components:
 parameters:
    CorrelationId:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/Correlation-Id'
 responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
 schemas:
    Correlation-Id:
      description: "ID van de transactie. Wordt gebruikt voor log tracering en incident afhandeling"
      type: string
      minLength: 10
      maxLength: 36

    Rijksregisternummer:
      description: "Het rijksregisternummer van de persoon"
      type: string
      pattern: '^\d{11}$'

    Kleur:
      description: 'Gegevens over een kleur'
      type: object
      properties:
        id:
          description: |
            'identificatiecode van de kleur:'
            '0: onbekend'
            '1: zwart-wit'
            '2: kleur'
          type: string
        label:
          description: 'de omschjrijving van de kleur'
          type: string


    Handtekening:
      description: "De handtekening informatie"
      type: object
      properties:
        rijksregisternummer:
          $ref: '#/components/schemas/Rijksregisternummer'
        kaartnummer:
          description: 'nummer van de identiteitskaart'
          type: string
          pattern: '^\d{12}'
        basisdocumentDatum:
          description: 'Datum waarop het basisdocument is uitgegeven'
          type: string
          format: date
        afbeelding:
          description: 'De afbeelding van de handtekening in Base64 encoding'
          type: string
          format: byte

    Pasfoto:
      description: "De pasfoto informatie"
      type: object
      properties:
        rijksregisternummer:
          $ref: '#/components/schemas/Rijksregisternummer'
        updateDatum:
          description: 'Datum waarop de foto is aangepast'
          type: string
          format: date
        kleur:
          $ref: '#/components/schemas/Kleur'
        afbeelding:
          description: 'De afbeelding van de handtekening in Base64 encoding'
          type: string
          format: Base64



    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: "URI referentie die het probleem identificeert. Deze specificatie moedigt aan om, wanneer de referentie wordt verwijderd, een leesbare documentatie te bieden voor het probleemtype. Als dit element niet aanwezig is, wordt aangenomen dat de waarde about:blank is."
        title:
          type: string
          description: "Een korte, voor mensen leesbare samenvatting van het probleemtype. Het MAG NIET veranderen tussen verschillende voorkomens van de fout, behalve voor doeleinden van lokalisatie."
        status:
          type: string
          description: "De HTTP-statuscode die is gegenereerd door de oorspronkelijke server voor dit optreden van het probleem."
        detail:
          type: string
          description: "Een voor mensen leesbare uitleg die specifiek is voor dit optreden van het probleem."
        instance:
          type: string
          description: "Een URI-referentie die het specifieke optreden van het probleem identificeert. Het kan al dan niet meer informatie opleveren als de referentie wordt verwijderd."
      description: "Een weergave van een algemene foutmelding."

OfficialDocuments

openapi: 3.0.3
info:
  title: officialDocument Services
  description: 'This RESTful API is designed to allow natural persons to query and download the official documents that are available in the DABS database. Release date April 2022.'
  contact:
    name: officialDocumentsAPI
    email: helpdesk.magda@vlaanderen.be
  license:
    name: officialDocumentsAPI
    url: 'https://overheid.vlaanderen.be/magda'
  version: '1.0'
servers:
  - url: /api/v1/person
paths:
  /officialDocumentReferences:
    get:
      tags:
        - Person
      summary: Operations for getting the references of the official documents in the DABS database related to a particular National Number.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: personNumber
          in: query
          description: The national number of a person to search for in any role except the role “ABS”.
          required: true
          schema:
            $ref: '#/components/schemas/NationalNumberType'
        - name: language
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/LanguageType'
      responses:
        200:
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferencesResponse'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/NoAttestationAuthorization'
        404:
          $ref: '#/components/responses/AttestationNotFound'
        412:
          $ref: '#/components/responses/PreConditionFailed'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /officialDocuments:
    get:
      tags:
        - Person
      summary: Operations for getting the extract or conformal copy of an official document from the DABS databaseby means of a reference aquired through the GET officialDocumetsList service.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: personNumber
          in: query
          description: The national number of a person to search for in any role except the role “ABS”.
          required: true
          schema:
            $ref: '#/components/schemas/NationalNumberType'
        - name: language
          in: query
          description: The language of the document requested.
          required: false
          schema:
            $ref: '#/components/schemas/LanguageType'
        - name: documentReference
          in: query
          description: The reference of document requested.
          required: true
          schema:
            type: string
        - name: actType
          in: query
          description: The format of the document requested
          required: true
          schema:
            $ref: '#/components/schemas/ActType'

      responses:
        200:
          description: The result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentResponse'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/NoAttestationAuthorization'
        404:
          $ref: '#/components/responses/AttestationNotFound'
        412:
          $ref: '#/components/responses/PreConditionFailed'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /officialDocumentMigrations:
    get:
      tags:
        - Person
      summary: Operations for requesting the migration of an official document.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: migrationCommand
          in: query
          description: The number of the migration command
          required: true
          schema:
            $ref: '#/components/schemas/MigrationCommandType'

      responses:
        200:
          description: The result.
          content:
            application/pdf:
              schema:
                $ref: '#/components/schemas/MigrationResponse'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/NoAttestationAuthorization'
        404:
          $ref: '#/components/responses/AttestationNotFound'
        412:
          $ref: '#/components/responses/PreConditionFailed'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

components:
  responses:
    BadRequest:
      description: Invalid data supplied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    InvalidAuthorization:
      description: Invalid authorization
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    NoAttestationAuthorization:
      description: Not authorized to obtain this attestation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    AttestationNotFound:
      description: Attestation not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    UnexpectedServerError:
      description: Unexpected Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    BadGateway:
      description: Bad Gateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    ServiceUnavailable:
      description: Service unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    GatewayTimeout:
      description: Gateway Timeout
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
  schemas:
    ReferencesResponse:
      type: object
      description: 'The object containing the result'
      properties:
        self:
          type: string
          description: 'Link to this request.'
        responseDateTime:
          type: string
          format: date-time
        items:
          type: array
          description: 'An array of registration objects. The content can be none, one or multiple objects.'
          items:
            $ref: '#/components/schemas/OfficialDocumentInfo'
    DocumentResponse:
      type: string
      format: binary
      description: 'Response containing the PDF document'
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10
    LanguageType:
      description: Language selection enumeration
      type: string
      enum:
        - nl
        - fr
        - de
    ActType:
      type: string
      enum:
        - C
        - E
        - A
    DocType:
      description: An enum class that indicates the type of document to which an object is linked to
      type: string
      enum:
        - ABSENCE_CERTIFICATE
        - ADOPTION_CERTIFICATE
        - ANNULMENT_CERTIFICATE
        - AUTHORITY_DECISION
        - BIRTH_CERTIFICATE
        - DEATH_CERTIFICATE
        - DECLARATION_OF_LIFELESS_CHILD_CERTIFICATE
        - DIVORCE_CERTIFICATE
        - FIRSTNAME_CHANGE_CERTIFICATE
        - MARRIAGE_CERTIFICATE
        - MANUAL_UPDATE_DOCUMENT
        - NAME_CHANGE_CERTIFICATE
        - NATIONALITY_CERTIFICATE
        - PRENATAL_RECOGNITION_CERTIFICATE
        - RECOGNITION_CERTIFICATE
        - SEX_CHANGE_CERTIFICATE
        - UPDATE_DOCUMENT
    Error:
      description: 'Error type as provided by the DABS application'
      properties:
        errorCode:
          type: integer
          description: 'The numeric code of the error.'
        arguments:
          type: array
          description: 'Some argument associated to the error detected by the system'
          items:
            type: string
        msg:
          type: string
          description: "Message describing the error related to “errorCode”."
    OfficialDocumentInfo:
      description: Information on an official documnt linked to a person.
      type: object
      required:
        - reference
      properties:
        factDate:
          $ref: "#/components/schemas/DateType"
        reference:
          description: 'Reference of the official document, used to request the document'
          type: string
        type:
          $ref: '#/components/schemas/DocType'
        copy:
          $ref: '#/components/schemas/ElementType'
        extract:
          $ref: '#/components/schemas/ElementType'
        art16:
          $ref: '#/components/schemas/ElementType'
        migrationCommand:
          type: string
    ElementType:
      properties:
        element:
          type: string
        language:
          $ref: '#/components/schemas/LanguageType'
    DateType:
      type: object
      properties:
        century:
          type: integer
        day:
          type: integer
        month:
          type: integer
        year:
          type: integer
    NationalNumberType:
      type: string
      pattern: "[0-9]{10,11}"
      example: "70012533955"
      description: "The national number of the concerned person."
    MigrationCommandType:
      type: string
      description: The string used for requesting the migration of a paper version to an electronic version
    MigrationResponse:
      type: object
      description: Response from the migration command
      properties:
        responseDateTime:
          type: string
          format: date-time
        fileInfo:
          $ref: '#/components/schemas/FileInfoType'
    FileInfoType:
      type: object
      description: description of the file for which the migration was requested
      properties:
        docReference:
          type: string
        message:
          type: string
        notificationId:
          type: string
        error:
          type: string

    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: 'A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".'
        title:
          type: string
          description: 'A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.'
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
        DABSException:
          properties:
            error:
              type: array
              description: 'List of errors that are leading DABS/BAEC to raise an exception.'
              items:
                $ref: '#/components/schemas/Error'
            traceid:
              type: string
              description: 'Reference of the "trace" record in the trace system of DABS/BAEC at the NR.'
      description: A representation of a generic error message
      

SocEcon

Tewerkstellingsondersteunende Maatregelen (nog in ontwikkeling!)

Dit document zal in de toekomst mogelijks nog wijzigen!

openapi: "3.0.2"
info:
  title: "Digitaal Vlaanderen - Tewerkstellingondersteunende Maatregelen"
  description: "Tewerkstelling gerelateerde diensten in het domein Sociale Economie. Release date: Apr23"
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "Tewerkstelling gerateerde diensten"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/socEcon"
paths:
  /tewerkstelling/ondersteunendeMaatregelen:
    get:
      tags:
        - VDAB
        - API 1
      summary: "Vraag van DWSE om de tewerkstellingsondersteunende maatregel voor een burger op te halen"
      operationId: tewerkstellingsondersteunendeMaatregelen
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Insz
          in: header
          description: Insz van de burger
          required: true
          style: simple
          explode: false
          schema:
            type: string
            pattern: '^\d{11}$'
        - name: maatregelType
          in: query
          description: Geeft aan over welk type maatregel het gaat
          required: true
          style: form
          explode: true
          schema:
            type: string
        - name: collectiefMaatwerkBedrijf
          in: query
          description: Geeft aan of het een collectief maatwerkbedrijf is
          required: true
          style: form
          explode: true
          schema:
            type: boolean
        - name: aanvraagdatumWerkgever
          in: query
          description: Datum waarop de werkgever een aanvraag tot opening subsidiedossier heeft gedaan bij WSE
          required: true
          style: form
          explode: true
          schema:
            type: string
            format: date
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TewerkstellingsondersteunendeMaatregelVDAB'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /tewerkstelling/ondersteuningsnoodEvaluatieAanvragen:
    post:
      tags:
        - VDAB
        - API 2
      summary: "Bericht van DWSE om een (her)evaluatie aan te vragen voor een bestaande tewerkstellingsondersteunende maatregel"
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - request
              properties:
                  request:
                    $ref: '#/components/schemas/OndersteuningsnoodEvaluatieAanvraag'
                  documentBestanden:
                    type: array
                    items:
                      type: string
                      format: binary
        required: true
      responses:
        200:
          description: "Verzoek geregistreerd"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /tewerkstelling/subsidiedossiers:
    get:
      tags:
        - DWSE
        - API 6
      summary: "GET subsidiedossier"
      operationId: subsidiedossiers
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Insz
          in: header
          description: Insz van de burger
          required: true
          style: simple
          explode: false
          schema:
            type: string
            pattern: '^\d{11}$'
        - name: subsidiedossierReferentie
          in: query
          required: false
          schema:
            type: string
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subsidiedossier'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    post:
      tags:
        - VDAB
        - API 5
      summary: "Endpoint dat gebruikt kan worden door DWSE om een subsidiedossier of eventuele updates door te sturen naar de VDAB"
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Insz
          in: header
          description: Header met de insz van de burger
          required: true
          style: simple
          explode: false
          schema:
            type: string
            pattern: '^\d{11}$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubsidiedossierUpdateVraag'
        required: true
      responses:
        200:
          description: "Verzoek geregistreerd"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  /tewerkstelling/ondersteuningsnoodEvaluatieResultaten/{evaluatieAanvraagReferentie}:
    post:
      tags:
        - DWSE
        - API 3
      summary: "POST Zend Evaluatie Resultaat"
      operationId: ondersteuningsnoodEvaluatieResultaten
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: evaluatieAanvraagReferentie
          in: path
          description: Referentie van de evaluatie aanvraag
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: evaluatie resultaat payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluatieResultaatMutatie'
        required: true
      responses:
        200:
          description: "Verzoek geregistreerd"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
  /tewerkstelling/ondersteunendeMaatregelen/{maatregelReferentie}:
    post:
      tags:
        - DWSE
        - API 4
      summary: "POST maatregel"
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: X-Insz
          in: header
          description: Header met de insz van de burger
          required: true
          style: simple
          explode: false
          schema:
            type: string
            pattern: '^\d{11}$'
        - name: maatregelReferentie
          in: path
          description: Referentie van de maatregel
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: Omschrijving van de body van de request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TewerkstellingsondersteunendeMaatregelMutatie'
        required: true
      responses:
        200:
          description: "Verzoek geregistreerd"
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'



components:
 parameters:
    CorrelationId:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/Correlation-Id'
 responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
 schemas:
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling"
      type: string
      minLength: 10
      maxLength: 36

    TewerkstellingsondersteunendeMaatregelVDAB:
      type: object
      properties:
        referentie:
          type: string
          description: Unieke referentie naar de maatregel binnen de VDAB
        type:
          type: string
          description: Het type maatregel
        status:
          $ref: '#/components/schemas/TewerkstellingsondersteunendeMaatregelStatus'
        duurtijdInJaar:
          type: integer
          description: De duurtijd van de maatregel uitgedrukt in jaren
        startdatum:
          type: string
          description: De start datum
          format: date
        einddatum:
          type: string
          description: De eind datum
          format: date
        startpakket:
          $ref: '#/components/schemas/Startpakket'
        startdatumArbeidsbeperkingImw:
          type: string
          description: Startdatum van de eerste arbeidsbeperking met loonpremie of begeleidingsnood, nodig in kader van IMW zodat WSE de juiste premie kan bepalen.
          format: date
      description: De details voor een tewerkstellingsondersteunende maatregel voor een burger
    TewerkstellingsondersteunendeMaatregelWSE:
      type: object
      properties:
        type:
          type: string
          description: Het type maatregel
        status:
          $ref: '#/components/schemas/TewerkstellingsondersteunendeMaatregelStatus'
        duurtijdInJaar:
          type: integer
          description: De duurtijd van de maatregel uitgedrukt in jaren
        startdatum:
          type: string
          description: De start datum
          format: date
        einddatum:
          type: string
          description: De eind datum
          format: date
        startpakket:
          $ref: '#/components/schemas/Startpakket'
        correctie:
          $ref: '#/components/schemas/Correctie'
      description: De details voor een tewerkstellingsondersteunende maatregel voor een burger

    TewerkstellingsondersteunendeMaatregelStatus:
      type: string
      description: Mogelijke maatregel status waarden
      enum:
      - NIET_ONDERZOCHT
      - TOEGEKEND
      - GEWEIGERD

    Startpakket:
      required:
      - afgetopt
      - begeleidingsnood
      - loonpremiePercentage
      type: object
      properties:
        loonpremiePercentage:
          type: integer
          description: Tussenkomst in de loonkost om rendementsverlies te compenseren, in percentage uitgedrukt
        begeleidingsnood:
          $ref: '#/components/schemas/Begeleidingsnood'
        afgetopt:
          type: boolean
          description: Geeft aan of het al dan niet over een afgetopt startpakket gaat
      description: Het startpakket gekoppeld aan een maatregel
    Begeleidingsnood:
      type: string
      description: Een indicatie van de begeleidingsnood
      enum:
      - HOOG
      - MIDDEN
      - LAAG
      - GEEN

    OndersteuningsnoodEvaluatieAanvraag:
      description: Een aanvraag om een tewerkstellingsondersteunende maatregel te evalueren
      type: object
      required:
        - datum
        - subsidiedossier
        - referentie
      properties:
        referentie:
          type: string
          description: de referentie van de evaluatieAanvraag
        datum:
          type: string
          description: Datum waarop de aanvraag gedaan werd
          format: date
        subsidiedossier:
          $ref: '#/components/schemas/SubsidiedossierReferentie'
        documenten:
          type: array
          items:
            $ref: '#/components/schemas/Document'
    SubsidiedossierReferentie:
      description: De referentie naar het subsidiedossier zoals gekend door de werkgever
      type: object
      required:
        - referentie
        - maatregelType
      properties:
        referentie:
          type: string
          description: De referentie
        maatregelType:
          type: string
          description: Het type maatregel
    Document:
      description: Een document dat uitgewisseld kan worden
      type: object
      required:
        - type
        - naam
      properties:
        type:
          $ref: '#/components/schemas/DocumentType'
        naam:
          type: string
          description: De naam van het document

    DocumentType:
      description: Document type
      type: string
      enum:
        - MOTIVATIEVERSLAG
        - ONDERSTEUNINGSPLAN
        - ANDERE

    SubsidiedossierUpdateVraag:
      description: Verzoek om de gegevens omtrent een subsidiedossier aan te passen
      type: object
      properties:
        mutatie:
          $ref: '#/components/schemas/VDABMutatie'
        dossier:
          $ref: '#/components/schemas/Subsidiedossier'
    VDABMutatie:
      description: De context waarin een tewerkstellingsondersteunende maatregel werd aangepast
      type: object
      required:
        - referentie
        - type
        - tijdstip
      properties:
        referentie:
          description: Een referentie naar de mutatie
          type: string
          format: uuid
        type:
          $ref: '#/components/schemas/VDABMutatieType'
        tijdstip:
          description: Tijdstip van de mutatie
          type: string
          format: date-time

    VDABMutatieType:
      description: "De tewerkstellingsondersteunende maatregel mutatie types"
      enum:
        - NIEUW
        - WIJZIGING
        - ANNULATIE

    Subsidiedossier:
      description: De gegevens voor een subsidiedossier
      type: object
      required:
        - referentie
        - status
        - maatregelType
        - creatieNaarAanleidingVanOvergangsmaatregel
      properties:
        referentie:
          type: string
          description: dossier referentie
        persoon:
          $ref: '#/components/schemas/Persoon'
        startdatum:
          description: De start datum
          type: string
          format: date
        einddatum:
          description: De eind datum
          type: string
          format: date
        omschrijving:
          description: Omschrijving van het dossier
          type: string
        creatieNaarAanleidingVanOvergangsmaatregel:
          description: Waarde dat aangeeft dat het dosier aangemaakt werd naar aanleiding van een overgangsmaatregel
          type: boolean
        status:
          $ref: '#/components/schemas/SubsidiedossierStatus'
        maatregelType:
          description: Het type tewerkstellingsondersteunende maatregel
          type: string
        regeling:
          $ref: '#/components/schemas/Regeling'
        vestiging:
          $ref: '#/components/schemas/Vestiging'
        begeleidingspartijen:
          $ref: '#/components/schemas/Begeleidingspartijen'
    Persoon:
      description: "Een persoon in de context van een subsidiedossier"
      required:
        - insz
      type: object
      properties:
        insz:
          type: string
        zelfstandige:
          type: boolean
          description: Geeft aan of het om een zelfstandige gaat
    SubsidiedossierStatus:
      description: Mogelijke status waarden voor een subsidiedossier
      type: string
      enum:
        - IN_BEHANDELING
        - ACTIEF
        - AFGESLOTEN
        - GEWEIGERD
    Regeling:
      description: Verzameling van regelingsperiodes met bijhorende % loonpremie en hoogte begeleidingsnood op niveau van subsidiedossier
      type: object
      properties:
        beslissingsdatumBetaling:
          description: De datum waarop WSE beslist heeft dat de betaling mag doorgevoerd worden
          type: string
          format: date
        periodes:
          type: array
          items:
            $ref: '#/components/schemas/Regelingsperiode'
    Vestiging:
      description: Beschrijving van de vestiging in een subsidiedossier
      type: object
      properties:
        bedrijf:
          $ref: '#/components/schemas/BedrijfReferentie'
        contactpersoon:
          $ref: '#/components/schemas/Contactpersoon'
        buitenlandseVestiging:
          $ref: '#/components/schemas/BuitenlandseVestiging'
        collectiefMaatwerkBedrijf:
          description: Geeft aan of het om een collectief maatwerk bedrijf gaat
          type: boolean
    Begeleidingspartijen:
      description: De partijen die instaan voor de begeleiding van de burger
      type: object
      properties:
        externeDienstverleners:
          description: Een extern bedrijf dat de begeleiding verzorgt. De gegevens van de effectieve begeleiders van het extern bedrijf zijn niet beschikbaar
          type: array
          items:
            $ref: '#/components/schemas/ExterneDienstverlener'
        interneBegeleiders:
          description: een interne begeleider van de vestiging waarvoor het subsidiedossier is opgezet
          type: array
          items:
            $ref: '#/components/schemas/ContactPersoonReferentie'
        collegaCoaches:
          type: array
          items:
            $ref: '#/components/schemas/ContactPersoonReferentie'
    Regelingsperiode:
      description: Percentage loonpremie en hoogte begeleidingsnood voor een specifieke periode
      type: object
      properties:
        startdatum:
          type: string
          description: De start datum
          format: date
        einddatum:
          type: string
          description: De eind datum
          format: date
        loonpremiePercentage:
          type: integer
          description: Het loonpremie percentage
        begeleidingsnood:
          $ref: '#/components/schemas/Begeleidingsnood'

    BedrijfReferentie:
      description: De referentie naar een bedrijf
      required:
        - ondernemingsnummer
      type: object
      properties:
        ondernemingsnummer:
          description: Het ondernemingsnummer
          type: string
        vestigingsnummer:
          description: Het vestigingnummer
          type: string
        telefoon:
          description: Het telefoonnummer
          type: string
        emailAdres:
          description: Het email adres
          type: string
    Contactpersoon:
      description: Contactpersoon gegevens
      required:
        - achternaam
        - voornaam
      type: object
      properties:
        achternaam:
          description: De achternaam
          type: string
        voornaam:
          description: De voornaam
          type: string
        telefoon:
          description: Het telefoonnummer
          type: string
        emailAdres:
          description: Het email adres
          type: string
    BuitenlandseVestiging:
      description: Beschrijving van de buitenlandse vestiging in een subsidiedossier
      type: object
      properties:
        naam:
          description: De naam van het bedrijf/vestiging
          type: string
        adres:
          $ref: '#/components/schemas/Adres'
        telefoon:
          description: Het telefoonnummer
          type: string
        emailAdres:
          description: Het email adres
          type: string


    ExterneDienstverlener:
      type: object
      properties:
        startdatum:
          description: De (optionele) start datum
          type: string
          format: date
        einddatum:
          description: De (optionele) eind datum
          type: string
          format: date
        bedrijf:
          $ref: '#/components/schemas/BedrijfReferentie'
        buitenlandseVestiging:
          $ref: '#/components/schemas/BuitenlandseVestiging'
    ContactPersoonReferentie:
      description: De referentie naar een contact persoon die actief was in de tijd
      type: object
      properties:
        startdatum:
          description: De (optionele) start datum
          type: string
          format: date
        einddatum:
          description: De (optionele) eind datum
          type: string
          format: date
        contactpersoon:
          $ref: '#/components/schemas/Contactpersoon'
    Adres:
      description: Een adres beschrijving
      type: object
      properties:
        ongestructureerd:
          $ref: '#/components/schemas/OngestructureerdAdres'
        landcode:
          description: De land code (ISO-2)
          type: string
    OngestructureerdAdres:
      description: Een ongestructureerd adres
      type: object
      properties:
        adreslijnen:
          type: array
          items:
            type: string

    EvaluatieResultaatMutatie:
      description: De resultaten die doorgezonden worden voor evaluatie
      type: object
      properties:
        evaluatieResultaat:
          $ref: '#/components/schemas/Evaluatieresultaat'
        mutatie:
           $ref: '#/components/schemas/WSEMutatie'
    WSEMutatie:
      required:
      - referentie
      - tijdstip
      - type
      type: object
      properties:
        referentie:
          type: string
          description: Een referentie naar de mutatie
          format: uuid
        type:
          $ref: '#/components/schemas/MutatieType'
        tijdstip:
          type: string
          description: Tijdstip van de mutatie
          format: date-time
      description: De context waarin een tewerkstellingsondersteunende maatregel werd aangepast
    MutatieType:
      type: string
      description: |
        De tewerkstellingsondersteunende maatregel mutatie types
      enum:
      - NIEUW
      - WIJZIGING
      - ANNULATIE

    Evaluatieresultaat:
      properties:
        subsidiedossier:
          $ref: '#/components/schemas/SubsidiedossierReferentie'
        beslissingsdatum:
          type: string
          format: date
        statusEvaluatieAanvraag:
          type: string
          enum:
            - GOEDGEKEURD
            - GEWEIGERD
        redenWeigering:
          type: string
          enum:
            - NIET_UITVOERBAAR
            - WEIGERING_MEDEWERKING
            - ADMINISTRATIEVE_WEIGERING
            - ANDERE
        evaluatieRegelingsperiode:
          type: array
          items:
            type: object
            properties:
              startdatum:
                type: string
                format: date
              einddatum:
                type: string
                format: date
              loonpremiePercentage:
                type: integer
              begeleidingsnood:
                $ref: '#/components/schemas/Begeleidingsnood'
        opmerkingen:
          type: string
        correctie:
          $ref: '#/components/schemas/Correctie'
    Correctie:
      type: object
      properties:
        reden:
            type: string
            enum:
              - HOC
              - FOUT
        opmerkingen:
          type: string
    TewerkstellingsondersteunendeMaatregelMutatie:
      type: object
      properties:
        maatregel:
          $ref: '#/components/schemas/TewerkstellingsondersteunendeMaatregelWSE'
        mutatie:
          $ref: '#/components/schemas/WSEMutatie'

    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: "A URI reference that identifies the problem type. This specification encourages that, when de-referenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be about:blank."
        title:
          type: string
          description: "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation."
        status:
          type: string
          description: "The HTTP status code generated by the origin server for this occurrence of the problem."
        detail:
          type: string
          description: "A human-readable explanation specific to this occurrence of the problem."
        instance:
          type: string
          description: "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if de-referenced."
      description: "A representation of a generic error message."

SocZek

handicap

openapi: "3.0.2"
info:
  title: "Digitaal Vlaanderen - Volledige Dossiers Handicap"
  description: "Deze dienst geeft alle info rond een dossier handicap"
  contact:
    name: "Magda helpdesk"
    url: "https://overheid.vlaanderen.be/magda"
  license:
    name: "Volledige dossiers Handicap"
    url: "https://overheid.vlaanderen.be/magda"
  version: "1.0.0"
servers:
  - url: "api/v1/socZek"
paths: 
  /handicap/volledigeDossiers:
    get:
      tags:
        - "VolledigeDossiers"
      summary: "Haalt volledige dossier op basis van rijksregisternummer"
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
        - name: rrnr
          description: "Rijksregisternummer"
          in: query
          required: true
          schema:
            type: string
      responses:
        200:
          description: "Response met inhoud"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DossierInfo'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

components:
 parameters:
    CorrelationId:
      name: x-correlation-id
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/Correlation-Id'
 responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
 schemas:
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling"
      type: string
      minLength: 10
      maxLength: 36

    DossierInfo:
      type: object
      properties:
        "@context":
          type: string
          default: 'https://vlaamseoverheid.atlassian.net/wiki/download/attachments/485949995/handicapvolledigeDossiers-context.jsonld?api=v2'
        wettelijkeVertegenwoordigers:
          type: array
          items:
            $ref: '#/components/schemas/WettelijkeVertegenwoordiger'
        persoonsgegevens:
          $ref: '#/components/schemas/Persoon'
        persoonsvolgendBudget:
          $ref: '#/components/schemas/PersoonsvolgendBudget'
        rth:
          $ref: '#/components/schemas/RTH'
        overeenkomsten:
          $ref: '#/components/schemas/NietPvbGebondenZorg'
        diagnose:
          $ref: '#/components/schemas/Diagnose'
        hulpmiddelen:
          $ref: '#/components/schemas/Hulpmiddelen'
    Adres:
      type: object
      properties:
        '@type':
          type: string
          enum:
            - AdresVoorstelling
        straatnaam:
          $ref: '#/components/schemas/TaalString'
        huisnummer:
          type: string
        busnummer:
          type: string
        postcode:
          type: string
        postnaam:
          $ref: '#/components/schemas/TaalString'
        land:
          $ref: '#/components/schemas/TaalString'
        volledigAdres:
          $ref: '#/components/schemas/TaalString'
    Bedrag:
      type: number
      format: double
    Punten:
      type: number
      format: double
    TaalString:
      type: object
      properties:
        nl:
          type: string
        fr:
          type: string
    Diagnose:
      type: object
      properties:
        laatsteVerslag:
          $ref: '#/components/schemas/Verslag'
        stoornissen:
          type: array
          items:
            $ref: '#/components/schemas/Stoornis'
        handicaps:
          type: array
          items:
            $ref: '#/components/schemas/Handicap'
        iqTest:
          $ref: '#/components/schemas/IQTest'
        motorischeBeperkingen:
          $ref: '#/components/schemas/MotorischeBeperkingen'
        zelfredzaamheid:
          $ref: '#/components/schemas/Zelfredzaamheid'
        zorgZwaarte:
          $ref: '#/components/schemas/ZorgZwaarte'
        beperkingen:
          type: array
          items:
            $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        stoornisCodes:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/Stoornis'
    DossierInfoCodeOmschrijving:
      required:
        - code
        - omschrijving
      type: object
      properties:
        code:
          type: string
        omschrijving:
          type: string
    ErkenningHandicap:
      type: object
      properties:
        heeftHandicap:
          type: string
          enum:
            - JA
            - NEEN
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
    Fout:
      required:
        - bericht
        - type
      type: object
      properties:
        bericht:
          type: string
        code:
          type: string
        type:
          type: string
          enum:
            - BEVEILIGING
            - VALIDATIE
            - DATA
            - SYSTEEM
            - ONBEKEND
            - XSD_VALIDATIE
            - REQUEST
      xml:
        name: fout
        namespace: http://www.vaph.be/common
    Handicap:
      type: object
      properties:
        code:
          type: string
        naam:
          type: string
    HulpmiddelDoelgroep:
      type: object
      properties:
        omschrijving:
          type: string
        categorien:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
    IQTest:
      type: object
      properties:
        p:
          type: number
          format: double
        v:
          type: number
          format: double
        t:
          type: number
          format: double
        datum:
          type: string
          format: date
        type:
          type: string
        verslag:
          $ref: '#/components/schemas/Verslag'
    HulpmiddelBewijs:
      type: object
      properties:
        factuurdatum:
          type: string
          format: date
        factuurReferentie:
          type: string
        leverancier:
          type: string
        bedrag:
          $ref: '#/components/schemas/Bedrag'
        betaalbaar:
          type: boolean
    Hulpmiddelen:
      type: object
      properties:
        doelgroepen:
          type: array
          items:
            $ref: '#/components/schemas/HulpmiddelDoelgroep'
        hulpmiddel:
          type: array
          items:
            $ref: '#/components/schemas/Hulpmiddel'
    Hulpmiddel:
      type: object
      properties:
        code:
          type: string
        naam:
          type: string
        domein:
          type: string
        omschrijving:
          type: string
        aanvraagdatum:
          type: string
          format: date
        facturenBetaalbaarVanaf:
          type: string
          format: date
        toegewezenBedrag:
          $ref: '#/components/schemas/Bedrag'
        bewijzen:
          type: array
          items:
            $ref: '#/components/schemas/HulpmiddelBewijs'
        status:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
    MdtVerslagNemer:
      type: object
      properties:
        mdt:
          $ref: '#/components/schemas/Organisatie'
        mdtMedewerker:
          $ref: '#/components/schemas/Persoon'
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
    MotorischeBeperkingen:
      type: object
      properties:
        verslag:
          $ref: '#/components/schemas/Verslag'
        bovensteLedematenLinks:
          type: string
        bovensteLedematenRechts:
          type: string
        ondersteLedematenLinks:
          type: string
        ondersteLedematenRechts:
          type: string
        wervelkolom:
          type: string
        stappen300m:
          type: string
    NietPvbGebondenZorg:
      type: object
      properties:
        mfc:
          type: array
          items:
            $ref: '#/components/schemas/MfcOvereenkomst'
        odb:
          type: array
          items:
            $ref: '#/components/schemas/OdbOvereenkomst'
        geinterneerden:
          type: array
          items:
            $ref: '#/components/schemas/GeinterneerdenOvereenkomst'
        forensischeVAPHUnit:
          type: array
          items:
            $ref: '#/components/schemas/ForensischeVaphUnitOvereenkomst'
        nah:
          type: array
          items:
            $ref: '#/components/schemas/NahOvereenkomst'
    BestedingOvereenkomst:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        type:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
        zorgpunten:
          $ref: '#/components/schemas/Bedrag'
        bedrag:
          $ref: '#/components/schemas/Bedrag'
    MfcOvereenkomst:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        type:
          $ref: '#/components/schemas/OvereenkomstType'
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
        zorgpunten:
          $ref: '#/components/schemas/Punten'
        dagopvang:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        dagBesteding:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        diagnostiek:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        behandeling:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        begeleiding:
          type: boolean
        verblijf:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        toegangsPoortJeugdrechter:
          type: boolean
        toegangsPoortMaatschappelijkeNoodzaak:
          type: boolean
        intersectoraalTraject:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        datumUitstroom:
          type: string
          format: date
        redenUitstroom:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        redenUitstroomUitleg:
          type: string
    OdbOvereenkomst:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        type:
          $ref: '#/components/schemas/OvereenkomstType'
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
        dagondersteuning:
          type: number
        woonondersteuning:
          type: integer
        individuelePsychosocialeBegeleiding:
          type: integer
        datumUitstroom:
          type: string
          format: date
    GeinterneerdenOvereenkomst:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        type:
          $ref: '#/components/schemas/OvereenkomstType'
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
        module:
          type: string
    ForensischeVaphUnitOvereenkomst:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        type:
          $ref: '#/components/schemas/OvereenkomstType'
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
    NahOvereenkomst:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        type:
          $ref: '#/components/schemas/OvereenkomstType'
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
        redenUitstroom:
          type: string
    Persoon:
      type: object
      properties:
        '@type':
          type: string
          default: Persoon
        achternaam:
          type: string
        voornaam:
          type: string
        geslacht:
          type: string
        heeftGeboorte:
          $ref: '#/components/schemas/Geboorte'
        volledigeNaam:
          type: string
        contactinfo:
          $ref: '#/components/schemas/Contact'
        rijksregisternummer:
          $ref: '#/components/schemas/Registratie'
        dossiernummer:
          $ref: '#/components/schemas/Registratie'
        erkenningHandicap:
          $ref: '#/components/schemas/ErkenningHandicap'
        ondernemingsnummer:
          $ref: '#/components/schemas/Registratie'
    Geboorte:
      type: object
      properties:
        '@type':
          type: string
          enum:
            - PersoonsGebeurtenis
        datum:
          type: string
          format: date
    Contact:
      type: object
      properties:
        telefoon:
          type: string
        email:
          type: string
        adres:
          $ref: '#/components/schemas/Adres'
    Organisatie:
      type: object
      properties:
        '@type':
          type: string
          enum:
            - Organisatie
        ondernemingsnummer:
          $ref: '#/components/schemas/Registratie'
        erkenningsnummer:
          $ref: '#/components/schemas/Registratie'
        naam:
          type: string
        contactinfo:
          $ref: '#/components/schemas/Contact'
    Registratie:
      type: object
      properties:
        notatie:
          type: string
        agent:
          type: string
          enum:
            - rijksregister
            - KBO
            - VAPH
    RTH:
      type: array
      items:
        $ref: '#/components/schemas/RthRegistratie'
    RthRegistratie:
      type: object
      properties:
        zorgaanbieder:
          $ref: '#/components/schemas/Zorgaanbieder'
        registraties:
          type: array
          items:
            $ref: '#/components/schemas/RthRegistratiesPerJaar'
    RthRegistratiesPerJaar:
      type: object
      properties:
        jaar:
          type: integer
        aantalRegistraties:
          type: integer
        gebruiktePunten:
          type: number
    Stoornis:
      type: object
      properties:
        code:
          type: string
        naam:
          type: string
        verslag:
          $ref: '#/components/schemas/Verslag'
    Verslag:
      type: object
      properties:
        verzendingsdatum:
          type: string
          format: date
        mdtVerslagNemer:
          $ref: '#/components/schemas/MdtVerslagNemer'
    WettelijkeVertegenwoordiger:
      type: object
      properties:
        persoon:
          $ref: '#/components/schemas/Persoon'
        wettelijkeVertegenwoordigerType:
          _comment: Omzetten naar codetabel
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
    Zelfredzaamheid:
      type: object
      properties:
        elida:
          type: number
          format: double
        barthel:
          type: number
          format: double
        verslag:
          $ref: '#/components/schemas/Verslag'
    ZorgZwaarte:
      type: object
      properties:
        bWaarde:
          type: number
          format: double
        pWaarde:
          type: number
          format: double
        verslag:
          $ref: '#/components/schemas/Verslag'
        zziWaarden:
          type: array
          items:
            $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
    Zorgaanbieder:
      type: object
      properties:
        organisatie:
          $ref: '#/components/schemas/Organisatie'
        persoon:
          $ref: '#/components/schemas/Persoon'
    PersoonsvolgendBudget:
      type: object
      properties:
        ondersteuningsplannen:
          type: array
          items:
            $ref: '#/components/schemas/Ondersteuningsplan'
        inAfwachtingVanBudgetOfExtraBudget:
          type: string
          enum:
            - JA
            - NEEN
        budget:
          $ref: '#/components/schemas/Budget'
    Ondersteuningsplan:
      type: object
      properties:
        verzendingsdatum:
          type: string
          format: date
        gewoneVraag:
          $ref: '#/components/schemas/Vraag'
        dringendeVraag:
          $ref: '#/components/schemas/Vraag'
    Vraag:
      type: object
      properties:
        ondersteuningsfuncties:
          type: array
          items:
            $ref: '#/components/schemas/OndersteuningsFunctie'
        gevraagdeBudgetcategorie:
          _comment: Om te zetten naar codetabel
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
    OndersteuningsFunctie:
      type: object
      properties:
        functie:
          type: string
        frequentie:
          type: string
        eenheid:
          type: string
    Budget:
      type: object
      properties:
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        terugvorderbaarVoorschot:
          $ref: '#/components/schemas/Bedrag'
        budgetcategorie:
          _comment: om te zetten naar codetabel
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        toegewezenZorgpunten:
          $ref: '#/components/schemas/Punten'
        jaarbudgetten:
          type: array
          items:
            $ref: '#/components/schemas/JaarBudget'
        overeenkomsten:
          type: array
          items:
            $ref: '#/components/schemas/BestedingOvereenkomst'
        dagbesteding:
          $ref: '#/components/schemas/Dagbesteding'
        tekortenHuidigeOndersteuning:
          type: string
        noodAanToezicht:
          type: string
          enum:
            - JA
            - NEEN
        vraagMotiveringMeerwaarde:
          type: string
        vraagOndersteuningsplan:
          type: string
    JaarBudget:
      type: object
      properties:
        jaar:
          type: integer
        type:
          type: string
          enum:
            - PAB
            - PVB
            - PAB_PVB
        startdatum:
          type: string
          format: date
        einddatum:
          type: string
          format: date
        budgethoogte:
          $ref: '#/components/schemas/Bedrag'
        saldoBudget:
          $ref: '#/components/schemas/Bedrag'
    Dagbesteding:
      type: object
      properties:
        activiteiten:
          type: array
          items:
            $ref: '#/components/schemas/Activiteit'
    Activiteit:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        toelichting:
          type: string
        regime:
          type: string
          enum:
            - DEELTIJDS
            - VOLTIJDS
    OvereenkomstType:
      type: object
      properties:
        hoofdtype:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
        subtype:
          $ref: '#/components/schemas/DossierInfoCodeOmschrijving'
    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: "A URI reference that identifies the problem type. This specification encourages that, when de-referenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be about:blank."
        title:
          type: string
          description: "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation."
        status:
          type: string
          description: "The HTTP status code generated by the origin server for this occurrence of the problem."
        detail:
          type: string
          description: "A human-readable explanation specific to this occurrence of the problem."
        instance:
          type: string
          description: "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if de-referenced."
      description: "A representation of a generic error message."

Sociale Huisvesting

openapi: 3.0.3
info:
  title: VMSW Woningen
  description: 'This RESTful API is designed to query current data registered at VMSW. Release date October, 2023.'
  contact:
    name: "Magda helpdesk"
    email: helpdesk.magda@vlaanderen.be
  license:
    name: socialeHuisvestingAPI
    url: 'https://overheid.vlaanderen.be/magda'
  version: '0.4'
servers:
  - url: /api/v1/socZek
paths:
  '/socialeHuisvesting/dossiers/zoeken':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_dossiersZoeken
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Dossier zoek criteria
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DossierDienstZoekCriteria'
            example: {"dossierType":null,"dossierStatus":"REG","dossierNummer":null,"postCode":"3500","aanvragerRijksregisternummer":"65052643390","creatieDatumVanaf":"2023-07-31T00:00:00+00:00","creatieDatumTot":null,"updateDatumVanaf":null,"updateDatumTot":null,"ontvangstDatumVanaf":null,"ontvangstDatumTot":null,"nietGesynchroniseerd":null,"partijCode":null}

      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DossierDienstZoekResultaten'
        204:
          description: No Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DossierDienstZoekResultaten'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/dossier/{dossierNummer}':
    get:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_dossier
      parameters:
        - name: dossierNummer
          in: path
          description: Nummer van het gevraagde dossier
          required: true
          schema:
            type: string
            nullable: true
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DossierDienstDossier'
        204:
          description: No Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DossierDienstDossier'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    put:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_dossierUpdate
      parameters:
        - name: dossierNummer
          in: path
          description: Nummer van het gevraagde dossier
          required: true
          schema:
            type: string
            nullable: true
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: bijgerkte dossier informatie
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DossierDienstDossierWijziging'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: integer
                format: int64
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/dossierMetBijlages/{dossierNummer}':
    get:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_dossierMetBijlagen
      summary: Geeft de detail informatie van een welbepaald dossier terug, inclusief de inhoud van de bijlages
      description: "Het CIR centraliseert alle dossiers\r\n<br />Deze methode maakt het mogelijk om alle informatie over een bepaalhet dossier op te halen"
      parameters:
        - name: dossierNummer
          in: path
          description: Nummer van het gevraagde dossier
          required: true
          schema:
            type: string
            nullable: true
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DossierDienstDossier'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/bevestigDossierVerwerking':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_BevestigDossierVerwerking
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Dossier bevestiging
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DossierDienstDossierVersieBevestiging'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/wijzigDossierRangschikkingen':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_WijzigDossierRangschikkingen
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Dossier Ranglijsten
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DossierDienstDossierRanglijstWijzigingen'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: integer
                format: int64
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/zwarteLijstMeldingen':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_ZwartelijstMeldingen
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Zwarte Lijst Melding
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZwarteLijstMeldingen'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/bijlage':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_bijlage
      summary: >-
        Haalt een specifiek bestand op van een dossier aan de hand van het dossiernummer en bijlage identificatie.
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DossierDienstBijlageCriteria'
      responses:
        200:
          description: Success
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
                nullable: true
        204:  
          description: No Content
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/partijInformatieWijzigingen':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_PartijInformatieWijziging
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Partij Informatie
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartijInformatieWijzigingen'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/zwarteLijstMeldingVoor':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_zwarteLijstMelding
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetZwarteLijstMeldingVerzoek'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetZwarteLijstMelding'
        204:
          description: No Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetZwarteLijstMelding'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/dossiers/verwerkDossierActie':
    post:
      tags:
        - CIR - Dossiers
      operationId: CIRApi_VerwerkDossier
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Zwarte Lijst Melding
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DossierDienstDossierActie'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/gemeentes':
    get:
      tags:
        - CIR - Gemeentes
      operationId: CIRApi_Gemeentes
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GemeenteDienstZoekResultaats'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/gemeentes/wijkenVoorGemeente/{gemeenteNisCode}':
    get:
      tags:
        - CIR - Gemeentes
      operationId: CIRApi_Wijken
      parameters:
        - name: gemeenteNisCode
          in: path
          description: Stad of gemeente code (NIS)
          required: true
          schema:
            type: string
            nullable: true
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GemeenteDienstWijken'
        204:
          description: No Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GemeenteDienstWijken'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    put:
      tags:
        - CIR - Gemeentes
      operationId: CIRApi_GemeenteBijwerken
      parameters:
        - name: gemeenteNisCode
          in: path
          description: NIS Code van de hoofdgemeente
          required: true
          schema:
            type: string
            nullable: true
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: Zwarte Lijst Melding
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GemeenteDienstWijken'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen/{vmswWoningId}':
    get:
      tags:
        - CWR-Woningen
      description: Woninggegevens ophalen op basis van het VmswWoningId
      operationId: GET_Woning
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningV2Response'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    patch:
      tags:
        - CWR-Woningen
      description: Gegevens van een bestaande woning wijzigen.
      operationId: PATCH_WoningDetailsWijzigen
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2WoningWijzigen'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningV2Response'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen':
    get:
      tags:
        - CWR-Woningen
      description: Bestaande woning zoeken.
      operationId: GET_Woningen
      parameters:
        - name: woonmaatschappijWoningId
          in: query
          schema:
            type: string
        - name: woonmaatschappijWoningCode
          in: query
          schema:
            type: string
        - name: gebouweenheidId
          in: query
          schema:
            type: string
        - name: straatnaam
          in: query
          schema:
            type: string
        - name: huisnummer
          in: query
          schema:
            type: string
        - name: busnummer
          in: query
          schema:
            type: string
        - name: postcode
          in: query
          schema:
            type: string
        - name: gemeenteNISCode
          in: query
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningV2Response'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    post:
      tags:
        - CWR-Woningen
      description: Woning aanmaken bij VMSW.
      operationId: POST_Woning
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2WoningToevoegen'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningV2Response'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen/{vmswWoningId}/woningkenmerkscores':
    get:
      tags:
        - CWR-Woningkenmerken
      description: Woningkenmerkscores ophalen voor een woning op basis van het VmswWoningId.
      operationId: GET_Woningkenmerkscores
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: woningKenmerkCategorie
          in: query
          schema:
            $ref: '#/components/schemas/WoningKenmerkCategorie'
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningKenmerkScoresResponse'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    patch:
      tags:
        - CWR-Woningkenmerken
      description: WoningkenmerkScores updaten voor kenmerken van een specifiek woning.
      operationId: PATCH_Woningkenmerkscores
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WoningKenmerkScoreWijzigen'
      responses:
        200:
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningKenmerkScoresResponse'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'


  '/socialeHuisvesting/woningbezettingen':
    post:
      tags:
        - CWR-Woningen
      summary: Nieuwe bezetting
      operationId: nieuwe-woningbezetting
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/WoningBezetting'
      responses:
        201:
          $ref: '#/components/responses/Response'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningbezettingen/{woning-bezetting-id}':
    patch:
      summary: Update bezetting
      tags:
        - CWR-Woningen
      operationId: update-woning-bezetting
      parameters:
        - name: woning-bezetting-id
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WoningBezetting'
      responses:
        200:
          description: OK
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    delete:
      summary: Verwijder bezetting
      description: 'Woonmaatschappij verwijdert informatie over bestaande bezetting in CWR, bijvoorbeeld indien iets foutief doorgestuurd werd'
      operationId: delete-woning-bezetting
      tags:
        - CWR-Woningen
      parameters:
        - name: woning-bezetting-id
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        204:
          description: No Content
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    get:
      operationId: get-woning-bezetting
      parameters:
        - name: woning-bezetting-id
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      tags:
        - CWR-Woningen
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/notificaties/{registerId}/messages/head':
    post:
      tags:
        - Notificaties
      summary: Lees en vergrendel bericht
      description: >-
        Het bericht dat gelezen wordt, wordt gelocked en moet nadien opnieuw
        worden vrijgegeven via een PUT call.
      operationId: POST_Messages
      parameters:
        - name: registerId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        201:
          description: Message successfully retrieved and locked.
          headers:
            Content-Type:
              required: true
              schema:
                type: string
                description: Media-type of the resource
                default: application/atom+xml;type=entry;charset=utf-8
            BrokerProperties:
              description: >-
                JSON-encoded representation for the unit of communication
                between Service Bus clients. More info on:
                https://learn.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties
              required: true
              schema:
                type: object
              example:
                CorrelationId: 44d276e3-81a6-410c-a1ba-06573f254851
                LockToken: 73f378c2-2c64-403b-91df-a711cc56cbb0
                MessageId: random string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsynchroonBerichtResponse'
        204:
          description: No messages available within the specified timeout period.
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    delete:
      tags:
        - Notificaties
      summary: Lees en verwijder bericht
      operationId: LeesEnVerwijderBericht
      parameters:
        - name: registerId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: OK
          headers:
            Content-Type:
              required: true
              schema:
                type: string
                description: Media-type of the resource
                default: application/atom+xml;type=entry;charset=utf-8
            BrokerProperties:
              description: >-
                JSON-encoded representation for the unit of communication
                between Service Bus clients. More info on:
                https://learn.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties
              required: true
              schema:
                type: object
              example:
                CorrelationId: 44d276e3-81a6-410c-a1ba-06573f254851
                LockToken: 73f378c2-2c64-403b-91df-a711cc56cbb0
                MessageId: random string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsynchroonBerichtResponse'
        204:
          description: No messages available within the specified timeout period.
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
  '/socialeHuisvesting/notificaties/{registerId}/messages/{messageId}/{lockToken}':
    put:
      tags:
        - Notificaties
      summary: Ontgrendel bericht
      operationId: PUT_UnlockBericht
      parameters:
        - name: registerId
          in: path
          required: true
          schema:
            type: string
        - name: messageId
          in: path
          description: ''
          required: true
          schema:
            type: string
        - name: lockToken
          in: path
          description: ''
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Message successfully unlocked.
          headers:
            Content-Type:
              required: true
              schema:
                type: string
                description: Media-type of the resource
                default: application/atom+xml;type=entry;charset=utf-8
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
    delete:
      tags:
        - Notificaties
      summary: Verwijder bericht
      operationId: DELETE_Bericht
      parameters:
        - name: registerId
          in: path
          required: true
          schema:
            type: string
        - name: messageId
          in: path
          description: ''
          required: true
          schema:
            type: string
        - name: lockToken
          in: path
          description: ''
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: Message successfully deleted.
          headers:
            Content-Type:
              required: true
              schema:
                type: string
                description: Media-type of the resource
                default: application/atom+xml;type=entry;charset=utf-8
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen/{vmswWoningId}/markthuurwaarden':
    get:
      tags:
        - CWR-Markthuurwaarden
      description: Markthuurwaarden ophalen voor een woning op basis van het VmswWoningId.
      operationId: GET_GeefMarkthuurwaarde
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarkthuurwaardeResponse'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'
  '/socialeHuisvesting/woningen/markthuurwaarden/simulatie':
    post:
      tags:
        - CWR-Markthuurwaarden
      description: Markthuurwaarden berekenen op basis van opgegeven (tijdelijke) woningkenmerkscores. Deze scores worden NIET opgeslagen.
      operationId: POST_SimuleerMarkthuurwaarde
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WoningKenmerkScoreLijst'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarkthuurwaardeSimulatieResponse'
        204:
          description: No messages available within the specified timeout period.
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen/{vmswWoningId}/conditiescore':
    get:
      tags:
        - CWR-Conditiescore
      description: Conditiescore ophalen voor een woning op basis van het VmswWoningId.
      operationId: GET_GeefConditiescore
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConditiescoreResponse'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen/conditiescore/simulatie':
    post:
      tags:
        - CWR-Conditiescore
      description: Conditiescore berekenen op basis van opgegeven (tijdelijke) woningkenmerkscores. Deze scores worden NIET opgeslagen.
      operationId: POST_SimuleerConditiescore
      parameters:
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WoningKenmerkScoreLijst'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConditiescoreSimulatieResponse'
        204:
          description: No messages available within the specified timeout period.
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'

  '/socialeHuisvesting/woningen/{vmswWoningId}/energiecorrectie':
    get:
      tags:
        - CWR-Energiecorrectie
      description: Energiecorrectie data ophalen voor een woning op basis van het VmswWoningId.
      operationId: GET_GeefEnergiecorrectie
      parameters:
        - name: vmswWoningId
          in: path
          required: true
          schema:
            type: string
        - name: epcVersie
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/EpcVersie'
            default: Huidig
        - name: datumVanaf
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: datumTot
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: x-correlation-id
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Correlation-Id'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WoningEnergiecorrectieResponse'
        400:
          description: Validatiefouten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsValidationErrorExtension'
        401:
          $ref: '#/components/responses/InvalidAuthorization'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/UnexpectedServerError'
        502:
          $ref: '#/components/responses/BadGateway'
        503:
          $ref: '#/components/responses/ServiceUnavailable'
        504:
          $ref: '#/components/responses/GatewayTimeout'


components:
  responses:
    #HTTP Status 400
    BadRequest:
      description: "Invalid data supplied"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 401
    InvalidAuthorization:
      description: "Invalid authorization"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 403
    Forbidden:
      description: "Authentication failed"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 404
    NotFound:
      description: "Resource not found"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 412
    PreConditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 500
    UnexpectedServerError:
      description: "Unexpected Server Error"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 502
    BadGateway:
      description: "Bad Gateway"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 503
    ServiceUnavailable:
      description: "Service unavailable"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    #HTTP Status 504
    GatewayTimeout:
      description: "Gateway Timeout"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    Response:
      description: The object containing the result
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
  schemas:
    Correlation-Id:
      description: "ID of the transaction. Use this ID for log tracing and incident handling."
      type: string
      maxLength: 36
      minLength: 10

    #----------------------- START CIR payloads to be replaced -------------------------------

    DossierDienstZoekCriteria:
      type: object
      properties:
        dossierType:
          $ref: '#/components/schemas/RegistrationDossierTypeWaarden'
        dossierStatus:
          $ref: '#/components/schemas/DossierStatusCodeWaarden'
        dossierNummer:
          maxLength: 15
          type: string
          description: Dossiernummer
          nullable: true
        postCode:
          maxLength: 15
          type: string
          description: Postcode van de personen in het dossier.
          nullable: true
        aanvragerRijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer van de personen in het dossier.
          nullable: true
        creatieDatumVanaf:
          type: string
          description: Vroegste datum waarop het dossier werd aangemaakt.
          format: date-time
          nullable: true
        creatieDatumTot:
          type: string
          description: Laatste datum waarop het dossier werd aangemaakt.
          format: date-time
          nullable: true
        updateDatumVanaf:
          type: string
          description: Vroegste datum waarop het dossier werd gewijzigd.
          format: date-time
          nullable: true
        updateDatumTot:
          type: string
          description: Laatste datum waarop het dossier werd gewijzigd.
          format: date-time
          nullable: true
        ontvangstDatumVanaf:
          type: string
          description: Vroegste datum waarop het dossier ontvangen werd in het CIR.
          format: date-time
          nullable: true
        ontvangstDatumTot:
          type: string
          description: Laatste datum waarop het dossier ontvangen werd in het CIR.
          format: date-time
          nullable: true
        nietGesynchroniseerd:
          type: boolean
          description: >-
            Geeft aan of de laatste versie van het dossier reeds werd
            gesynchroniseerd.
          nullable: true
        partijCode:
          maxLength: 15
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstZoekResultaat:
      type: object
      properties:
        dossierType:
          $ref: '#/components/schemas/RegistrationDossierTypeWaarden'
        dossierStatus:
          $ref: '#/components/schemas/DossierStatusCodeWaarden'
        dossierNummer:
          maxLength: 15
          type: string
          nullable: true
        inschrijvingsDatum:
          type: string
          format: date-time
          nullable: true
        creatieDatum:
          type: string
          format: date-time
        laatsteWijzigingsDatum:
          type: string
          format: date-time
          nullable: true
        voorNaam:
          maxLength: 48
          type: string
          nullable: true
        naam:
          maxLength: 128
          type: string
          nullable: true
        aanvragerRijksregisternummer:
          maxLength: 15
          type: string
          nullable: true
        versieNummer:
          type: integer
          format: int32
      additionalProperties: false
      nullable: true
    RegistrationDossierTypeWaarden:
      enum:
        - RFH
        - RFM
        - VMU
        - RMA
      type: string
      description: >-
        <p>Members:</p><ul><li><i>RFH</i>-Aanvraag voor wonen </li >
        <li><i>RFM</i>-Interne mutatie aanvraag </li > <li><i>VMU</i>-Verplichte
        mutatie </li > <li><i>RMA</i>-Manuele inschrijving </li > </ul>
      nullable: true
    DossierStatusCodeWaarden:
      enum:
        - REG
        - CHKO
        - CHKS
        - OFFER
        - WAITS
        - RJCT
        - RFSD
        - INFOS
        - SAVED
        - TEMP
        - INFOR
        - CHKR
        - WAITO
        - ARCH
        - CNRQ
        - AIIR
        - TREG
      type: string
      description: >-
        <p>Members:</p><ul><li><i>REG</i>-Ingeschreven </li > <li><i>CHKO</i>-in
        onderzoek verhaal </li > <li><i>CHKS</i>-In onderzoek </li >
        <li><i>OFFER</i>-In wacht in aanbod </li > <li><i>WAITS</i>-In wacht op
        eigen vraag </li > <li><i>RJCT</i>-Geschrapt </li >
        <li><i>RFSD</i>-Geweigerd </li > <li><i>INFOS</i>-In onderzoek: extra
        info gevraagd </li > <li><i>SAVED</i>-Opgeslagen </li >
        <li><i>TEMP</i>-Tijdelijk opgeslagen </li >
        <li><i>INFOR</i>-Ingeschreven in onderzoek </li >
        <li><i>CHKR</i>-Ingeschreven in onderzoek </li > <li><i>WAITO</i>-in
        wacht na aanbod </li > <li><i>ARCH</i>-Gearchiveerd </li >
        <li><i>CNRQ</i>-Wachten op dossierdeelname </li > <li><i>AIIR</i>-Extra
        inkomen info gevraagd </li > <li><i>TREG</i>-Tijdelijk na registratie
        </li > </ul>
      nullable: true
    DossierDienstZoekResultaten:
      type: object
      properties:
        dossiers:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstZoekResultaat'
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossier:
      type: object
      properties:
        dossierStatusHistoriek:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierStatusHistoriek'
          description: Historiek van Statuswijzigingen
          nullable: true
        dossierInkomstenSamenvattingen:
          $ref: '#/components/schemas/DossierDienstDossierInkomstenSamenvattingen'
        dossierPersonen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierPersoon'
          description: Contacten
          nullable: true
        dossierLocatieVoorkeuren:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierVoorkeurLocatie'
          description: Locatie Voorkeuren
          nullable: true
        dossierOptioneleVoorkeuren:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierOptioneleVoorkeur'
          description: Locatie Voorkeuren
          nullable: true
        dossierEigendommen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierEigendom'
          description: Eigendommen
          nullable: true
          readOnly: true
        dossierDienstDossierDomicilieHistoriek:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierDomiciliePeriode'
          description: Domicilie Historiek
          nullable: true
          readOnly: true
        dossierBijlages:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierBijlage'
          description: Bijlages
          nullable: true
        dossierBetrokkenPartijen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierPartij'
          description: Betrokken Partijen (primaire / secundaire verhuurders,...)
          nullable: true
        bewindvoerder:
          $ref: '#/components/schemas/DossierDienstDossierBewindvoerder'
        oudDossier:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstOudDossier'
          nullable: true
        aanvaardingDossiers:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierComment'
          description: Dossier Dienst Dossier Comment
          nullable: true
        dossierZwarteLijsten:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierZwarteLijst'
          description: Dossier Dienst Dossier BlackList
          nullable: true
        dossierPanden:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierPand'
          description: Dossier Dienst Dossier Pand Aanbiedingen
          nullable: true
        dossierHuidigInkomen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierHuidigInkomen'
          description: Huidig Inkomen
          nullable: true
          readOnly: true
        dossierNummer:
          maxLength: 15
          type: string
          description: DossierNummer
          nullable: true
          example: 2022.09.07.0019
        dossierType:
          $ref: '#/components/schemas/RegistrationDossierTypeWaarden'
        statusCode:
          $ref: '#/components/schemas/DossierStatusCodeWaarden'
        woningVoorkeuren:
          $ref: '#/components/schemas/DossierDienstDossierVoorkeuren'
        inschrijving:
          $ref: '#/components/schemas/DossierDienstDossierInschrijving'
        schrapping:
          $ref: '#/components/schemas/DossierDienstDossierSchrapping'
        woningNood:
          $ref: '#/components/schemas/DossierDienstDossierWoningNood'
        woonsituaties:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierWoonsituatie'
          description: Lijst van woonsituaties voor het dossier
          nullable: true
          readOnly: true
        versieNummer:
          type: integer
          description: Versie nummer van dit dossier
          format: int32
          example: 3
        mogelijkeActies:
          type: array
          items:
            $ref: '#/components/schemas/DossierActieCodeWaarden'
          description: mogelijke acties op het dossier
          nullable: true
        inkomenVoorwaardeStatusCode:
          $ref: '#/components/schemas/InkomenVoorwaardeStatusCodeWaarden'
        eigendomVoorwaardeStatusCode:
          $ref: '#/components/schemas/EigendomVoorwaardeStatusCodeWaarden'
        tijdstipLaatsteHandeling:
          type: string
          description: >-
            Tijdstip waarop het dossier het laatste werd behandeld door
            Kandidaat-huurder, Woonmaatschappij of automatische actie uit het
            CIR.
          format: date-time
          nullable: true
        volmachtWijzigingen:
          $ref: '#/components/schemas/RegistratieVolmachtWijzigingenCodeWaarden'
      additionalProperties: false
      description: Description
      nullable: true
    DossierDienstDossierStatusHistoriek:
      type: object
      properties:
        statusCodeVan:
          $ref: '#/components/schemas/DossierStatusCodeWaarden'
        statusCodeTot:
          $ref: '#/components/schemas/DossierStatusCodeWaarden'
        actie:
          $ref: '#/components/schemas/DossierActieWaarden'
        statusDatum:
          type: string
          description: Datum waarop de status van het dossier wijzigde
          format: date-time
          nullable: true
          example: '2022-10-01T09:45:00.000+02:00'
        partijCode:
          maxLength: 15
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
        commentaar:
          type: string
          description: Notificatie voor gebruiker
          nullable: true
      additionalProperties: false
      description: Historiek van satuswijzigingen
      nullable: true
    DossierDienstDossierInkomstenSamenvattingen:
      type: object
      properties:
        totaalInkomsten:
          type: number
          description: Som van alle inkomsten
          format: double
          nullable: true
        totaalInkomstenGeindexeerd:
          type: number
          description: Geïndexeeerde som van alle inkomsten
          format: double
          nullable: true
        dossierInkomstenSamenvattingen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierInkomstenSamenvatting'
          description: Inkomsten  Samenvattingen
          nullable: true
          readOnly: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierPersoon:
      type: object
      properties:
        contactTypeCode:
          $ref: '#/components/schemas/ContactTypeCodeWaarden'
        contactAardCode:
          $ref: '#/components/schemas/ContactAardCodeWaarden'
        geboorteDatum:
          type: string
          description: Geboortedatum
          format: date-time
          nullable: true
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer
          nullable: true
        voorNaam:
          maxLength: 48
          type: string
          description: Voornaam van contact/gezinslid
          nullable: true
          example: Marc
        naam:
          maxLength: 128
          type: string
          description: Achternaam van het contact/gezinslid
          nullable: true
          example: Molenbergs
        genderCode:
          $ref: '#/components/schemas/GenderCodeWaarden'
        burgelijkeStaatCode:
          $ref: '#/components/schemas/BurgelijkeStaatCodeWaarden'
        mantelzorgGeefCode:
          $ref: '#/components/schemas/MantelzorgCodeWaarden'
        mantelzorgGeefPostcode:
          maxLength: 15
          type: string
          description: >-
            Dit is de postcode van de gemeenten van de derde die mantzorg geeft
            van het  gezinslid.
          nullable: true
        mantelzorgKrijgCode:
          $ref: '#/components/schemas/MantelzorgCodeWaarden'
        mantelzorgKrijgPostcode:
          maxLength: 15
          type: string
          description: >-
            Dit is de postcode van de gemeenten van de derde die mantzorg krijgt
            van het  gezinslid.
          nullable: true
        taalkennisCode:
          $ref: '#/components/schemas/TaalkennisCodeWaarden'
        taalkennisSneltestCode:
          $ref: '#/components/schemas/TaalkennisSneltestCodeWaarden'
        email:
          maxLength: 50
          type: string
          description: E-mailadres van het contact/gezinslid
          nullable: true
          example: Marc.Molenbergs@hotmail.be
        telefoon1:
          maxLength: 15
          type: string
          description: Telefoonnummer van het contact/gezinslid
          nullable: true
          example: 015/43 43 43
        telefoon2:
          maxLength: 15
          type: string
          description: Telefoonnummer van het contact/gezinslid
          nullable: true
          example: 0477 / 43 43 43
        adressen:
          $ref: '#/components/schemas/DossierDienstDossierPersoonAdressen'
        beperkingMutualiteitErkenningCode:
          $ref: '#/components/schemas/BeperkingMutualiteitErkenningCodeWaarden'
        verblijfsAdresCode:
          $ref: '#/components/schemas/VerblijfsAdresCodeWaarden'
        contactInvaliditeitCode:
          $ref: '#/components/schemas/ContactInvaliditeitCodeWaarden'
        werkzaamheidGeschiedenisCode:
          $ref: '#/components/schemas/WerkzaamheidGeschiedenisCodeWaarden'
        contactSubTypeCode:
          $ref: '#/components/schemas/ContactSubTypeCodeWaarden'
        contactAantalKinderenCode:
          $ref: '#/components/schemas/ContactAantalKinderenCodeWaarden'
        contactPersoonTenLaste:
          $ref: '#/components/schemas/RegistratieContactPersoonTenLaste'
        contactErkenningAfhankelijk:
          type: array
          items:
            $ref: '#/components/schemas/RegistratieContactErkenningAfhankelijk'
          description: Geeft aan of de financiële afhankelijkheid erkend is
          nullable: true
          example:
            - LLFP
            - BLIND
            - ULAM
            - ULPA
        registratieContactErkenningInformatieVoorKind:
          type: string
          description: Bijkomende info uit ksz rond handicap
          nullable: true
        registratieContactErkenningInformatieVoorVolwassenen:
          type: string
          description: Bijkomende info uit ksz rond handicap
          nullable: true
        bewindvoerderCode:
          $ref: '#/components/schemas/RegistratieContactBewindvoerderCode'
        bewindvoerderRijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer van bewindvoerder (indien bekend)
          nullable: true
          example: '2209280001'
        verbondenAanVennootschap:
          $ref: '#/components/schemas/RegistratieContactVerbondenAanVennootschap'
      additionalProperties: false
      nullable: true
    DossierDienstDossierVoorkeurLocatie:
      type: object
      properties:
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: >-
            Geeft de NIScode van de gemeente weer, waar de Kandidaat-huurder wil
            wonen.
          nullable: true
          example: '41002'
        wijken:
          maxLength: 3000
          type: string
          description: >-
            Geeft de wijk van de gemeente/deelgemeenten weer, waar de
            Kandidaat-huurder wil wonen.
          nullable: true
          example: Ajoin Koté,Amylum Waik
        sorteerIndex:
          type: integer
          description: Sortering van de vragen
          format: int32
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierOptioneleVoorkeur:
      type: object
      properties:
        partijCode:
          maxLength: 15
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
          example: '5025'
        optioneleVoorkeurVraagCode:
          $ref: '#/components/schemas/OptioneleVoorkeurVraagCodeWaarden'
        optioneleVoorkeurAntwoordCode:
          maxLength: 5
          type: string
          description: Geeft het antwoord op de optionele voorkeurvragen
          nullable: true
          example: 'YES'
      additionalProperties: false
      nullable: true
    DossierDienstDossierEigendom:
      type: object
      properties:
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer gekoppeld aan een eigendom.
          nullable: true
        eigendomTypeCode:
          $ref: '#/components/schemas/EigendomTypeCodeWaarden'
        eigendomAardCode:
          $ref: '#/components/schemas/EigendomAardCodeWaarden'
        waarde:
          maxLength: 15
          type: string
          description: Het percentage van de woning die de persoon bezit.
          nullable: true
        perceelID:
          maxLength: 50
          type: string
          description: Perceel identificatie
          nullable: true
        justificatie:
          type: string
          description: Opmerking van KH bij een gekende eigendom
          nullable: true
        justificatieDeclaratie:
          type: string
          description: Opmerking van KH bij het aangeven van een eigendom
          nullable: true
        straat:
          maxLength: 100
          type: string
          description: Straatnaam van het onroerend goed
          nullable: true
        huisNummer:
          maxLength: 12
          type: string
          description: Huisnummer van het onroerend goed
          nullable: true
        gemeente:
          maxLength: 100
          type: string
          description: Gemeente waarin het onroerend goed zich bevindt
          nullable: true
        postCode:
          maxLength: 15
          type: string
          description: Postcode van de gemeente waarin het onroerend ged zich bevindt
          nullable: true
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode van de gemeente waarin het onroerend ged zich bevindt
          nullable: true
        landCode:
          maxLength: 5
          type: string
          description: Code van het land waar het onroerend ged zich bevindt
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierDomiciliePeriode:
      type: object
      properties:
        landCode:
          maxLength: 5
          type: string
          description: Code van het land waar het gezinslid verbleef
          nullable: true
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer gekoppeld aan een dossier.
          nullable: true
          example: '2209280001'
        postCode:
          maxLength: 15
          type: string
          description: Postcode van het adress waar het gezinslid verbleef.
          nullable: true
        gemeente:
          maxLength: 100
          type: string
          description: Gemeente het gezinslid verbleef.
          nullable: true
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode van de gemeente waar het gezinslid verbleef
          nullable: true
        straat:
          maxLength: 50
          type: string
          description: Straat het gezinslid verbleef.
          nullable: true
        huisNummer:
          maxLength: 15
          type: string
          description: Huisnummer van de woning waarin het gezinslid verbleef.
          nullable: true
        huisNummerBus:
          maxLength: 5
          type: string
          description: Busnummer van de woning waarin het gezinslid verbleef
          nullable: true
        beginDatum:
          type: string
          description: Begindatum vanaf wanneer het gezinslid in de woning verbleef
          format: date-time
          example: '2022-09-25'
        eindDatum:
          type: string
          description: "Einddatum tot wanneer het geznslid in de woning verbleef\r\nEinddatum tot wanneer het geznslid in de woning verbleef"
          format: date-time
          nullable: true
          example: '2022-09-28'
      additionalProperties: false
      nullable: true
    DossierDienstDossierBijlage:
      type: object
      properties:
        bestandNaam:
          maxLength: 225
          type: string
          description: Naam van het bestand
          nullable: true
        bestandGrootte:
          type: integer
          description: Grootte van het bestand
          format: int32
          nullable: true
        bestandExtensieCode:
          $ref: '#/components/schemas/BestandExtensieCodeWaarden'
        identificatie:
          maxLength: 225
          type: string
          description: Identificatie naam van de bijlage
          nullable: true
        indentificatieRijksregisternummer:
          maxLength: 15
          type: string
          description: RRN van persoon die het bestand opgeladen heeft
          nullable: true
        identificatieBestandCode:
          $ref: '#/components/schemas/IdentificatieBestandCodeWaarden'
        identificatieBestandIndex:
          type: integer
          format: int32
        bestand:
          type: string
          description: Het effectieve bestand zelf
          nullable: true
        opmerking:
          type: string
          description: Opmerkingen die bij het bestand kunnen worden toegevoed\
          nullable: true
        bijlageDatum:
          type: string
          description: Datum waarop de bijlage werd toegevoegd
          format: date-time
        aanvaardingBijlageCode:
          $ref: '#/components/schemas/AanvaardingBijlageCodeWaarden'
      additionalProperties: false
      nullable: true
    DossierDienstDossierPartij:
      type: object
      properties:
        partijTypeCode:
          $ref: '#/components/schemas/DossierPartijTypeCodeWaarden'
        partijRolCode:
          $ref: '#/components/schemas/DossierPartijRolCodeWaarden'
        partijIdentificatie:
          type: string
          description: >-
            Ondernemingsnummer van de woonmaatschappij, rijksregisternummer voor
            kandidaat-huurder.
          nullable: true
        postCode:
          maxLength: 15
          type: string
          description: Hoofdzetel van de woonmaatschappij.
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: Gemeente van de hoofdzetel van de woonmaatschappij
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode van de gemeente van de betrokken partij
          nullable: true
        straat:
          maxLength: 100
          type: string
          description: Straat van de hoofdzetel van de woonmaatschappij.
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 12
          type: string
          description: Nummer van de  hoofdzetel van de woonmaatschappij.
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 10
          type: string
          description: Busnummer van de hoofdzetel van de woonmaatschappij.
          nullable: true
          example: X
      additionalProperties: false
      description: Alle betrokken partijen(primaire/secundaire verhuurders)
      nullable: true
    DossierDienstDossierBewindvoerder:
      type: object
      properties:
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer van bewindgevoerde
          nullable: true
          example: '2209280001'
        voorNaam:
          maxLength: 48
          type: string
          description: Voornaam van bewindvoerder
          nullable: true
          example: Marc
        naam:
          maxLength: 128
          type: string
          description: Achternaam van bewindvoerder
          nullable: true
          example: Molenbergs
        email:
          maxLength: 50
          type: string
          description: E-mailadres van bewindvoerder
          nullable: true
          example: Marc.Molenbergs@hotmail.be
        telefoon1:
          maxLength: 15
          type: string
          description: Telefoonnummer van bewindvoerder
          nullable: true
          example: 015/43 43 43
        telefoon2:
          maxLength: 15
          type: string
          description: Telefoonnummer van bewindvoerder
          nullable: true
          example: 0477 / 43 43 43
        postCode:
          maxLength: 15
          type: string
          description: Postcode van de domicilie van bewindvoerder
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: Naam van de gemeente van bewindvoerder
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode
          nullable: true
          example: 41002A
        landCode:
          maxLength: 5
          type: string
          nullable: true
        straat:
          maxLength: 100
          type: string
          description: Straat van bewindvoerder
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 12
          type: string
          description: Huisnummer van bewindvoerder
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 10
          type: string
          description: Bus nr van bewindvoerder
          nullable: true
          example: X
      additionalProperties: false
      nullable: true
    DossierDienstOudDossier:
      type: object
      properties:
        oudDossierNummer:
          maxLength: 250
          type: string
          nullable: true
          example: '2022.03.25.0001 '
        partijCode:
          maxLength: 15
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
          example: '3343'
      additionalProperties: false
      nullable: true
    DossierDienstDossierComment:
      type: object
      properties:
        aanvaardingTypeCode:
          $ref: '#/components/schemas/AanvaardingDossierTypeCode'
        aanvaardingCode:
          $ref: '#/components/schemas/AanvaardingDossierCode'
        opmerking:
          type: string
          description: opmerking aanvaarding
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierZwarteLijst:
      type: object
      properties:
        partijIdentificatie:
          maxLength: 15
          type: string
          description: Rijksregisternummer van kandidaat-hurder/ gezinslid
          nullable: true
        reden:
          $ref: '#/components/schemas/ZwarteLijstRedenCodeWaarden'
        datum:
          type: string
          description: Datum waarop de persoon op de zwarte lijst werd gezet
          format: date-time
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierPand:
      type: object
      allOf:
        - $ref: '#/components/schemas/DossierDienstDossierPandUpdate'
      properties:
        pandAanbiedingStatus:
          $ref: '#/components/schemas/DossierPandAanbiedingStatusCodeWaarden'
        partijCode:
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
          example: '1234'
        aanbiedingsDatum:
          type: string
          description: Datum van aanmaak van de aanbieding
          format: date-time
          nullable: true
        statusDatum:
          type: string
          description: Datum (laatste) status wijziging
          format: date-time
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierHuidigInkomen:
      type: object
      properties:
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer gekoppeld aan een dossier.
          nullable: true
        authentiekebron:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierIncomeAuthentiekebron'
          nullable: true
        gewerktLaatste6Maand:
          type: string
          description: >-
            Geeft per maand aan of de kandidaat-huurder werkte of niet (t= heeft
            gewerkt, f= heeft niet gewerkt).
          nullable: true
          example: T;F;T;F;T;F
        schuldenregeling:
          $ref: '#/components/schemas/SchuldenregelingCodeWaarden'
        onderhoudsgelden:
          $ref: '#/components/schemas/OnderhoudsgeldenCodeWaarden'
      additionalProperties: false
      nullable: true
    GenderCodeWaarden:
      enum:
        - MAN
        - VROUW
        - X
      type: string
      description: >-
        Gender Code (GNDR)<p>Members:</p><ul><li><i>MAN</i>-Mannelijk </li >
        <li><i>VROUW</i>-Vrouwelijk </li > <li><i>X</i>-Onbekend </li > </ul>
      nullable: true
    DossierDienstDossierVoorkeuren:
      type: object
      properties:
        maximaalHuurBedrag:
          type: integer
          description: Maximale huurbedrag die de kandidaathuurder wenst te betalen
          format: int32
          nullable: true
        maximaalHuurLast:
          type: integer
          description: Maximale huurlast die de kandidaathuurder wenst te betalen
          format: int32
          nullable: true
          example: 500
        minimumAantalKamers:
          type: integer
          description: Het minimaal aantal kamers die het gezin wenst
          format: int32
          nullable: true
          example: 2
        maximumAantalKamers:
          type: integer
          description: Het maximaal aantal kamers die het gezin wenst
          format: int32
          nullable: true
          example: 3
        woningTypeCode:
          type: array
          items:
            $ref: '#/components/schemas/WoningTypeCodeWaarden'
          description: Type van de woning die het gezin wenst
          nullable: true
          example:
            - H
        lichamelijkeBeperkingCode:
          $ref: '#/components/schemas/LichamelijkeBeperkingCodeWaarden'
      additionalProperties: false
      description: Woning voorkeuren voor het dossier
      nullable: true
    DossierDienstDossierInschrijving:
      type: object
      properties:
        hulpCode:
          $ref: '#/components/schemas/InschrijfhulpCodeWaarden'
        hulpInformerenCode:
          $ref: '#/components/schemas/InschrijfhulpInformerenCodeWaarden'
        hulpNaam:
          type: string
          description: Naam van organisatie die KH hielp inschrijven
          nullable: true
        hulpEmail:
          maxLength: 50
          type: string
          description: Email adress van inschrijfhulp
          nullable: true
          example: een.goed.mens@live.be
        datum:
          type: string
          description: Eerste indieningsdatum van het dossier
          format: date-time
          nullable: true
      additionalProperties: false
      description: Inschrijvings data van het dossier
      nullable: true
    DossierDienstDossierSchrapping:
      type: object
      properties:
        datum:
          type: string
          description: Datum van schrapping van het dossier
          format: date-time
          nullable: true
        redenCode:
          $ref: '#/components/schemas/SchrappingRedenCodeWaarden'
      additionalProperties: false
      description: Schrapping informatie binnen het dossier
      nullable: true
    DossierDienstDossierWoningNood:
      type: object
      properties:
        redenCode:
          $ref: '#/components/schemas/WoningnoodRedenEnumCode'
        omschrijving:
          type: string
          description: Woningnood reden omschrijving
          nullable: true
        indentificatie:
          type: string
          description: Identificatie  van de woonnood
          nullable: true
      additionalProperties: false
      description: Woningnood voor het dossier
      nullable: true
    DossierActieCodeWaarden:
      enum:
        - OFFER
        - CCL
        - OBJCT
        - REQI
        - REF
        - RJCT
        - WAIT
        - WAKE
        - VOL
        - ACC
        - APP
        - ARCH
        - FRAUD
        - DEC
        - NCOMP
        - NORES
        - OVRVW
        - REG
        - RSPND
        - SAVE
        - UNDO
        - ACTUA
        - MIGRA
        - NOACT
        - CCLGW
        - NOCOMP
        - CONF
        - UNDNR
        - UNDRF
        - OND
      type: string
      description: >-
        nvarchar(5)<p>Members:</p><ul><li><i>OFFER</i>-Aanbod Maken </li >
        <li><i>CCL</i>-Annuleren </li > <li><i>OBJCT</i>-Annuleren </li >
        <li><i>REQI</i>-Bijkomende informatie vragen </li >
        <li><i>REF</i>-Weigeren </li > <li><i>RJCT</i>-Afwijzen </li >
        <li><i>WAIT</i>-In wacht zetten </li > <li><i>WAKE</i>-Uit wacht halen
        </li > <li><i>VOL</i>-vrijwillig vertrekken </li > <li><i>ACC</i>-Aanbod
        geaccepteerd </li > <li><i>APP</i>-Van toepassing zijn </li >
        <li><i>ARCH</i>-Archief </li > <li><i>FRAUD</i>-frauduleus </li >
        <li><i>DEC</i>-Overleden </li > <li><i>NCOMP</i>-Niet-conform </li >
        <li><i>NORES</i>-Geen antwoord </li > <li><i>OVRVW</i>-Overzicht </li >
        <li><i>REG</i>-Register </li > <li><i>RSPND</i>-Antwoorden </li >
        <li><i>SAVE</i>-Opslaan </li > <li><i>UNDO</i>-Ga terug naar de vorige
        echte staat </li > <li><i>ACTUA</i>-Actualisatie </li >
        <li><i>MIGRA</i>-Via de actualisatie zijn wijzigingen aangebracht </li >
        <li><i>NOACT</i>-Actie na 2 jaar inactiviteit </li >
        <li><i>CCLGW</i>-Gegronde weigering door kandidaat-huurder na aanbod
        </li > <li><i>NOCOMP</i>-Schrapping door niet voldoen
        inschrijvingsvoorwaarde </li > <li><i>CONF</i>-Bevestigen van dossier na
        migratie </li > <li><i>UNDNR</i>-Ongedaan maken van vroegere niet
        reactie </li > <li><i>UNDRF</i>-Ongedaan maken van vroegere weigering
        </li > <li><i>OND</i>-Schrapping door ontdubbeling </li > </ul>
      nullable: true
    InkomenVoorwaardeStatusCodeWaarden:
      enum:
        - EI
        - MCN
        - OK
      type: string
      description: >-
        Resultaat van de automatische
        controle<p>Members:</p><ul><li><i>EI</i>-Er is extra informatie nodig
        </li > <li><i>MCN</i>-Er kan momenteel geen controle uitgevoerd worden
        </li > <li><i>OK</i>-U Voldoet </li > </ul>
      nullable: true
    EigendomVoorwaardeStatusCodeWaarden:
      enum:
        - MCN
        - OK
      type: string
      description: >-
        Resultaat van de automatische
        controle<p>Members:</p><ul><li><i>MCN</i>-Er kan momenteel geen controle
        uitgevoerd worden </li > <li><i>OK</i>-U Voldoet </li > </ul>
      nullable: true
    RegistratieVolmachtWijzigingenCodeWaarden:
      enum:
        - 'NO'
        - 'YES'
        - 'UNK'
      type: string
      description: >-
        <p>Members:</p><ul>
        <li><i>NO</i>-Primaire woonmaatschappij mag geen aanpassingen doen op vraag van de KH.</li >
        <li><i>YES</i>-Primaire woonmaatschappij mag aanpassingen doen op vraag van de KH.</li >
        <li><i>UNK</i>-Onbekend</li ></ul>
      nullable: true
    DossierActieWaarden:
      enum:
        - OFFER
        - CCL
        - OBJCT
        - REQI
        - REF
        - RJCT
        - WAIT
        - WAKE
        - VOL
        - ACC
        - APP
        - ARCH
        - FRAUD
        - DEC
        - NCOMP
        - NORES
        - OVRVW
        - REG
        - RSPND
        - SAVE
        - UNDO
        - ACTUA
        - MIGRA
        - NOACT
        - CCLGW
        - NOCOMP
        - CONF
        - UNDNR
        - UNDRF
        - OND
      type: string
      description: >-
        <p>Members:</p><ul><li><i>OFFER</i>-Aanbod Maken </li >
        <li><i>CCL</i>-Annuleren </li > <li><i>OBJCT</i>-Annuleren </li >
        <li><i>REQI</i>-Bijkomende informatie vragen </li >
        <li><i>REF</i>-Weigeren </li > <li><i>RJCT</i>-Afwijzen </li >
        <li><i>WAIT</i>-In wacht zetten </li > <li><i>WAKE</i>-Uit wacht halen
        </li > <li><i>VOL</i>-vrijwillig vertrekken </li > <li><i>ACC</i>-Aanbod
        geaccepteerd </li > <li><i>APP</i>-Van toepassing zijn </li >
        <li><i>ARCH</i>-Archief </li > <li><i>FRAUD</i>-frauduleus </li >
        <li><i>DEC</i>-Overleden </li > <li><i>NCOMP</i>-Niet-conform </li >
        <li><i>NORES</i>-Geen antwoord </li > <li><i>OVRVW</i>-Overzicht </li >
        <li><i>REG</i>-Register </li > <li><i>RSPND</i>-Antwoorden </li >
        <li><i>SAVE</i>-Opslaan </li > <li><i>UNDO</i>-Ga terug naar de vorige
        echte staat </li > <li><i>ACTUA</i>-Actualisatie </li >
        <li><i>MIGRA</i>-Via de actualisatie zijn wijzigingen aangebracht </li >
        <li><i>NOACT</i>-Actie na 2 jaar inactiviteit </li >
        <li><i>CCLGW</i>-Gegronde weigering door kandidaat-huurder na aanbod
        </li > <li><i>NOCOMP</i>-Schrapping door niet voldoen
        inschrijvingsvoorwaarde </li > <li><i>CONF</i>-Bevestigen van dossier na
        migratie </li > <li><i>UNDNR</i>-Ongedaan maken van vroegere niet
        reactie </li > <li><i>UNDRF</i>-Ongedaan maken van vroegere weigering
        </li > <li><i>OND</i>-Schrapping door ontdubbeling </li > </ul>
      nullable: true
    DossierDienstDossierInkomstenSamenvatting:
      type: object
      properties:
        inkomstenJaar:
          type: string
          description: Jaar van het referentie-inkomen
          nullable: true
          example: '2022'
        belastbaarInkomenAanwezigheidCode:
          $ref: '#/components/schemas/BelastbaarInkomenAanwezigheidCodeWaarden'
        belastbaarInkomenJaarTotaal:
          type: number
          description: >-
            Geeft aan hoeveel het totale belastbare inkomen bedraagt op
            jaarbasis.
          format: double
          nullable: true
          example: 12345
        leefLoonAanwezigheidCode:
          $ref: '#/components/schemas/LeefLoonAanwezigheidCodeWaarden'
        leefLoonJaarTotaal:
          type: number
          description: Geeft aan hoeveel het totale leefloon bedraagt op jaarbasis.
          format: double
          nullable: true
          example: 12345
        inkomensVervangendeTegemoetkomingCode:
          $ref: '#/components/schemas/InkomensVervangendeTegemoetkomingCodeWaarden'
        inkomensVervangendeTegemoetkomingJaarTotaal:
          type: number
          description: >-
            Dit is de intensiteit/aard van verblijf dat het gezinslid zal hebben
            in de sociale woning.
          format: double
          nullable: true
          example: 12345
        inkomensPensioenJaarTotaal:
          type: number
          description: Geeft aan hoeveel pensioen het gezinslid krijgt
          format: double
          nullable: true
          example: 12345
        extraBeroepsBuitenlandInkomstenJaarTotaal:
          type: number
          description: Geeft het niet geïndexeerde bedrag van het buitenlandsinkomen
          format: double
          nullable: true
        extraBeroepsInstellingenInkomenstenJaarTotaal:
          type: number
          description: >-
            Geeft het niet-geïndexeerde inkomensbedrag uit Europese of
            internationale instellingen
          format: double
          nullable: true
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer gekoppeld aan een dossier.
          nullable: true
      additionalProperties: false
      nullable: true
    ContactTypeCodeWaarden:
      enum:
        - _1
        - _2
        - _3
        - _4
        - _5
        - _6
        - _7
        - _8
        - _9
        - _10
        - _11
        - _12
        - _13
        - _14
        - _15
        - _16
        - _17
        - _20
        - _21
        - _22
        - _23
        - _50
        - _51
        - _0
      type: string
      description: >-
        Contact Type Code
        (RCTPL)<p>Members:</p><ul><li><i>_1</i>-Referentiepersoon </li >
        <li><i>_2</i>-Echtgenoot, Echtgenote </li > <li><i>_3</i>-Zoon, Dochter
        </li > <li><i>_4</i>-Schoonzoon, Schoondochter </li >
        <li><i>_5</i>-Kleinzoon, Kleindochter </li > <li><i>_6</i>-Vader, Moeder
        </li > <li><i>_7</i>-Schoonvader, Schoonmoeder </li >
        <li><i>_8</i>-Grootvader, Grootmoeder </li > <li><i>_9</i>-Broer, Zuster
        </li > <li><i>_10</i>-Schoonbroer, Schoonzuster </li >
        <li><i>_11</i>-Verwant, Verwante </li > <li><i>_12</i>-Zonder
        familieverband </li > <li><i>_13</i>-Stiefzoon, Stiefdochter </li >
        <li><i>_14</i>-Achterkleinzoon, Achterkleindochter </li >
        <li><i>_15</i>-Tante, Oom </li > <li><i>_16</i>-Nicht, Neef
        (verwantschap: 3de graad) </li > <li><i>_17</i>-Nicht, Neef
        (verwantschap: 4de graad) </li > <li><i>_20</i>-Gemeenschappen, tehuizen
        </li > <li><i>_21</i>-Partner </li > <li><i>_22</i>-Wettelijk
        samenwonende </li > <li><i>_23</i>-Meemoederschap </li >
        <li><i>_50</i>-SamenwonendePartner </li > <li><i>_51</i>-Samenwonend
        </li > <li><i>_0</i>-Onbekend </li > </ul>
      nullable: true
    ContactAardCodeWaarden:
      enum:
        - DOM
        - COP
        - VRO
        - OTH
        - SDD
      type: string
      description: >-
        Contact Aard Code
        (RCRT)<p>Members:</p><ul><li><i>DOM</i>-Inwonend(domicilie) </li >
        <li><i>COP</i>-Co-ouderschap </li > <li><i>VRO</i>-Bezoekrecht met
        overnachting </li > <li><i>OTH</i>-Ander soort duurzaam verblijf </li >
        <li><i>SDD</i>-Kind gedomicilieerd in buitenland </li > </ul>
      nullable: true
    BurgelijkeStaatCodeWaarden:
      enum:
        - _10
        - _20
        - _25
        - _26
        - _30
        - _40
        - _41
        - _50
        - _51
        - _60
        - _80
        - _81
        - _90
        - _95
        - _96
        - _97
        - _98
      type: string
      description: >-
        Burgelijke Staat<p>Members:</p><ul><li><i>_10</i>-Ongehuwd </li >
        <li><i>_20</i>-Gehuwd </li > <li><i>_25</i>-Nietigverklaring van het
        huwelijk </li > <li><i>_26</i>-Putatief huwelijk </li >
        <li><i>_30</i>-Weduwenaar </li > <li><i>_40</i>-Echtgescheiden </li >
        <li><i>_41</i>-Echtscheiding uitgesproken met toepassing van de wet van
        30 juni 1994 </li > <li><i>_50</i>-Scheiding van tafel en bed en van
        goederen </li > <li><i>_51</i>-Scheiding van tafel en bed en van
        goederen uitgesproken met toepassing van de wet van 30 juni 1994 </li >
        <li><i>_60</i>-Ontbinding van het huwelijk op een bijzondere wijze </li
        > <li><i>_80</i>-Partnerschap </li > <li><i>_81</i>-Beëindiging
        partnerschap </li > <li><i>_90</i>-Onbepaald </li > <li><i>_95</i>-Op
        verklaring zonder bewijs - Ongehuwd </li > <li><i>_96</i>-Op verklaring
        zonder bewijs - Gehuwd </li > <li><i>_97</i>-Op verklaring zonder bewijs
        – Gescheiden </li > <li><i>_98</i>-Op verklaring zonder bewijs – Weduwe
        (naar) </li > </ul>
      nullable: true
    MantelzorgCodeWaarden:
      enum:
        - 'NO'
        - CARER
        - CAREG
      type: string
      description: >-
        Mantelzorg Code (CARE)<p>Members:</p><ul><li><i>NO</i>-Geen Manterzorg
        </li > <li><i>CARER</i>-Krijgt mantelzorg </li > <li><i>CAREG</i>-Geeft
        mantelzorg </li > </ul>
      nullable: true
    TaalkennisCodeWaarden:
      enum:
        - NA
        - 'NO'
        - 'YES'
      type: string
      description: >-
        Resultaat van authentieke
        bron<p>Members:</p><ul><li><i>NA</i>-Taalkennis kan niet gecontroleerd
        worden </li > <li><i>NO</i>-Taalkennis niet in orde </li >
        <li><i>YES</i>-Taalkennis in orde </li > </ul>
      nullable: true
    TaalkennisSneltestCodeWaarden:
      enum:
        - 'NO'
        - 'YES'
      type: string
      description: >-
        <p>Members:</p><ul><li><i>NO</i>-Taalkennis niet in orde </li >
        <li><i>YES</i>-Taalkennis in orde </li > </ul>
      nullable: true
    DossierDienstDossierPersoonAdressen:
      type: object
      properties:
        contactVoorkeurCode:
          $ref: '#/components/schemas/ContactVoorkeurCodeWaarden'
        domicilie:
          $ref: '#/components/schemas/DossierDienstDossierPersoonAdresDomicilie'
        verblijf:
          $ref: '#/components/schemas/DossierDienstDossierPersoonAdresVerblijf'
        contact:
          $ref: '#/components/schemas/DossierDienstDossierPersoonAdresContact'
      additionalProperties: false
      nullable: true
    BeperkingMutualiteitErkenningCodeWaarden:
      enum:
        - 'NO'
        - 'YES'
      type: string
      description: >-
        Beperking Mutualiteit Erkenning Code
        (RRBM)<p>Members:</p><ul><li><i>NO</i>-Geen beperking erkend door
        mutualiteit </li > <li><i>YES</i>-Beperking erkend door mutualiteit </li
        > </ul>
      nullable: true
    VerblijfsAdresCodeWaarden:
      enum:
        - DOM
        - ALT
      type: string
      description: >-
        Verblijfs Adres Code (RADR)<p>Members:</p><ul><li><i>DOM</i>-Domicilie
        Adress </li > <li><i>ALT</i>-Verblijfs Adress </li > </ul>
      nullable: true
    ContactInvaliditeitCodeWaarden:
      enum:
        - NINV
        - INV
      type: string
      description: >-
        Contact Invaliditeit Code (RCNV)<p>Members:</p><ul><li><i>NINV</i>-Geen
        invaliditeit geregistreerd </li > <li><i>INV</i>-Invalidateit gekend en
        geregistreerd </li > </ul>
      nullable: true
    WerkzaamheidGeschiedenisCodeWaarden:
      enum:
        - Y6M
        - N6M
        - NA
      type: string
      description: >-
        Werkzaamheid Geschiedenis Code
        (RCLH)<p>Members:</p><ul><li><i>Y6M</i>-Heeft de afgelopen 6 maanden
        gewerkt </li > <li><i>N6M</i>-Heeft de afgelopen 6 maanden niet gewerkt
        </li > <li><i>NA</i>-Niet ingevuld </li > </ul>
      nullable: true
    ContactSubTypeCodeWaarden:
      enum:
        - PRGA
        - PRT
        - REU
        - SOJ
      type: string
      description: >-
        Contact Sub Type Code
        (RCSU)<p>Members:</p><ul><li><i>PRGA</i>-Zwangerschap / Adoptie </li >
        <li><i>PRT</i>-Partner </li > <li><i>REU</i>-Familie hereniging </li >
        <li><i>SOJ</i>-Sojourner </li > </ul>
      nullable: true
    ContactAantalKinderenCodeWaarden:
      enum:
        - ONE
        - TWO
        - THRIM
      type: string
      description: >-
        Contact Aantal Kinderen Code (RCNC)<p>Members:</p><ul><li><i>ONE</i>-Een
        </li > <li><i>TWO</i>-Twee </li > <li><i>THRIM</i>-Drie of meer </li >
        </ul>
      nullable: true
    RegistratieContactPersoonTenLaste:
      enum:
        - DEP
        - DDEP
      type: string
      description: >-
        <p>Members:</p><ul><li><i>DEP</i>-Ten laste </li >
        <li><i>DDEP</i>-Dubbel ten laste </li > </ul>
      nullable: true
    RegistratieContactErkenningAfhankelijk:
      enum:
        - LLFP
        - BLIND
        - ULAM
        - ULPA
      type: string
      description: >-
        <p>Members:</p><ul><li><i>LLFP</i>-Onderste ledenmaten vijftig percent
        </li > <li><i>BLIND</i>-Volledige blindheid </li >
        <li><i>ULAM</i>-Bovenste ledenmaten geamputeerd </li >
        <li><i>ULPA</i>-upper limbs paralysed </li > </ul>
      nullable: true
    RegistratieContactBewindvoerderCode:
      enum:
        - 'YES'
        - UNK
      type: string
      description: >-
        <p>Members:</p><ul><li><i>YES</i>-Onder bewindvoering </li >
        <li><i>UNK</i>-Niet gekend </li > </ul>
      nullable: true
    RegistratieContactVerbondenAanVennootschap:
      enum:
        - 'NO'
        - 'YES'
        - UNK
      type: string
      description: >-
        <p>Members:</p><ul><li><i>NO</i>-Kandidaat-huurder is niet verbonden aan
        een vennootschap </li > <li><i>YES</i>-Kandidaat-huurder is verbonden
        aan een vennootschap </li > <li><i>UNK</i>-Onbekend </li > </ul>
      nullable: true
    OptioneleVoorkeurVraagCodeWaarden:
      enum:
        - OPHV
        - OPST
        - OPKO
        - OPLT
        - OPTR
        - OPDN
        - OPWM
      type: string
      description: >-
        <p>Members:</p><ul><li><i>OPHV</i>-Hoogste verdieping waar je wilt
        wonen? </li > <li><i>OPST</i>-Zijn traptreden in het gebouw of de woning
        een probleem? </li > <li><i>OPKO</i>-Heb je een kamer op overschot
        nodig? </li > <li><i>OPLT</i>-Heb je een lift nodig? </li >
        <li><i>OPTR</i>-Heb je een terras nodig? </li > <li><i>OPDN</i>-Heb je
        een douche nodig? </li > <li><i>OPWM</i>-Heb je een aansluiting voor een
        wasmachine nodig? </li > </ul>
      nullable: true
    EigendomTypeCodeWaarden:
      enum:
        - BLE
        - BEBW
        - BEEP
        - BEGB
        - BEGK
        - BEOP
        - BEW
        - EP
        - EVG
        - BAT
        - GB
        - GK
        - SOL
        - ONB
        - OP
        - OPEP
        - VE
        - VEBW
        - VEEP
        - VEGB
        - VEGK
        - VEOP
        - VG
        - VGBW
        - VGEP
        - VGGB
        - VGGK
        - VGOP
        - JUST
      type: string
      description: >-
        Eigendom Type (= Recht Aard) Code
        (ROTP)<p>Members:</p><ul><li><i>BLE</i>-Blote eigendom </li >
        <li><i>BEBW</i>-Blote eigendom bezwaard met een recht van bewoning </li
        > <li><i>BEEP</i>-Blote eigendom bezwaard met een recht van erfpacht
        </li > <li><i>BEGB</i>-Blote eigendom bezwaard met een recht van gebruik
        en bewoning </li > <li><i>BEGK</i>-Blote eigendom bezwaard met een recht
        van gebruik </li > <li><i>BEOP</i>-Blote eigendom bezwaard met een recht
        van opstal </li > <li><i>BEW</i>-Bewoning </li > <li><i>EP</i>-Erfpacht
        </li > <li><i>EVG</i>-Eventueel vruchtgebruik </li >
        <li><i>BAT</i>-Gebouw </li > <li><i>GB</i>-Gebruik en bewoning </li >
        <li><i>GK</i>-Gebruik </li > <li><i>SOL</i>-Eigenaar grond </li >
        <li><i>ONB</i>-Onbekend recht </li > <li><i>OP</i>-Opstal </li >
        <li><i>OPEP</i>-Opstal bezwaard met een recht van erfpacht </li >
        <li><i>VE</i>-Volle eigendom </li > <li><i>VEBW</i>-Volle eigendom
        bezwaard met een recht van bewoning </li > <li><i>VEEP</i>-Volle
        eigendom bezwaard met een recht van erfpacht </li >
        <li><i>VEGB</i>-Volle eigendom bezwaard met een recht van gebruik en
        bewoning </li > <li><i>VEGK</i>-Volle eigendom bezwaard met een recht
        van gebruik </li > <li><i>VEOP</i>-Volle eigendom bezwaard met een recht
        van opstal </li > <li><i>VG</i>-Vruchtgebruik </li >
        <li><i>VGBW</i>-Vruchtgebruik bezwaard met een recht van bewoning </li >
        <li><i>VGEP</i>-Vruchtgebruik bezwaard met een recht van erfpacht </li >
        <li><i>VGGB</i>-Vruchtgebruik bezwaard met een recht van gebruik en
        bewoning </li > <li><i>VGGK</i>-Vruchtgebruik bezwaard met een recht van
        gebruik </li > <li><i>VGOP</i>-Vruchtgebruik bezwaard met een recht van
        opstal </li > <li><i>JUST</i>-Code voor extra justificatie of
        justificatiedeclaratie </li > </ul>
      nullable: true
    EigendomAardCodeWaarden:
      enum:
        - APP
        - TERRB
        - HOME
        - CONS
        - HAYF
        - MEAD
        - TRADH
        - HOTEL
        - STD
        - RM
      type: string
      description: >-
        Eigendom Aard Code (ROKD)<p>Members:</p><ul><li><i>APP</i>-Appartement
        </li > <li><i>TERRB</i>-Bouwgrond </li > <li><i>HOME</i>-Huis </li >
        <li><i>CONS</i>-Bouwland </li > <li><i>HAYF</i>-Hooiland </li >
        <li><i>MEAD</i>-Weiland </li > <li><i>TRADH</i>-Handelshuis </li >
        <li><i>HOTEL</i>-Hotel </li > <li><i>STD</i>-Studio </li >
        <li><i>RM</i>-Kamer </li > </ul>
      nullable: true
    BestandExtensieCodeWaarden:
      enum:
        - JPG
        - JPEG
        - TIF
        - TIFF
        - PDF
        - PNG
        - GIF
      type: string
      description: >-
        <p>Members:</p><ul><li><i>JPG</i>-Jpeg </li > <li><i>JPEG</i>-Jpeg </li
        > <li><i>TIF</i>-Tagged Image File Format </li > <li><i>TIFF</i>-Tagged
        Image File Format </li > <li><i>PDF</i>-Acrobat Reader </li >
        <li><i>PNG</i>-Portable Network Graphic </li > <li><i>GIF</i>-Afbeelding
        </li > </ul>
      nullable: true
    IdentificatieBestandCodeWaarden:
      enum:
        - DM
        - CCTS
        - CCPD
        - CFR
        - CPA
        - INCA
        - INCE
        - INCPS
        - INCYB
        - INCYM
        - INCNB
        - INCNM
        - PRF
        - OWN
        - REJUU
        - REJUS
        - HONE
        - CRCV
        - CGIV
        - PROXY
      type: string
      description: >-
        Identificatie Bestand Code<p>Members:</p><ul><li><i>DM</i>-Bijlage rond
        arbeidsongeschiktheid (wederzijds) </li > <li><i>CCTS</i>-Bijlage rond
        type verblijf </li > <li><i>CCPD</i>-Bijlage rond lichamelijke of
        geestelijke handicap </li > <li><i>CFR</i>-Bijlage rond geplande
        gezinshereniging </li > <li><i>CPA</i>-Bijlage rond zwangerschaps- of
        adoptieprocedure </li > <li><i>INCA</i>-Bijlage rond vrijgestelde
        beroepsinkomsten uit het buitenland </li > <li><i>INCE</i>-Bijlage rond
        vrijgestelde beroepsinkomsten verworven bij Europese of internationale
        instellingen </li > <li><i>INCPS</i>-Tot 3 bijlages voor opeenvolgende
        loonstroken van de afgelopen 6 maanden </li > <li><i>INCYB</i>-Bijlage
        rond collectieve schuldenregeling, budgetbegeleiding of budgetbeheer
        </li > <li><i>INCYM</i>-Bijlage rond onderhoudskosten </li >
        <li><i>INCNB</i>-Bijlage rond collectieve schuldenregeling,
        budgetbegeleiding of budgetbeheer </li > <li><i>INCNM</i>-Bijlage rond
        onderhoudskosten </li > <li><i>PRF</i>-Bijlage rond lichamelijke
        beperking </li > <li><i>OWN</i>-Bijlage over eigendomsbestanden </li >
        <li><i>REJUU</i>-Bijlage over additionele eigendommen </li >
        <li><i>REJUS</i>-Bijlage over bestaande eigendommen </li >
        <li><i>HONE</i>-Bijlage over woonsituatie </li > <li><i>CRCV</i>-Bijlage
        voor mantelzorg ontvanger </li > <li><i>CGIV</i>-Bijlage voor mantelzorg
        gever </li > <li><i>PROXY</i>-Bijlage voor volmacht </li > </ul>
      nullable: true
    AanvaardingBijlageCodeWaarden:
      enum:
        - ACC
        - REJ
        - INC
      type: string
      description: >-
        <p>Members:</p><ul><li><i>ACC</i>-Goedgekeurd </li >
        <li><i>REJ</i>-Afgekeurd </li > <li><i>INC</i>-Extra informatie nodig
        </li > </ul>
      nullable: true
    DossierPartijTypeCodeWaarden:
      enum:
        - PP
        - SVK
        - CPA
        - TWN
        - AMC
        - VMSW
        - SHM
        - VWF
        - PROV
        - INMC
      type: string
      description: >-
        <p>Members:</p><ul><li><i>PP</i>-Private Persoon </li >
        <li><i>SVK</i>-SVK </li > <li><i>CPA</i>-OCMW </li >
        <li><i>TWN</i>-Gemeente </li > <li><i>AMC</i>-Autonoom Gemeentebedrijf
        </li > <li><i>VMSW</i>-VMSW </li > <li><i>SHM</i>-SHM </li >
        <li><i>VWF</i>-VWF </li > <li><i>PROV</i>-Provincie </li >
        <li><i>INMC</i>-Intercommunale </li > </ul>
      nullable: true
    DossierPartijRolCodeWaarden:
      enum:
        - REQ1
        - REQ2
        - CO
        - SUP
        - S
        - P
      type: string
      description: >-
        <p>Members:</p><ul><li><i>REQ1</i>-Referentiehuurder1 </li >
        <li><i>REQ2</i>-Referentiehuurder2 </li > <li><i>CO</i>-Medebewoner </li
        > <li><i>SUP</i>-Ondersteunende parij (OCMW…) </li >
        <li><i>S</i>-Secundaire woonmaatschappij </li > <li><i>P</i>-Primaire
        woonmaatschappij </li > </ul>
      nullable: true
    AanvaardingDossierTypeCode:
      enum:
        - PCOMP
        - WPREF
        - INCOM
        - PROP
        - PLR2
        - PLR3
        - PLR4
      type: string
      description: >-
        <p>Members:</p><ul><li><i>PCOMP</i>-PersoonSamenstelling </li >
        <li><i>WPREF</i>-Woningvoorkeuren </li > <li><i>INCOM</i>-Inkomsten </li
        > <li><i>PROP</i>-Eigendom </li > <li><i>PLR2</i>-Woonnoodpijler2 </li >
        <li><i>PLR3</i>-Woonnoodpijler3 </li > <li><i>PLR4</i>-Woonnoodpijler4
        </li > </ul>
      nullable: true
    AanvaardingDossierCode:
      enum:
        - ACC
        - NCOM
        - FURI
      type: string
      description: >-
        <p>Members:</p><ul><li><i>ACC</i>-Uitzondering toegekend </li >
        <li><i>NCOM</i>-Uitzondering niet toegekend </li > <li><i>FURI</i>-Extra
        informatie nodig </li > </ul>
      nullable: true
    ZwarteLijstRedenCodeWaarden:
      enum:
        - DEF
        - HMNGL
      type: string
      description: >-
        nvarchar(5)<p>Members:</p><ul><li><i>DEF</i>-Wanbetaling </li >
        <li><i>HMNGL</i>-Huisverwaarlozing </li > </ul>
      nullable: true
    DossierDienstDossierPandUpdate:
      type: object
      properties:
        postCode:
          maxLength: 15
          type: string
          description: Postcode van het aangeboden pand
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: Naam van de gemeente van het aangeboden pand
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode
          nullable: true
          example: 41002A
        straat:
          maxLength: 100
          type: string
          description: Straat van het aangeboden pand
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 12
          type: string
          description: Huisnummer van het aangeboden pand
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 10
          type: string
          description: Bus nr van het aangeboden pand
          nullable: true
          example: X
        landNisCode:
          maxLength: 5
          type: string
          description: Land code van het aangeboden pand
          nullable: true
      additionalProperties: false
      nullable: true
    DossierPandAanbiedingStatusCodeWaarden:
      enum:
        - OFFER
        - CCL
        - OBJCT
        - REQI
        - REF
        - RJCT
        - WAIT
        - WAKE
        - VOL
        - ACC
        - APP
        - ARCH
        - FRAUD
        - DEC
        - NCOMP
        - NORES
        - OVRVW
        - REG
        - RSPND
        - SAVE
        - UNDO
        - ACTUA
        - MIGRA
        - NOACT
        - CCLGW
        - NOCOMP
        - CONF
        - UNDNR
        - UNDRF
        - OND
      type: string
      description: >-
        nvarchar(5)<p>Members:</p><ul><li><i>OFFER</i>-Aanbod Maken </li >
        <li><i>CCL</i>-Annuleren </li > <li><i>OBJCT</i>-Annuleren </li >
        <li><i>REQI</i>-Bijkomende informatie vragen </li >
        <li><i>REF</i>-Weigeren </li > <li><i>RJCT</i>-Afwijzen </li >
        <li><i>WAIT</i>-In wacht zetten </li > <li><i>WAKE</i>-Uit wacht halen
        </li > <li><i>VOL</i>-vrijwillig vertrekken </li > <li><i>ACC</i>-Aanbod
        geaccepteerd </li > <li><i>APP</i>-Van toepassing zijn </li >
        <li><i>ARCH</i>-Archief </li > <li><i>FRAUD</i>-frauduleus </li >
        <li><i>DEC</i>-Overleden </li > <li><i>NCOMP</i>-Niet-conform </li >
        <li><i>NORES</i>-Geen antwoord </li > <li><i>OVRVW</i>-Overzicht </li >
        <li><i>REG</i>-Register </li > <li><i>RSPND</i>-Antwoorden </li >
        <li><i>SAVE</i>-Opslaan </li > <li><i>UNDO</i>-Ga terug naar de vorige
        echte staat </li > <li><i>ACTUA</i>-Actualisatie </li >
        <li><i>MIGRA</i>-Via de actualisatie zijn wijzigingen aangebracht </li >
        <li><i>NOACT</i>-Actie na 2 jaar inactiviteit </li >
        <li><i>CCLGW</i>-Gegronde weigering door kandidaat-huurder na aanbod
        </li > <li><i>NOCOMP</i>-Schrapping door niet voldoen
        inschrijvingsvoorwaarde </li > <li><i>CONF</i>-Bevestigen van dossier na
        migratie </li > <li><i>UNDNR</i>-Ongedaan maken van vroegere niet
        reactie </li > <li><i>UNDRF</i>-Ongedaan maken van vroegere weigering
        </li > <li><i>OND</i>-Schrapping door ontdubbeling </li > </ul>
      nullable: true
    DossierDienstDossierIncomeAuthentiekebron:
      type: object
      properties:
        inkomenType:
          $ref: '#/components/schemas/HuidigInkomenType'
        jaarMaand:
          maxLength: 15
          type: string
          description: Jaar maand van het inkomen
          nullable: true
        bedrag:
          maxLength: 15
          type: number
          description: Bedrag inkomen
          format: double
          nullable: true
      additionalProperties: false
      nullable: true
    SchuldenregelingCodeWaarden:
      enum:
        - 'YES'
        - 'NO'
        - UNK
      type: string
      description: >-
        <p>Members:</p><ul><li><i>YES</i>-YES </li > <li><i>NO</i>-NO </li >
        <li><i>UNK</i>-UNK </li > </ul>
      nullable: true
    OnderhoudsgeldenCodeWaarden:
      enum:
        - 'YES'
        - 'NO'
        - UNK
      type: string
      description: >-
        <p>Members:</p><ul><li><i>YES</i>-YES </li > <li><i>NO</i>-NO </li >
        <li><i>UNK</i>-UNK </li > </ul>
      nullable: true
    WoningTypeCodeWaarden:
      enum:
        - H
        - R
        - A
        - S
      type: string
      description: >-
        Woning Type (PRES)<p>Members:</p><ul><li><i>H</i>-Huis </li >
        <li><i>R</i>-Kamer </li > <li><i>A</i>-Appartement </li >
        <li><i>S</i>-Studio </li > </ul>
      nullable: true
    LichamelijkeBeperkingCodeWaarden:
      enum:
        - 'NO'
        - 'YES'
      type: string
      description: >-
        Of de KH een aangepaste woning wenst aan medische
        noden<p>Members:</p><ul><li><i>NO</i>-Geen aanpassing voor lichamelijke
        beperking nodig </li > <li><i>YES</i>-Aanpassing voor lichamelijke
        beperking nodig </li > </ul>
      nullable: true
    InschrijfhulpCodeWaarden:
      enum:
        - HC
        - OCMW
        - OTH
        - SUP
        - WH
        - HOEH
      type: string
      description: >-
        Inschrijfhulp Code (RAOP)<p>Members:</p><ul><li><i>HC</i>-Samen met een
        medewerker van de woonmaatschapij </li > <li><i>OCMW</i>-Samen met een
        medewerker van een sociaalHuis </li > <li><i>OTH</i>-Samen met andere
        persoon </li > <li><i>SUP</i>-Samen met begeleider </li >
        <li><i>WH</i>-Zonder Hulp </li > <li><i>HOEH</i>-Gemeentelijk
        woonloket/gemeentelijk woon- en energieloket </li > </ul>
      nullable: true
    InschrijfhulpInformerenCodeWaarden:
      enum:
        - 'NO'
        - 'YES'
      type: string
      description: >-
        Inschrijfhulp Informeren Code
        (PKIS)<p>Members:</p><ul><li><i>NO</i>-Niet Informeren </li >
        <li><i>YES</i>-Informeren </li > </ul>
      nullable: true
    SchrappingRedenCodeWaarden:
      enum:
        - DEAD
        - SNRE
        - SUNR
        - ASGN
        - OWNR
        - NCOM
        - FRAUD
        - JOAN
        - NACT
      type: string
      description: >-
        Schrapping Redenen (RCNC)<p>Members:</p><ul><li><i>DEAD</i>-Overlijden
        </li > <li><i>SNRE</i>-Tweede niet reactie </li > <li><i>SUNR</i>-Tweede
        ongegronde weigering </li > <li><i>ASGN</i>-Toewijzing </li >
        <li><i>OWNR</i>-Eigen vraag </li > <li><i>NCOM</i>-Niet voldoen aan
        voorwaarden </li > <li><i>FRAUD</i>-Frauduleuze verklaringen </li >
        <li><i>JOAN</i>-Gerechterlijk bevel na overlast </li >
        <li><i>NACT</i>-Non-activiteit </li > </ul>
      nullable: true
    WoningnoodRedenEnumCode:
      enum:
        - EHOME
        - UASIL
        - MHP
        - SUBSH
        - SPSC
      type: string
      description: >-
        <p>Members:</p><ul><li><i>EHOME</i>-Personen die dak- en thuisloos zijn
        of dreigen te worden  </li > <li><i>UASIL</i>-Jongeren die zelfstandig
        wonen of gaan wonen met begeleiding door een erkende dienst  </li >
        <li><i>MHP</i>-Personen met geestelijke gezondheidsproblemen  </li >
        <li><i>SUBSH</i>-Personen die in slechte huisvesting wonen  </li >
        <li><i>SPSC</i>-Personen die zich in bijzondere omstandigheden van
        sociale aard bevinden  </li > </ul>
      nullable: true
    BelastbaarInkomenAanwezigheidCodeWaarden:
      enum:
        - TBV
        - SND
        - S6
        - FT
        - UV
      type: string
      description: >-
        Dit veld geeft aan of er inkomen (FOD Financiën) gevonden werden bij de
        authentieke bron en/of ze opgenomen worden in het
        CIR.<p>Members:</p><ul><li><i>TBV</i>-Te verifiëren </li >
        <li><i>SND</i>-Succesvol geverifieerd zonder gegevens </li >
        <li><i>S6</i>-Succesvol geverifieerd </li > <li><i>FT</i>-Verificatie
        mislukt om technische reden </li > <li><i>UV</i>-Niet verifieerbaar of
        verificatie mislukt </li > </ul>
      nullable: true
    LeefLoonAanwezigheidCodeWaarden:
      enum:
        - TBV
        - SND
        - S6
        - FT
        - UV
      type: string
      description: >-
        Dit veld geeft aan of er leefloongegevens gevonden werden bij de
        authentieke bron en/of ze opgenomen worden in het
        CIR.<p>Members:</p><ul><li><i>TBV</i>-Te verifiëren </li >
        <li><i>SND</i>-Succesvol geverifieerd zonder gegevens </li >
        <li><i>S6</i>-Succesvol geverifieerd </li > <li><i>FT</i>-Verificatie
        mislukt om technische reden </li > <li><i>UV</i>-Niet verifieerbaar of
        verificatie mislukt </li > </ul>
      nullable: true
    InkomensVervangendeTegemoetkomingCodeWaarden:
      enum:
        - TBV
        - SND
        - S6
        - FT
        - UV
      type: string
      description: >-
        Dit veld geeft aan of er inkomen vervangende-gegevens gevonden werden
        bij de authentieke bron en/of ze opgenomen worden in het
        CIR.<p>Members:</p><ul><li><i>TBV</i>-Te verifiëren </li >
        <li><i>SND</i>-Succesvol geverifieerd zonder gegevens </li >
        <li><i>S6</i>-Succesvol geverifieerd </li > <li><i>FT</i>-Verificatie
        mislukt om technische reden </li > <li><i>UV</i>-Niet verifieerbaar of
        verificatie mislukt </li > </ul>
      nullable: true
    ContactVoorkeurCodeWaarden:
      enum:
        - ALT
        - DOM
        - OTH
      type: string
      description: >-
        Wat als contactadres gerbuikt mag
        worden<p>Members:</p><ul><li><i>ALT</i>-Verblijfs Adress </li >
        <li><i>DOM</i>-Domicilie Adress </li > <li><i>OTH</i>-Contact Adress
        </li > </ul>
      nullable: true
    DossierDienstDossierPersoonAdresDomicilie:
      type: object
      properties:
        postCode:
          maxLength: 15
          type: string
          description: Postcode van de domicilie van het contact/gezinslid
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: Naam van de gemeente waar domicilie gevestigd is.
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Gemeenteniscode van het domicilie adress
          nullable: true
        landCode:
          maxLength: 5
          type: string
          description: landcode van de domicilie.
          nullable: true
        straat:
          maxLength: 100
          type: string
          description: Naam van de straat waar domicilie gevestigd is.
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 12
          type: string
          description: Huisnummer waar domicilie gevestigd is.
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 10
          type: string
          description: Bus van de domicilie.
          nullable: true
          example: X
      additionalProperties: false
      nullable: true
    DossierDienstDossierPersoonAdresVerblijf:
      type: object
      properties:
        postCode:
          maxLength: 15
          type: string
          description: Postcode waar het contact/gezinslid verblijft.
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: Gemeente waar het contact/gezinslid verblijft
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode van verblijf aanvrager
          nullable: true
        landCode:
          maxLength: 5
          type: string
          description: Niscode van verblijf aanvrager
          nullable: true
        straat:
          maxLength: 100
          type: string
          description: Straat van verblijf van aanvrager
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 12
          type: string
          description: Huisnummer van verblijf aanvrager
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 10
          type: string
          description: Bus van verbflijf van het contact/gezinslid
          nullable: true
          example: X
      additionalProperties: false
      nullable: true
    DossierDienstDossierPersoonAdresContact:
      type: object
      properties:
        postCode:
          maxLength: 15
          type: string
          description: De postcode van het postadres van het contact/gezinslid.
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: De gemeente van het postadres van het contact/gezinslid.
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode van het postadres van het contact/gezinslid
          nullable: true
        landCode:
          maxLength: 5
          type: string
          description: De landcode van het postadres van het contact/gezinslid.
          nullable: true
        straat:
          maxLength: 100
          type: string
          description: De straat van het postadres van het contact/gezinslid.
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 12
          type: string
          description: Het huisnummer van het postadres van het contact/gezinslid.
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 10
          type: string
          description: De busnummer van het postadres van het contact/gezinslid.
          nullable: true
          example: X
      additionalProperties: false
      nullable: true
    HuidigInkomenType:
      enum:
        - PENS
        - LINC
        - IVT
        - UNEMP
        - INCAP
      type: string
      description: >-
        <p>Members:</p><ul><li><i>PENS</i>-Pensioen6m </li >
        <li><i>LINC</i>-Leefloon6m </li > <li><i>IVT</i>-IVT6m </li >
        <li><i>UNEMP</i>-Werkloosheidsuitkering6m </li >
        <li><i>INCAP</i>-Uitkeringarbeidsongeschikdheid6m </li > </ul>
      nullable: true
    DossierDienstDossierWijziging:
      type: object
      properties:
        dossierPersonen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierPersoonWijziging'
          description: Contacten
          nullable: true
        dossierBijlages:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierUpdateBijlage'
          nullable: true
        aanvaardingDossier:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierAanvaarding'
          nullable: true
        extraBeroepsInkomsten:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierUpdateExtraBeroepsInkomsten'
          nullable: true
        aanvaardingWoonnood:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierUpdateAanvaardingWoonnood'
          nullable: true
      additionalProperties: false
      description: Description
      nullable: true
    DossierDienstDossierPersoonWijziging:
      type: object
      properties:
        rijksregisternummer:
          maxLength: 15
          type: string
          description: RRN
          nullable: true
          example: '2209280001'
        contactPersoonTenLaste:
          $ref: '#/components/schemas/RegistratieContactPersoonTenLaste'
        taalkennisSneltestCode:
          $ref: '#/components/schemas/TaalkennisSneltestCodeWaarden'
      additionalProperties: false
      nullable: true
    DossierDienstDossierUpdateBijlage:
      type: object
      properties:
        identificatie:
          maxLength: 255
          type: string
          description: Identificatie van de bijlage
          nullable: true
        aanvaardingBijlageCode:
          $ref: '#/components/schemas/AanvaardingBijlageCodeWaarden'
        aanvaardingOpmerking:
          type: string
          description: Geeft de opmerking bij de bijlage
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierAanvaarding:
      type: object
      properties:
        typeCode:
          $ref: '#/components/schemas/TypeCodeWaarden'
        aanvaardingCode:
          $ref: '#/components/schemas/AanvaardingCodeWaarden'
        opmerking:
          type: string
          description: Opmerking bij de beslissing.
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierUpdateAanvaardingWoonnood:
      type: object
      properties:
        identificatie:
          type: integer
          description: ID van de woonsituatie die goedgekeurd moet worden
          format: int64
          nullable: true
        aanvaardingCode:
          $ref: '#/components/schemas/AanvaardingDossierCode'
        conclusie:
          type: string
          description: Conclusie bij de woonnood
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierUpdateExtraBeroepsInkomsten:
      type: object
      properties:
        inkomstenType:
          $ref: '#/components/schemas/ExtraBeroepsInkomstenCodeWaarden'
        jaarTotaal:
          type: number
          description: Geeft het jaar waarin het inkomen werd ontvangen
          format: double
          nullable: true
          example: 2022
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer
          nullable: true
          example: '2209280001'
      additionalProperties: false
      nullable: true
    TypeCodeWaarden:
      enum:
        - PCOMP
        - WPREF
        - INCOM
        - PROP
        - PLR2
        - PLR3
        - PLR4
      type: string
      description: >-
        <p>Members:</p><ul><li><i>PCOMP</i>-PersoonSamenstelling </li >
        <li><i>WPREF</i>-Woningvoorkeuren </li > <li><i>INCOM</i>-Inkomsten </li
        > <li><i>PROP</i>-Eigendom </li > <li><i>PLR2</i>-Woonnoodpijler2 </li >
        <li><i>PLR3</i>-Woonnoodpijler3 </li > <li><i>PLR4</i>-Woonnoodpijler4
        </li > </ul>
      nullable: true
    AanvaardingCodeWaarden:
      enum:
        - ACC
        - NCOM
        - FURI
      type: string
      description: >-
        <p>Members:</p><ul><li><i>ACC</i>-Uitzondering toegekend </li >
        <li><i>NCOM</i>-Uitzondering niet toegekend </li > <li><i>FURI</i>-Extra
        informatie nodig </li > </ul>
      nullable: true
    ExtraBeroepsInkomstenCodeWaarden:
      enum:
        - FORI
        - INSTI
      type: string
      description: >-
        <p>Members:</p><ul><li><i>FORI</i>-Inkomsten uit het buitenland </li >
        <li><i>INSTI</i>-Inkomsten uit europese of internationale instellingen
        </li > </ul>
      nullable: true
    DossierDienstDossierVersieBevestiging:
      type: object
      properties:
        dossierNummer:
          type: string
          description: nvarchar(15)
          nullable: true
          example: YYY.MM.DD.XXXX
        partijCode:
          type: string
          description: "KBO nummer of CIR code van de partij die betrokken is bij het dossier.\r\n nvarchar(15)"
          nullable: true
        versieNummer:
          type: integer
          description: Int
          format: int32
      additionalProperties: false
      nullable: true
    DossierDienstDossierRanglijstWijzigingen:
      type: object
      properties:
        partijCode:
          maxLength: 15
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
        ranglijstWijzigingen:
          type: array
          items:
            $ref: '#/components/schemas/DossierDienstDossierRanglijstWijziging'
          description: >-
            RanglijstWijzigingen kunnen doorgestuurd worden voor meerdere
            gemeentes voor meerdere dossiers
          nullable: true
      additionalProperties: false
      description: >-
        RanglijstWijzigingen kunnen doorgestuurd worden voor meerdere gemeentes
        voor meerdere dossiers
      nullable: true
    DossierDienstDossierRanglijstWijziging:
      type: object
      properties:
        rangLijstType:
          $ref: '#/components/schemas/RangLijstTypeCodeWaarden'
        dossierNummer:
          maxLength: 15
          type: string
          description: ''
          nullable: true
          example: 2022.09.08.0001
        beperkteRegioKeuze:
          $ref: '#/components/schemas/beperkteregiokeuze'
        lokaleBinding:
          $ref: '#/components/schemas/localebinding'
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode van de gemeente waar de kandidaat-huurder wil wonen.
          nullable: true
          example: '12100'
        wijk:
          type: string
          description: >-
            Geeft de wijk van de gemeente/deelgemeenten weer, waar de
            Kandidaat-huurder wil wonen.
          nullable: true
        criterium1:
          $ref: '#/components/schemas/RangLijstCriteria1CodeWaarden'
        criterium2:
          maxLength: 500
          type: string
          nullable: true
        criterium3:
          maxLength: 500
          type: string
          nullable: true
        rangschikking:
          type: integer
          description: >-
            Geeft weer op welke plaats de kandidaat-huurder op de wachtlijst
            staat.
          format: int32
          nullable: true
          example: 17
        rangschikkingDatum:
          type: string
          description: >-
            Geeft de datum weer wanneer de kandidaat-huurder op de wachtlijst
            geplaatst werd.
          format: date-time
          nullable: true
      additionalProperties: false
      nullable: true
    RangLijstTypeCodeWaarden:
      enum:
        - PLR1
        - PLR2
        - PLR3
        - PLR4
      type: string
      description: >-
        Rang Lijst Type Code (RRTP)<p>Members:</p><ul><li><i>PLR1</i>-Pijler 1
        </li > <li><i>PLR2</i>-Pijler 2 </li > <li><i>PLR3</i>-Pijler 3 </li >
        <li><i>PLR4</i>-Pijler 4 </li > </ul>
      nullable: true
    beperkteregiokeuze:
      enum:
        - 'YES'
        - 'NO'
        - UNK
      type: string
      description: >-
        <p>Members:</p><ul><li><i>YES</i>-Wel beperkte regiokeuze </li >
        <li><i>NO</i>-Geen beperkte regiokeuze </li > <li><i>UNK</i>-Niet gekend
        </li > </ul>
      nullable: true
    localebinding:
      enum:
        - 'YES'
        - 'NO'
        - UNK
      type: string
      description: >-
        <p>Members:</p><ul><li><i>YES</i>-Wel locale binding </li >
        <li><i>NO</i>-Geen locale binding </li > <li><i>UNK</i>-Niet gekend </li
        > </ul>
      nullable: true
    RangLijstCriteria1CodeWaarden:
      enum:
        - H
        - R
        - A
        - S
        - EHOME
        - UASIL
        - MHP
        - SUBSH
        - SPSC
        - D
        - DERES
        - UOCCU
        - OCRWD
        - NCRAT
        - PRFR
        - NOADA
        - TOEZ
        - REHOU
      type: string
      description: >-
        nvarchar(15)<p>Members:</p><ul><li><i>H</i>-Huis (Pijler 1) </li >
        <li><i>R</i>-Kamer (Pijler 1) </li > <li><i>A</i>-Appartement (Pijler 1)
        </li > <li><i>S</i>-Studio (Pijler 1) </li > <li><i>EHOME</i>-Personen
        die dak- en thuisloos zijn of dreigen te worden (Pijler 2) </li >
        <li><i>UASIL</i>-Jongeren die zelfstandig wonen of gaan wonen met
        begeleiding door een erkende dienst (Pijler 2) </li >
        <li><i>MHP</i>-Personen met geestelijke gezondheidsproblemen (Pijler 2)
        </li > <li><i>SUBSH</i>-Personen die in slechte huisvesting wonen
        (Pijler 2) </li > <li><i>SPSC</i>-Personen die zich in bijzondere
        omstandigheden van sociale aard bevinden (Pijler 2) </li >
        <li><i>D</i>-Specifieke Doelgroep (Pijler 3) </li >
        <li><i>DERES</i>-Sloop, renovatie en verkoop van de sociale huurwoning
        (Pijler 4) </li > <li><i>UOCCU</i>-Onderbezetting van de sociale
        huurwoning  (Pijler 4) </li > <li><i>OCRWD</i>-Overbezetting van de
        sociale huurwoning (Pijler 4) </li > <li><i>NCRAT</i>-Niet meer voldoen
        aan de rationele bezetting (Pijler 4) </li > <li><i>PRFR</i>-Vooraf
        vermelde gezinshereniging die plaatsvindt (Pijler 4) </li >
        <li><i>NOADA</i>-Het niet meer nodig hebben van een aangepaste woning
        (Pijler 4) </li > <li><i>TOEZ</i>-Het gegrond vinden van het verhaal bij
        de toezichthouder (Pijler 4) </li > <li><i>REHOU</i>-Het herhuisvesten
        bij de beëindiging van het hoofdhuurcontract van een ingehuurde woning
        (Pijler 4) </li > </ul>
      nullable: true
    ZwarteLijstMeldingen:
      type: object
      properties:
        partijCode:
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
        meldingen:
          type: array
          items:
            $ref: '#/components/schemas/ZwarteLijstMelding'
          description: ZwarteLijstMeldingen kunnen doorgestuurd worden voor partijen
          nullable: true
      additionalProperties: false
      nullable: true
    ZwarteLijstMelding:
      type: object
      properties:
        rijksregisternummer:
          maxLength: 15
          type: string
          description: RRN van persoon op zwartelijst
          nullable: true
        reden:
          $ref: '#/components/schemas/ZwarteLijstRedenCodeWaarden'
        startDatum:
          type: string
          description: Datum vanaf wanneer persoon op zwartelijst staat
          format: date-time
      additionalProperties: false
      nullable: true
    PartijInformatieWijzigingen:
      type: object
      properties:
        partijCode:
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
        wijzingingen:
          type: array
          items:
            $ref: '#/components/schemas/PartijInformatieWijziging'
          nullable: true
      additionalProperties: false
      nullable: true
    PartijInformatieWijziging:
      type: object
      properties:
        rijksregisternummer:
          maxLength: 15
          type: string
          description: Rijksregisternummer
          nullable: true
          example: '2209280001'
        voorNaam:
          maxLength: 48
          type: string
          description: Voornaam van bewindvoerder
          nullable: true
          example: Marc
        naam:
          maxLength: 128
          type: string
          description: Achternaam van bewindvoerder
          nullable: true
          example: Molenbergs
        email:
          maxLength: 50
          type: string
          description: E-mailadres van bewindvoerder
          nullable: true
          example: Marc.Molenbergs@hotmail.be
        telefoon1:
          maxLength: 15
          type: string
          description: Telefoonnummer van bewindvoerder
          nullable: true
          example: 015/43 43 43
        telefoon2:
          maxLength: 15
          type: string
          description: Telefoonnummer van bewindvoerder
          nullable: true
          example: 0477 / 43 43 43
        adres:
          $ref: '#/components/schemas/PartijAdres'
        registratieTijdstip:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
      nullable: true
    PartijAdres:
      type: object
      properties:
        postCode:
          maxLength: 15
          type: string
          description: Postcode van de domicilie van bewindvoerder
          nullable: true
          example: '2830'
        gemeente:
          maxLength: 100
          type: string
          description: Naam van de gemeente van bewindvoerder
          nullable: true
          example: Willebroek
        gemeenteNisCode:
          maxLength: 15
          type: string
          description: Niscode
          nullable: true
          example: 41002A
        landCode:
          maxLength: 5
          type: string
          nullable: true
        straat:
          maxLength: 225
          type: string
          description: Straat van bewindvoerder
          nullable: true
          example: Bos
        huisNummer:
          maxLength: 50
          type: string
          description: Huisnummer van bewindvoerder
          nullable: true
          example: '502'
        huisNummerBus:
          maxLength: 50
          type: string
          description: Bus nr van bewindvoerder
          nullable: true
          example: X
      additionalProperties: false
      nullable: true
    GetZwarteLijstMeldingVerzoek:
      type: object
      properties:
        rijksregisternummer:
          type: string
          nullable: true
          example: '12345678901'
      additionalProperties: false
      nullable: true
    GetZwarteLijstMelding:
      type: object
      properties:
        opZwarteLijst:
          type: boolean
          description: Aanduiding of de persoon op de zwartelijst staat of niet.
        partijCode:
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
        reden:
          $ref: '#/components/schemas/ZwarteLijstRedenCodeWaarden'
        startDatum:
          type: string
          description: Datum vanaf wanneer persoon op zwartelijst moet
          format: date-time
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstDossierActie:
      type: object
      properties:
        dossierNummer:
          type: string
          description: nvarchar(15)
          nullable: true
          example: YYY.MM.DD.XXXX
        partijCode:
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          nullable: true
          example: '1234'
        actie:
          $ref: '#/components/schemas/DossierActieCodeWaarden'
        commentaar:
          type: string
          description: Commentaar bij de actie
          nullable: true
        datumIngangContract:
          type: string
          description: Datum van ingang contract huurder
          format: date-time
          nullable: true
        pand:
          $ref: '#/components/schemas/DossierDienstDossierPandUpdate'
      additionalProperties: false
      nullable: true
    GemeenteDienstZoekResultaats:
      type: object
      properties:
        gemeentes:
          type: array
          items:
            $ref: '#/components/schemas/GemeenteDienstZoekResultaat'
          nullable: true
      additionalProperties: false
      nullable: true
    GemeenteDienstZoekResultaat:
      type: object
      properties:
        nisCode:
          type: string
          nullable: true
        naam:
          type: string
          nullable: true
        taal:
          type: string
          nullable: true
        regioCode:
          type: string
          nullable: true
        provincieCode:
          type: string
          nullable: true
        districtCode:
          type: string
          nullable: true
        lengteGraad:
          type: number
          format: double
          nullable: true
        breedteGraad:
          type: number
          format: double
          nullable: true
        deelgemeentes:
          type: array
          items:
            $ref: '#/components/schemas/GemeenteDienstZoekResultaatDeelgemeente'
          nullable: true
      additionalProperties: false
      nullable: true
    GemeenteDienstZoekResultaatDeelgemeente:
      type: object
      properties:
        nisCode:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        naam:
          type: string
          nullable: true
      additionalProperties: false
      nullable: true
    GemeenteDienstWijken:
      type: object
      properties:
        wijken:
          type: array
          items:
            $ref: '#/components/schemas/GemeenteDienstWijk'
          nullable: true
      additionalProperties: false
      nullable: true
    GemeenteDienstWijk:
      type: object
      properties:
        wijkNaam:
          type: string
          nullable: true
        gemeenteNisCode:
          type: string
          nullable: true
      additionalProperties: false
      nullable: true
    DossierDienstBijlageCriteria:
      required:
        - bijlageIdentificatie
        - dossierNummer
        - partijCode
      type: object
      properties:
        partijCode:
          maxLength: 15
          type: string
          description: >-
            KBO nummer of CIR code van de partij die betrokken is bij het
            dossier.
          example: '5025'
        dossierNummer:
          maxLength: 15
          type: string
          description: DossierNummer nvarchar(15)
          example: YYYY.MM.DD.XXXX
        bijlageIdentificatie:
          type: string
          description: Identificatie van de bijlage
          example: CCTS-0-12345678900
      additionalProperties: false
      nullable: true
    DossierDienstDossierWoonsituatie:
      type: object
      properties:
        omschrijving:
          type: string
          description: Woonsituatie reden omschrijving
          nullable: true
        identificatie:
          type: string
          description: Identificatie van de Woonsituatie
          nullable: true
      additionalProperties: false
      description: Woonsituatie voor het dossier
      nullable: true

    #----------------------- END CIR payloads -------------------------------

    #----------------------- START CWR WoningenAPI -------------------------------
    WoningV2Response:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          example: /v2/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: WivWoningResource
          nullable: true
        value:
          $ref: '#/components/schemas/WivWoningResource'
      additionalProperties: false
    WivWoningResource:
      type: object
      properties:
        eigenaar:
          $ref: '#/components/schemas/OrganisatieResourceMetOsloType'
        beheerder:
          $ref: '#/components/schemas/OrganisatieResourceMetOsloType'
        verhuringsStelsel:
          enum:
            - Sociale verhuur gesubsidieerd
            - Geconventioneerde verhuur
            - Sociale verhuur
          type: string
        woonmaatschappijWoningId:
          type: string
          description: Het Id van de woning in de applicatie van de woonmaatschappij
          nullable: true
          example: O02034#22
        woonmaatschappijWoningCode:
          type: string
          description: De code voor de woning in de applicatie van de woonmaatschappij
          nullable: true
          example: 29 06 00 00 00 27
        woonmaatschappijWoningGroepCode:
          type: string
          description: De code van de groep waartoe de woning behoort
          nullable: true
          example: ZJV-JVB-V
        bouwjaar:
          type: integer
          format: int32
          nullable: true
        vmswWoningId:
          type: string
          nullable: true
        gebouweenheidIds:
          type: array
          items:
            type: string
          nullable: true
        adres:
          $ref: '#/components/schemas/VmswAdres'
        statistischeSector:
          type: string
          nullable: true
        wijk:
          type: string
          nullable: true
        woningType:
          enum:
            - Woning
            - Appartement
          type: string
          nullable: true
        woningStatus:
          enum:
            - In beheer
            - Uit beheer
          type: string
        bebouwingsType:
          enum:
            - Gesloten bebouwing
            - Halfopen bebouwing
            - Open bebouwing
            - Appartement vloer
            - Appartement hoek vloer
            - Appartement midden
            - Appartement zij
            - Appartement dak
            - Appartement hoek dak
          type: string
          nullable: true
      additionalProperties: false
    VmswAdres:
      type: object
      properties:
        straatnaam:
          $ref: '#/components/schemas/TaalString'
        huisnummer:
          type: string
          nullable: true
        busnummer:
          type: string
          nullable: true
        postcode:
          type: string
          nullable: true
        gemeentenaam:
          $ref: '#/components/schemas/TaalString'
        gemeenteNISCode:
          type: string
          nullable: true
      additionalProperties: false
    TaalString:
      type: object
      properties:
        '@type':
          type: string
          default: http://www.w3.org/1999/02/22-rdf-syntax-ns#langString
          nullable: true
        spelling:
          type: string
          nullable: true
        taal:
          type: string
          default: nl-BE
          nullable: true
      additionalProperties: false
    OrganisatieResourceMetOsloType:
      type: object
      properties:
        '@type':
          type: string
          default: OrganisatieResource
          nullable: true
        organisatieType:
          enum:
            - Woonmaatschappij
            - OCMW
            - Gemeente
            - Private initiatiefnemer
          type: string
        organisatieId:
          pattern: ^[01]\d{9}$
          type: string
          nullable: true
      additionalProperties: false
    V2WoningWijzigen:
      type: object
      properties:
        status:
          enum:
            - In beheer
            - Uit beheer
          type: string
          nullable: true
        eigenaarOrganisatieId:
          type: string
          nullable: true
        gebouweenheidId:
          type: string
          nullable: true
          example: '16480205'
        woonmaatschappijWoningId:
          type: string
          description: Het Id van de woning in de applicatie van de woonmaatschappij
          nullable: true
          example: O02034#22
        woonmaatschappijWoningCode:
          type: string
          description: De code voor de woning in de applicatie van de woonmaatschappij
          nullable: true
          example: 29 06 00 00 00 27
        woonmaatschappijWoningGroepCode:
          type: string
          description: De code van de groep waartoe de woning behoort
          nullable: true
          example: ZJV-JVB-V
        adres:
          $ref: '#/components/schemas/AdresZoeken'
        bouwjaar:
          type: integer
          format: int32
          nullable: true
        bebouwingsType:
          enum:
            - Gesloten bebouwing
            - Halfopen bebouwing
            - Open bebouwing
            - Appartement vloer
            - Appartement hoek vloer
            - Appartement midden
            - Appartement zij
            - Appartement dak
            - Appartement hoek dak
          type: string
          nullable: true
      additionalProperties: false
    AdresZoeken:
      type: object
      properties:
        straatnaam:
          type: string
          nullable: true
        huisnummer:
          type: string
          nullable: true
        busnummer:
          type: string
          nullable: true
        postcode:
          type: string
          nullable: true
        gemeenteNISCode:
          type: string
          nullable: true
      additionalProperties: false
    V2WoningToevoegen:
      type: object
      properties:
        eigenaarOrganisatieId:
          type: string
          nullable: true
        gebouweenheidId:
          type: string
          nullable: true
          example: '16480205'
        woonmaatschappijWoningId:
          type: string
          description: Het Id van de woning in de applicatie van de woonmaatschappij
          nullable: true
          example: O02034#22
        woonmaatschappijWoningCode:
          type: string
          description: De code voor de woning in de applicatie van de woonmaatschappij
          nullable: true
          example: 29 06 00 00 00 27
        woonmaatschappijWoningGroepCode:
          type: string
          description: De code van de groep waartoe de woning behoort
          nullable: true
          example: ZJV-JVB-V
        adres:
          $ref: '#/components/schemas/AdresZoeken'
        bouwjaar:
          type: integer
          format: int32
          nullable: true
        bebouwingsType:
          enum:
            - Gesloten bebouwing
            - Halfopen bebouwing
            - Open bebouwing
            - Appartement vloer
            - Appartement hoek vloer
            - Appartement midden
            - Appartement zij
            - Appartement dak
            - Appartement hoek dak
          type: string
          nullable: true
      additionalProperties: false
    ProblemDetailsValidationErrorExtension:
      type: object
      properties:
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          nullable: true
          readOnly: true
        type:
          type: string
          default: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{Status}
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: false
    ValidationError:
      type: object
      properties:
        name:
          type: string
          nullable: true
          readOnly: true
        reason:
          type: string
          nullable: true
          readOnly: true
      additionalProperties: false
    #----------------------- END CWR WoningenAPI payloads -------------------------------

    #----------------------- START CWR Woningbezetting payloads -------------------------------

    WoningBezetting:
      type: object
      title: WoningBezetting
      properties:
        '@id':
          type: string
          format: uri
          example: 'https://cwr-host/id/woningbezetting/123'
        '@type':
          type: string
          default: WoningBezetting
        woningBezettingsType:
          $ref: '#/components/schemas/WoningBezettingsType'
        vmswWoningId:
          type: string
        datumBezettingVan:
          type: string
          format: date
        datumBezettingTot:
          type: string
          format: date
          description: 'Verplicht veld, maar kan leeg zijn'
        leegstandsType:
          $ref: '#/components/schemas/LeegstandsType'
        verhuring:
          $ref: '#/components/schemas/Verhuring'
        huurstelsel:
          type: string
          description: |-
            - BIS = Verhuring binnen het sociaal stelsel zoals vermeld in het kaderbesluit sociale huur
            - BUS = Verhuring buiten het sociaal stelsel zoals vermeld in artikel 55bis tot en met artikel 55exies van het Kaderbesluit Sociale Huur
            - GW = Goede woning zoals vermeld in hoofdstuk 3 van het ministerieel besluit van 19/12/2008
            - COM = Verhuring als niet-residentieële ruimte (garages, winkels)
            - BOV = Bezettingsovereenkomst gesloten met bijwoners wanneer de laatste huurder overlijdt
            - Andere = Ander soort verhuring
            - NVT = Niet van toepassing
          enum:
            - BIS
            - BUS
            - GW
            - COM
            - BOV
            - Andere
            - NVT
      required:
        - woningBezettingsType
        - vmswWoningId
        - datumBezettingTot
        - huurstelsel
    Verhuring:
      type: object
      title: ''
      description: ''
      properties:
        '@type':
          type: string
          default: Verhuring
        huurder:
          $ref: '#/components/schemas/Agent'
        huurprijsberekening:
          type: array
          items:
            $ref: '#/components/schemas/Huurprijsberekening'
        tijdelijkHuurContract:
          type: boolean
        begindatumHuurContract:
          type: string
          description: Verplicht bij tijdelijk contract
          format: date
          pattern: yyyy-mm-dd
        einddatumHuurContract:
          type: string
          description: Verplicht bij tijdelijk contract
          format: date
          pattern: yyy-mm-dd
        basisHuurprijs:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        referentieHuurprijs:
          type: string
          format: double
          description: 'Is de referentiehuurprijs van de woning. Deze huurprijs geldt enkel tijdens de overgangsperiode. Gebruik als decimaal scheidingsteken een punt (“.”). Gebruik geen duizend-scheidingsteken, plusteken of enige andere opmaak. Dit veld is enkel verplicht voor woongelegenheden en dit zolang de overgangsregeling vermeld in het kaderbesluit sociale huur van toepassing is.'
          pattern: '[0-9]+\.?[0-9]*'
        patrimoniumkorting:
          type: string
          description: 'Dit veld is niet van toepassing tijdens de overgangsperiode. Is een decimaal getal. Gebruik als decimaal scheidingsteken een punt (“.”). Gebruik geen duizend-scheidingsteken, plusteken of enige andere opmaak. Dit veld is verplicht voor alle woongelegenheden verhuurd binnen het sociaal stelsel van zodra de patrimoniumkorting effectief ingevoerd wordt.'
          pattern: '[0-9]+\.?[0-9]*'
        energiecorrectie:
          type: string
          format: double
          description: 'De totale energiecorrectie. Voorlopig kan dit nog niet ingevuld worden. Is een decimaal getal. Gebruik als decimaal scheidingsteken een punt (“.”). Gebruik geen duizend-scheidingsteken, plusteken of enige andere opmaak. Dit veld is verplicht voor alle woongelegenheden verhuurd binnen het sociaal stelsel van zodra de energiecorrectie effectief ingevoerd wordt.'
          pattern: '[0-9]+\.?[0-9]*'
        huurlasten:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        toegepasteBasisHuurprijs:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        gezinsleden:
          type: array
          items:
            $ref: '#/components/schemas/Gezinslid'
        huurOpzegging:
          $ref: '#/components/schemas/HuurOpzegging'
      required:
        - tijdelijkHuurContract
    LeegstandsType:
      type: object
      x-examples: {}
      properties:
        '@type':
          type: string
          default: LeegstandsType
        structureel:
          type: boolean
        leegstandsTypeCode:
          type: integer
          description: |-
            Indien niet-structureel => opties:
            1 Overlijden van huurder
            2 Woning die leegstaat in afwachting van verhuring aan de huurde die door renovatie zijn sociale woning gaat ontruimen
            3 Frictieleegstand
      required:
        - structureel
    Huurprijsberekening:
      type: object
      properties:
        '@type':
          type: string
          default: Huurprijsberekening
        beginDatumHuurprijsberekening:
          type: string
          format: date
          pattern: yyyy-mm-dd
        eindDatumHuurprijsberekening:
          type: string
          format: date
          pattern: yyyy-mm-dd
        personenTenLaste:
          type: string
          format: double
          description: |-
            Is het aantal personen ten laste voor de betreffende huurder zoals van toepassing in het kaderbesluit sociale huur. Is niet altijd hetzelfde als het aantal gezinsleden. Is een getal tussen 0 en 99 (grenzen inbegrepen).
            Het cijfer kan ook **halve personen** ten laste bevatten. PTL is de som van Aantalkinderen en AantalHandicap. Dit veld is niet verplicht wanneer het winkels of garages betreft.
          pattern: '[0-9]+\.?[0-9]*'
        aantalKinderen:
          type: integer
          format: int32
        aantalMetHandicap:
          type: integer
          format: int32
        aantalGezinsleden:
          type: integer
          format: int32
        totaalInkomen:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        totaalInkomenNietGeindexeerd:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        reeleHuur:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        gezinskorting:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        onderbezettingsvergoeding:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
      required:
        - beginDatumHuurprijsberekening
        - eindDatumHuurprijsberekening
        - reeleHuur
    Gezinslid:
      type: object
      description: ''
      title: Gezinslid
      properties:
        '@type':
          type: string
          default: Gezinslid
        computerNummer:
          type: string
          description: |
            Het nummer waarmee de huurder in de databank van de SHM wordt geïdentificeerd.
        metHandicap:
          type: boolean
        gezinsRelatie:
          $ref: '#/components/schemas/RelatieType'
        persoon:
          $ref: '#/components/schemas/GeregistreerdPersoon'
      required:
        - gezinsRelatie
    Geboorte:
      title: Geboorte
      x-stoplight:
        id: nzn6f8k9i10uq
      type: object
      properties:
        '@type':
          type: string
          default: Geboorte
        datum:
          type: string
        plaats:
          $ref: '#/components/schemas/Plaats'
    Agent:
      title: Agent
      x-stoplight:
        id: r30hkva8og2gy
      type: object
      description: Dit is een persoon of organisatie aan wie de woning verhuurd wordt
      properties:
        '@type':
          type: string
          default: Agent
        persoon:
          $ref: '#/components/schemas/PersoonRegistratie'
        organisatie:
          $ref: '#/components/schemas/OrganisatieRegistratie'
    HuurOpzegging:
      title: HuurOpzegging
      x-stoplight:
        id: u407h8hjtuktk
      type: object
      properties:
        '@type':
          type: string
          default: HuurOpzegging
        UithuiszettingsReden:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
        UithuiszettingDetail:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
        UithuiszettingOpgestart:
          type: boolean
        UithuiszettingEffectief:
          type: boolean
        OntbindingsReden:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
        OntbindingsDetail:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
    Nationaliteit:
      title: Nationaliteit
      x-stoplight:
        id: 2xul36lbmwsvc
      type: object
      properties:
        '@type':
          type: string
          default: Nationaliteit
        nationaliteitscode:
          type: string
        nationaliteit:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
    GeregistreerdPersoon:
      title: GeregistreerdPersoon
      x-stoplight:
        id: yf0e42cfm26wc
      type: object
      properties:
        '@type':
          type: string
          default: 'https://data.vlaanderen.be/ns/persoon#GeregistreerdPersoon'
        registratie:
          $ref: '#/components/schemas/Identificator'
        voornaam:
          type: array
          items:
            type: string
        gebruikteVoornaam:
          type: string
        achternaam:
          type: array
          items:
            type: string
        volledigeNaam:
          type: string
        heeftGeboorte:
          $ref: '#/components/schemas/Geboorte'
        geslacht:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
        heeftNationaliteit:
          type: array
          items:
            $ref: '#/components/schemas/Nationaliteit'
    Identificator:
      title: Identificator
      x-stoplight:
        id: bipk6o53h7iof
      type: object
      properties:
        '@type':
          type: string
          default: Identificator
        identificator:
          type: string
      description: |
        Insznummer
    Response:
      title: Response
      x-stoplight:
        id: u18uoyp5urpwd
      type: object
      properties:
        '@context':
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/WoningBezetting'
    RelatieType:
      title: RelatieType
      type: object
      properties:
        '@type':
          type: string
          default: RelatieType
        spelling:
          type: string
          enum:
            - Onbekend
            - Gezinshoofd
            - Echtgenoot of Echtgenote
            - Zoon of Dochter
            - Schoonzoon of Schoondochter
            - Kleinzoon of Kleindochter
            - Vader of Moeder
            - Schoonvader of Schoonmoeder
            - Grootvader of Grootmoeder
            - Broer of Zuster
            - Schoonbroer of Schoonzuster
            - Verwant of Verwante
            - Zonder familieband
            - Stiefzoon of Stiefdochter
            - Achterkleinzoon of Achterkleindochter
            - Oom of Tante
            - Neef of Nicht (verwantschap 3de graad)
            - Neef of Nicht (verwantschap 4de graad)
            - Gemeenschappen of Tehuizen
        taal:
          type: string
          default: nl-BE
    Plaats:
      title: Plaats
      x-stoplight:
        id: wv6bi8bdfuxu3
      type: object
      properties:
        '@type':
          type: string
          description: 'http://purl.org/dc/terms/Location'
        plaatsnaam:
          type: array
          items:
            $ref: '#/components/schemas/TaalString'
    WoningBezettingsType:
      type: object
      title: WoningBezettingsType
      x-stoplight:
        id: rb7gf278qcyrv
      enum:
        - Verhuring
        - Leegstand
      properties:
        '@type':
          type: string
          default: WoningBezettingsType
        spelling:
          type: string
        taal:
          type: string
    AgentType:
      title: AgentType
      x-stoplight:
        id: b3iwm5jjn8pft
      type: object
      properties:
        '@type':
          type: string
          default: AgentType
        spelling:
          type: string
        lang:
          type: string
      description: Persoon of organisatie die de woning zal huren
    PersoonRegistratie:
      title: PersoonRegistratie
      x-stoplight:
        id: 6fojgqsqwox32
      type: object
      properties:
        '@type':
          type: string
          default: 'Huurder'
        registratie:
          $ref: '#/components/schemas/Identificator'
        inkomen:
          type: string
          format: double
          pattern: '[0-9]+\.?[0-9]*'
        inkomensjaar:
          type: integer
        inkomenFictief:
          type: boolean
    OrganisatieRegistratie:
      title: OrganisatieRegistratie
      x-stoplight:
        id: ozefub6q99za5
      type: object
      properties:
        '@type':
          type: string
          default: 'https://data.vlaanderen.be/ns/organisatie'
        registratie:
          $ref: '#/components/schemas/Identificator'
        wettelijkeNaam:
          type: string
    #----------------------- END CWR Woningbezetting payloads -------------------------------

    #----------------------- START Notifications payloads -------------------------------

    AsynchroonBerichtResponse:
      type: object
      properties:
        version:
          type: string
          nullable: true
        sender:
          type: string
          nullable: true
        resource:
          type: string
          nullable: true
        magdaResource:
          type: string
          nullable: true
          description: Resource to be used on the MAGDA platform. This element is not present if the VMSW resource can not be parsed.
        identification:
          type: string
          nullable: true
        magdaIdentification:
          type: string
          nullable: true
          description: Identification to be used on the MAGDA platform. This element is not present if the VMSW identification can not be parsed.
        timeStamp:
          type: string
          format: date-time
        changeType:
          enum:
            - C
            - U
            - D
          type: string
          description: Oplijsting mogelijke acties die via berichtenflow kan gebeuren.
        changeReasonCode:
          type: string
          nullable: true
        changeReasonComment:
          type: string
          nullable: true
        receiver:
          type: string
          nullable: true
      additionalProperties: false

    #----------------------- END Notifications payloads -------------------------------


    #----------------------- START Markthuurwaarden payloads --------------------------
    Huurschatting:
      type: object
      properties:
        woningKenmerkScores:
          type: array
          items:
            $ref: '#/components/schemas/WoningKenmerkScore'
          nullable: true
        markthuurwaardePerSchattingsmodel:
          type: array
          items:
            $ref: '#/components/schemas/MarkthuurwaardeSchattingsmodel'
          nullable: true
      additionalProperties: false
    HuurschattingSimulatie:
      type: object
      properties:
        woningKenmerkScores:
          type: array
          items:
            $ref: '#/components/schemas/WoningKenmerkScore'
          nullable: true
        markthuurwaardePerSchattingsmodel:
          type: array
          items:
            $ref: '#/components/schemas/MarkthuurwaardeSimulatieSchattingsmodel'
          nullable: true
      additionalProperties: false
    Markthuurwaarde:
      type: object
      properties:
        voorWoning:
          type: string
          format: uri
          example: >-
            https://cwr.vmsw.vonet.be/api/v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}
          nullable: true
        magdaVoorWoning:
          type: string
          format: uri
          nullable: true
          description: Resource to be used on the MAGDA platform. This element is not present if the VMSW resource can not be parsed.
        opReferentieDatum:
          $ref: '#/components/schemas/Huurschatting'
        opHuidigeStaat:
          $ref: '#/components/schemas/Huurschatting'
      additionalProperties: false
    MarkthuurwaardeResponse:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          example: >-
            https://cwr.vmsw.vonet.be/api/v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}/markthuurwaarden
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: MarkthuurwaardeResource
          nullable: true
        value:
          $ref: '#/components/schemas/Markthuurwaarde'
      additionalProperties: false
    MarkthuurwaardeSchattingsmodel:
      type: object
      properties:
        '@type':
          type: string
          default: MarkthuurwaardeSchattingsmodelResource
          nullable: true
        bedragInclusiefAfwijkingEnAfronding:
          type: integer
          format: int32
        toegestaneAfwijkingPercentage:
          type: number
          format: double
        foutmelding:
          type: string
          nullable: true
        jaar:
          type: integer
          format: int32
        bedrag:
          type: number
          format: double
        berekendOp:
          type: string
          format: date-time
      additionalProperties: false
    MarkthuurwaardeSimulatieResponse:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: MarkthuurwaardeSimulatieResource
          nullable: true
        value:
          $ref: '#/components/schemas/HuurschattingSimulatie'
      additionalProperties: false
    MarkthuurwaardeSimulatieSchattingsmodel:
      type: object
      properties:
        '@type':
          type: string
          default: MarkthuurwaardeSimulatieSchattingsmodelResource
          nullable: true
        jaar:
          type: integer
          format: int32
        bedrag:
          type: number
          format: double
        berekendOp:
          type: string
          format: date-time
      additionalProperties: false
    ProblemDetail:
      type: object
      properties:
        type:
          type: string
          default: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{Status}
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: false
    WoningKenmerkDefinitie:
      type: object
      properties:
        '@id':
          type: string
          format: uri
          example: /v1/woningkenmerken/{code}
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: WoningKenmerkDefinitieResource
          nullable: true
        label:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
      additionalProperties: false
    WoningKenmerkScore:
      type: object
      properties:
        '@type':
          type: string
          default: WoningKenmerkScoreResource
          nullable: true
        woningKenmerk:
          $ref: '#/components/schemas/WoningKenmerkDefinitie'
        score:
          type: string
          description: >-
            Waarde (score) voor het kenmerk. De waarde moet voldoen aan de
            schaal die gekoppeld is aan het kenmerk.
          nullable: true
      additionalProperties: false
    WoningKenmerkScoreLijst:
      type: object
      properties:
        woningKenmerkSimulatieScores:
          type: array
          items:
            $ref: '#/components/schemas/WoningKenmerkScoreWijziging'
          nullable: true
      additionalProperties: false
    WoningKenmerkScoreWijziging:
      type: object
      properties:
        code:
          type: string
          description: Code om het woningkenmerk uniek te identificeren
          nullable: true
        score:
          type: string
          description: >-
            Score voor het kenmerk. De score moet voldoen aan de schaal die
            gekoppeld is aan het kenmerk.
          nullable: true
      additionalProperties: false
    #----------------------- END Markthuurwaarden payloads ----------------------------

    #----------------------- START Conditiescore payloads ----------------------------

    ConditiescoreWoningKenmerkScore:
      type: object
      properties:
        '@type':
          type: string
          default: ConditiescoreWoningKenmerkScoreResource
          nullable: true
          readOnly: true
        woningKenmerk:
          $ref: '#/components/schemas/WoningKenmerkDefinitie'
        score:
          type: string
          description: Score voor het kenmerk. De score moet voldoen aan de schaal die gekoppeld is aan het kenmerk.
          nullable: true
          readOnly: true
        scoreLabel:
          type: string
          nullable: true
          readOnly: true
        wegingsfactorProcent:
          type: number
          format: double
        totaalProcent:
          type: number
          format: double
      additionalProperties: false

    ConditiescoreGroep:
      type: object
      properties:
        naam:
          type: string
          nullable: true
        scores:
          type: array
          items:
            $ref: '#/components/schemas/ConditiescoreWoningKenmerkScore'
          nullable: true
        wegingsfactorProcent:
          type: number
          format: double
        totaalProcent:
          type: number
          format: double
      additionalProperties: false
    ConditiescoreCategorie:
      type: object
      properties:
        naam:
          type: string
          nullable: true
        groepen:
          type: array
          items:
            $ref: '#/components/schemas/ConditiescoreGroep'
          nullable: true
      additionalProperties: false

    Conditiescore:
      type: object
      properties:
        voorWoning:
          type: string
          format: uri
          example: >-
            https://cwr.vmsw.vonet.be/api/v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}
          nullable: true
        magdaVoorWoning:
          type: string
          format: uri
          nullable: true
          description: Resource to be used on the MAGDA platform. This element is not present if the VMSW resource can not be parsed.
        gebouwstaat:
          $ref: '#/components/schemas/ConditiescoreCategorie'
        veiligheidEnGezondheid:
          $ref: '#/components/schemas/ConditiescoreCategorie'
        gebouwstaatScoreProcent:
          type: number
          format: double
        gebouwstaatWegingsfactorProcent:
          type: number
          format: double
        veiligheidEnGezondheidScoreProcent:
          type: number
          format: double
        veiligheidEnGezondheidWegingsfactorProcent:
          type: number
          format: double
        totaalScoreProcent:
          type: number
          format: double
    
    ConditiescoreResponse:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          example: >-
            https://cwr.vmsw.vonet.be/api/v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}/conditiescore
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: ConditiescoreVoorWoningResource
          nullable: true
        value:
          $ref: '#/components/schemas/Conditiescore'

    ConditiescoreSimulatie:
      type: object
      properties:
        gebouwstaat:
          $ref: '#/components/schemas/ConditiescoreCategorie'
        veiligheidEnGezondheid:
          $ref: '#/components/schemas/ConditiescoreCategorie'
        gebouwstaatScoreProcent:
          type: number
          format: double
        gebouwstaatWegingsfactorProcent:
          type: number
          format: double
        veiligheidEnGezondheidScoreProcent:
          type: number
          format: double
        veiligheidEnGezondheidWegingsfactorProcent:
          type: number
          format: double
        totaalScoreProcent:
          type: number
          format: double
      additionalProperties: false

    ConditiescoreSimulatieResponse:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          example: >-
            https://cwr.vmsw.vonet.be/api/v1/woonmaatschappijen/{organisatieId}/markthuurwaarden/simulatie#2023-04-13T16:15
          nullable: true
        '@type':
          type: string
          default: ConditiescoreSimulatieResource
          nullable: true
        value:
          $ref: '#/components/schemas/ConditiescoreSimulatie'
      additionalProperties: false

    #----------------------- END Conditiescore payloads ----------------------------

    #----------------------- START WoningKenmerken payloads -------------------------------
    WoningKenmerkScoreWijzigen:
      type: object
      properties:
        woningKenmerkScores:
          type: array
          items:
            $ref: '#/components/schemas/WoningKenmerkScoreWijziging'
          nullable: true
      additionalProperties: false
    WoningKenmerkScoresMetWoning:
      type: object
      properties:
        voorWoning:
          type: string
          format: uri
          example: /v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}
          nullable: true
        magdaVoorWoning:
          type: string
          format: uri
          nullable: true
          description: Resource to be used on the MAGDA platform. This element is not present if the VMSW resource can not be parsed.
        scores:
          type: array
          items:
            $ref: '#/components/schemas/WoningKenmerkScore'
          nullable: true
      additionalProperties: false
    WoningKenmerkScoresResponse:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          example: /v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}/woningkenmerkscores
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: WoningKenmerkScoresMetWoningResource
          nullable: true
        value:
          $ref: '#/components/schemas/WoningKenmerkScoresMetWoning'
      additionalProperties: false
    WoningKenmerkCategorie:
      type: string
      enum:
        - Alles
        - Huurschatting
        - Energiecorrectie
        - Conditiemeting
        - ERP
        - PV forfait
    #----------------------- END WoningKenmerken payloads -------------------------------

    #----------------------- START Energiecorrectie payloads ----------------------------

    WoningEnergiecorrectieResponse:
      type: object
      properties:
        '@context':
          type: string
          nullable: true
        '@id':
          type: string
          format: uri
          example: '{requestUrl}'
          nullable: true
        '@magdaId':
          type: string
          format: uri
          nullable: true
        '@type':
          type: string
          default: WoningEnergiecorrectieResource
          nullable: true
        value:
          $ref: '#/components/schemas/WoningEnergiecorrectieResource'
      additionalProperties: false
    WoningEnergiecorrectieResource:
      type: object
      properties:
        voorWoning:
          type: string
          format: uri
          example: /v1/woonmaatschappijen/{organisatieId}/woningen/{vmswWoningId}
          nullable: true
        magdaVoorWoning:
          type: string
          format: uri
          nullable: true
        referentieDatumHuur:
          type: string
          format: date
        epcGegevens:
          $ref: '#/components/schemas/EpcGegevensResource'
        woningKenmerkScores:
          $ref: '#/components/schemas/EnergiecorrectieWoningKenmerkScoresResource'
        voorPeriode:
          $ref: '#/components/schemas/EnergiecorrectieVoorPeriodeResource'
      additionalProperties: false
    EpcGegevensResource:
      type: object
      properties:
        certificaatNummer:
          type: string
          nullable: true
        epcType:
          enum:
            - EpcBestaand
            - EpcBouw
          type: string
        epcKengetal:
          type: number
          format: double
        ePeil:
          type: number
          format: double
        kPeil:
          type: number
          format: double
        datumEpc:
          type: string
          format: date
        beschermdVolume:
          type: number
          format: double
        totaleVerliesoppervlakte:
          type: number
          format: double
        gemiddeldeUWaardeSchil:
          type: number
          format: double
        energieVerbruikRuimteVerwarming:
          type: number
          format: double
        energieVerbruikSanitairWarmWater:
          type: number
          format: double
        brutoBruikbareVloerOppervlakte:
          type: number
          format: double
        totaleOppervlakteVensters:
          type: number
          format: double
      additionalProperties: false
    EnergiecorrectieWoningKenmerkScoresResource:
      type: object
      properties:
        energieDragerRuimteVerwarming:
          $ref: '#/components/schemas/WoningKenmerkScore'
        energieDragerSanitairWarmWater:
          $ref: '#/components/schemas/WoningKenmerkScore'
      additionalProperties: false
    EnergiecorrectieVoorPeriodeResource:
      type: object
      properties:
        datumVanaf:
          type: string
          format: date
        datumTot:
          type: string
          format: date
        dagenInPeriode:
          type: number
          format: double
        maandenInPeriode:
          type: number
          format: double
        bedragSanitairWarmWater:
          type: number
          format: double
        bedragRuimteVerwarming:
          type: number
          format: double
        bedragTotaalPeriode:
          type: number
          format: double
        bedragTotaalPerMaand:
          type: number
          format: double
      additionalProperties: false
    EpcVersie:
      type: string
      enum:
        - Huidig
        - Referentie
    #----------------------- END Energiecorrectie payloads ----------------------------


    ErrorMessage:
      required:
        - detail
        - title
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation.
        status:
          type: string
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      description: A representation of a generic error message

  securitySchemes:
    oauth2:
      type: apiKey
      description: "Standard Authorization header using the Bearer scheme. Example: \"bearer {token}\""
      name: Authorization
      in: header