components:
  parameters:
    DocumentId:
      description: id van het document
      in: path
      name: documentId
      required: true
      schema:
        format: int64
        type: integer
    VerzoekId:
      description: id van het verzoek
      in: path
      name: verzoekId
      required: true
      schema:
        format: int64
        type: integer
  requestBodies:
    Document:
      content:
        multipart/form-data:
          schema:
            properties:
              file:
                description: content van het document
                format: binary
                type: string
            required:
            - file
            type: object
  responses:
    BestandGeinfecteerd:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/406'
      description: Content Scanning geeft aan dat de geüploade file een virus bevat
    BestandTeGroot:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/413'
      description: Content Scanning geeft aan dat de geüploade file te groot is
    BestandsformaatNietGeaccepteerd:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/415'
      description: Content Scanning geeft aan dat het mimetype van de geüploade file
        niet voorkomt in de whitelist
    GeenToestemmingVoorActie:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/401'
      description: Gebruiker heeft geen toestemming om deze actie uit te voeren
    GeenToestemmingVoorActieHAL:
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/401'
      description: Gebruiker heeft geen toestemming om deze actie uit te voeren
    GeenToestemmingVoorVerzoek:
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/401'
      description: Gebruiker heeft geen toestemming voor dit verzoek
    InterneServerfout:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/500'
      description: Interne serverfout
    InterneServerfoutHAL:
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/500'
      description: Interne serverfout
    ValidatieFoutBijComplete:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidatieFout'
      description: Fouten in het verzoek
    ValidatieFoutBijDocument:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidatieFout'
      description: Fouten in body (missing parameter; niet bestaande parameter; invalide
        waarde voor parameter)
    ValidatieFoutBijInit:
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/ValidatieFout'
      description: Fouten in het verzoek request body (missing parameter; niet bestaande
        parameter; invalide waarde voor parameter)
    VerzoekNietGevonden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/404'
      description: Verzoek niet gevonden
    VerzoekOfDocumentNietGevonden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/404'
      description: Verzoek of document niet gevonden
    VerzoekVerdwenen:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/410'
      description: Verzoek kan niet meer worden aangepast
  schemas:
    "401":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: U bent niet geautoriseerd voor dit verzoek.
        instance: 539f14d69f2fba81
        status: 401
        title: Authenticatiegegevens ontbreken of zijn onjuist.
        type: https://content.omgevingswet.overheid.nl/id/concept/Ongeautoriseerd
      properties:
        detail:
          type: string
    "404":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: Verzoek niet gevonden.
        instance: 539f14d69f2fba81
        status: 404
        title: Niet gevonden.
        type: https://content.omgevingswet.overheid.nl/id/concept/BestaatNiet
      properties:
        detail:
          type: string
    "406":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: In het bestand 'test.xlsx' zit een virus. Voeg een bestand zonder
          virus toe.
        instance: 539f14d69f2fba81
        status: 406
        title: Geinfecteerd
        type: https://content.omgevingswet.overheid.nl/fout/id/concept/knooppunt/contentscanning/virus-gedetecteerd
      properties:
        detail:
          type: string
    "410":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: Het verzoek is al ingediend.
        instance: 539f14d69f2fba81
        status: 410
        title: Verdwenen
        type: https://content.omgevingswet.overheid.nl/id/concept/Verdwenen
      properties:
        detail:
          type: string
    "413":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: Het bestand 'test.png' is te groot. Voeg een kleiner bestand toe (max.
          250 MB).
        instance: 539f14d69f2fba81
        status: 413
        title: Te groot
        type: https://content.omgevingswet.overheid.nl/fout/id/concept/knooppunt/contentscanning/bestand-te-groot
      properties:
        detail:
          type: string
    "415":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: Het bestandsformaat van 'test.tgz' wordt niet geaccepteerd. Voeg een
          bestand met een ander formaat toe.
        instance: 539f14d69f2fba81
        status: 415
        title: Niet Toegestaan
        type: https://content.omgevingswet.overheid.nl/fout/id/concept/knooppunt/contentscanning/mimetype-niet-toegestaan
      properties:
        detail:
          type: string
    "500":
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        detail: Er is iets mis gegaan.
        instance: 539f14d69f2fba81
        status: 500
        title: Interne serverfout
        type: https://content.omgevingswet.overheid.nl/id/concept/ServerFout
      properties:
        detail:
          type: string
    Activiteit:
      oneOf:
      - required:
        - subactiviteit
      - required:
        - vraagAntwoord
      properties:
        bijlage:
          description: Bijlagen behorende bij een Activiteit. Leeg indien er sprake
            is van een subactiveit.
          items:
            $ref: '#/components/schemas/Bijlage'
          maxItems: 10000
          type: array
        id:
          description: De 'functioneleStructuurReferentie' van de activiteit.
          maxLength: 500
          type: string
        subactiviteit:
          description: een sub-activiteit. Verplicht als er sprake is van een sub-activiteit.
          items:
            $ref: '#/components/schemas/SubActiviteit'
          maxItems: 1000
          type: array
        urn:
          description: De 'urn' van de activiteit. Ook wel imow-id genoemd.
          maxLength: 256
          type: string
        vraagAntwoord:
          description: Dit zijn antwoorden op de activiteit vragen. Activiteit vragen
            zijn vragen verkregen van de BepalenIndieningsvereisten service. Leeg
            indien er sprake is van een subactivieit.
          items:
            $ref: '#/components/schemas/VraagAntwoord'
          maxItems: 10000
          type: array
      required:
      - id
      - urn
      type: object
    Adres:
      properties:
        letter:
          type: string
        nummer:
          type: string
        nummeraanduidingId:
          type: string
        postcode:
          type: string
        straat:
          type: string
        toevoeging:
          type: string
        woonplaats:
          type: string
      required:
      - nummeraanduidingId
      - straat
      - nummer
      - woonplaats
      type: object
    BevoegdGezag:
      example:
        organisatieIdentificatieNummer: "00000000000123456789"
      properties:
        organisatieIdentificatieNummer:
          pattern: ^\d{20}$
          type: string
      required:
      - organisatieIdentificatieNummer
      type: object
    Bijlage:
      description: Een beantwoordde bijlage vraag met een koppeling naar het te uploaden
        document.
      example:
        documentId: 2
        id: "1"
      properties:
        documentId:
          description: het id van het document dat deze bijlage ondersteunt
          type: number
        id:
          description: het id van de vraag dat deze bijlage ondersteunt
          maxLength: 256
          type: string
      required:
      - id
      - documentId
      type: object
    BronLocatie:
      description: De bron waarmee geometrie locatie is verkregen.
      oneOf:
      - $ref: '#/components/schemas/GelabeldAdres'
      - $ref: '#/components/schemas/GelabeldePostcode'
      - $ref: '#/components/schemas/GelabeldKadastraal'
      - $ref: '#/components/schemas/GelabeldeCoordinaat'
      properties:
        adres:
          $ref: '#/components/schemas/Adres'
        coordinaten:
          $ref: '#/components/schemas/Coordinaat'
        kadastraal:
          $ref: '#/components/schemas/Kadastraal'
        postcode:
          $ref: '#/components/schemas/Postcode'
      type: object
    Coordinaat:
      properties:
        geometrie:
          description: Punt of vlak waar het project wordt uitgevoerd.
          oneOf:
          - $ref: '#/components/schemas/Point'
          - $ref: '#/components/schemas/Polygon'
          - $ref: '#/components/schemas/GeometryCollection'
        stelsel:
          enum:
          - WGS84
          - ETRS89
          - RD
          type: string
      required:
      - stelsel
      - geometrie
      type: object
    Document:
      description: De beschrijving van een document (meta data). De bijbehorende inhoud
        van het document (content) wordt aan het verzoek toegevoegd middels /verzoeken/{verzoekId}/documenten/{documentId}
        of /ideeverkenningen/{verzoekId}/documenten/{documentId}.
      example:
        bestandsnaam: situatieschets-1.0.pdf
        id: 2
        vertrouwelijk: true
      properties:
        bestandsnaam:
          maxLength: 256
          type: string
        id:
          description: Een willekeurig nummer waarmee een document uniek wordt geidentificeerd
            binnen de context van het verzoek. Kan bijvoorbeeld een volgnummer zijn.
          type: integer
        vertrouwelijk:
          description: Geeft aan of de bijlage als vertrouwelijk moet worden behandeld.
          type: boolean
      required:
      - id
      - bestandsnaam
      - vertrouwelijk
      type: object
    Documenten:
      items:
        $ref: '#/components/schemas/Document'
      maxItems: 10000
      type: array
    Fout:
      properties:
        instance:
          type: string
        status:
          format: int64
          type: integer
        title:
          type: string
        type:
          type: string
      required:
      - type
      - title
      - status
    GelabeldAdres:
      example:
        adres:
          letter: a
          nummer: "4"
          nummeraanduidingId: "0935200000064319"
          postcode: 2288 GK
          straat: Lange Kleiweg
          toevoeging: b
          woonplaats: Rijswijk
      properties:
        adres:
          $ref: '#/components/schemas/Adres'
      required:
      - adres
      type: object
    GelabeldKadastraal:
      example:
        kadastraal:
          gemeenteCode: GVH11
          perceelNummer: 10815
          sectie: P
      properties:
        kadastraal:
          $ref: '#/components/schemas/Kadastraal'
      required:
      - kadastraal
      type: object
    GelabeldeCoordinaat:
      example:
        coordinaten:
          geometrie:
            coordinates:
            - 52.08811
            - 4.315099
            type: Point,
          stelsel: ETRS89
      properties:
        coordinaten:
          $ref: '#/components/schemas/Coordinaat'
      required:
      - coordinaten
      type: object
    GelabeldePostcode:
      example:
        postcode:
          letter: a
          nummer: "4"
          nummeraanduidingId: "0935200000064319"
          postcode: 2288 GK
          toevoeging: b
      properties:
        postcode:
          $ref: '#/components/schemas/Postcode'
      required:
      - postcode
      type: object
    GeometryCollection:
      description: GeoJSON GeometryCollection gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.8
        Alleen een GeometryCollection met Polygonen wordt ondersteund.
      example:
        geometries:
        - coordinates:
          - - - 92879.88
              - 436405.07
            - - 93390.88
              - 436893.58
            - - 92968.36
              - 436872.3
            - - 92879.88
              - 436405.07
          - - - 92870.88
              - 436400.07
            - - 93390.88
              - 436893.58
            - - 92968.36
              - 436872.3
            - - 92870.88
              - 436400.07
          type: Polygon
        - coordinates:
          - - - 92879.88
              - 436405.07
            - - 93390.88
              - 436893.58
            - - 92968.36
              - 436872.3
            - - 92879.88
              - 436405.07
          - - - 92870.88
              - 436400.07
            - - 93390.88
              - 436893.58
            - - 92968.36
              - 436872.3
            - - 92870.88
              - 436400.07
          type: Polygon
        type: GeometryCollection
      properties:
        geometries:
          description: De geometries van de GeometryCollection volgens https://tools.ietf.org/html/rfc7946#section-3.1.8
          items:
            $ref: '#/components/schemas/Polygon'
          type: array
        type:
          enum:
          - GeometryCollection
          type: string
      required:
      - type
      - geometries
      title: Vlak
      type: object
    Health:
      description: Health
      example:
        groups:
        - downstreamServices
        - self
        status: UP
      properties:
        groups:
          items:
            type: string
          type: array
        status:
          enum:
          - UP
          - DOWN
          - OUT_OF_SERVICE
          type: string
    Ideeverkenning:
      properties:
        bevoegdGezag:
          $ref: '#/components/schemas/BevoegdGezag'
        contactgegevens:
          description: 'Het Idee wordt ingediend door een gemachtigde òf door de initiatiefnemer.  Van
            deze persoon wordt voorletters, eventueel tussenvoegsel, naam en telefoonnummer
            en/of emailadres ingevuld.  Daarnaast als het een NNP is bedrijfsnaam
            en kvkNummer.  Dit alles wordt als het een gemachtigde is ingevuld met
            property gemachtigde en anders met property initiatiefnemer.  Als het
            een gemachtigde is wordt daarnaast ook informatie over de initiatiefnemer
            ingediend met als property initiatiefnemer: als het een NP is: voorletters,
            eventueel tussenvoegsel en naam.  En als het een NNP is bedrijfsnaam en
            kvkNummer.'
          properties:
            gemachtigde:
              $ref: '#/components/schemas/IdeeverkenningContactgegevens'
            initiatiefnemer:
              $ref: '#/components/schemas/IdeeverkenningContactgegevens'
          required:
          - initiatiefnemer
          type: object
        document:
          $ref: '#/components/schemas/Documenten'
        ideeverkenning:
          example:
            naam: Woongroep in de polder
            omschrijving: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
              Proin vehicula placerat lobortis. Etiam ultricies ultrices molestie.
          properties:
            naam:
              pattern: ^(?=.*\S).{1,200}$
              type: string
            omschrijving:
              pattern: ^[\s\S]{0,6144}$
              type: string
          required:
          - naam
          - omschrijving
          type: object
        locatie:
          $ref: '#/components/schemas/Locatie'
        machtiging:
          $ref: '#/components/schemas/Machtiging'
        verzoekMetadata:
          $ref: '#/components/schemas/IdeeverkenningMetadata'
      required:
      - verzoekMetadata
      - bevoegdGezag
      - locatie
      - ideeverkenning
      - contactgegevens
      type: object
    IdeeverkenningContactgegevens:
      example:
        emailadres: j.jansen@gmail.com
        naam: Jansen
        telefoonnummer: "0612345678"
        voorletters: J.A.
      properties:
        bedrijfsnaam:
          type: string
        emailadres:
          type: string
        kvkNummer:
          type: string
        naam:
          type: string
        telefoonnummer:
          type: string
        tussenvoegsel:
          type: string
        voorletters:
          type: string
      type: object
    IdeeverkenningHALResource:
      allOf:
      - $ref: '#/components/schemas/VerzoekHALResourceAlgemeen'
      example:
        _links:
          documenten:
            href: https://api.dso.nl/ideeverkenningen/1/documenten/2
          self:
            href: https://api.dso.nl/ideeverkenningen/1
        id: 1
    IdeeverkenningMetadata:
      example:
        doelVerzoek: Indienen
        projectId: "202"
        projectnaam: Woongroep
        verzoekType: Idee
      properties:
        doelVerzoek:
          enum:
          - Indienen
          - Aanvullen
          type: string
        initieelVerzoeknummer:
          $ref: '#/components/schemas/InitieelVerzoeknummer'
        projectId:
          $ref: '#/components/schemas/ProjectId'
        projectnaam:
          maxLength: 197
          minLength: 1
          type: string
        verzoekType:
          enum:
          - Idee
          type: string
      required:
      - verzoekType
      - doelVerzoek
      type: object
    Info:
      description: Info
      example:
        name: Verzoek indienen
        stamVersion:
        - "5"
        - "6"
        version: 1.1.0
      properties:
        name:
          type: string
        stamVersion:
          items:
            type: string
          type: array
        version:
          type: string
      required:
      - name
      - version
      - stamVersion
    InitieelVerzoeknummer:
      description: Het verzoeknummer waarop een 'Aanvulling' plaats vindt.
      type: string
    Intrekken:
      description: De optionele toelichting en optionele machtiging bij een intrekking.
      example:
        toelichting: Nvt vanwege verhuizing.
      properties:
        machtiging:
          $ref: '#/components/schemas/Machtiging'
          description: Geeft aan dat dit verzoek wordt ingetrokken middels een machtiging.
        toelichting:
          description: Een toelichting bij het intrekken van een verzoek.
          pattern: ^(?!\s*$).{1,6144}$
          type: string
      type: object
    InvalidParams:
      properties:
        name:
          type: string
        reason:
          type: string
        type:
          type: string
      required:
      - type
      - name
      - reason
    Kadastraal:
      properties:
        gemeenteCode:
          type: string
        perceelNummer:
          type: string
        sectie:
          type: string
      required:
      - gemeenteCode
      - sectie
      - perceelNummer
      type: object
    Link:
      example:
        href: https://api.dso.nl/verzoeken/1
      properties:
        href:
          type: string
      required:
      - href
    Locatie:
      description: Locatie waar het project wordt uitgevoerd. De geometrie van de
        locatie dient in RD-coördinaten te worden opgegeven. Binnen de bronlocatie
        moet de locatie worden vermeldt zoals de initiatiefnemer deze heeft opgegeven.
        Indien het een vlakaanduiding betreft kunnen dit coördinaten in RD, ETRS89
        of WGS84 zijn.
      example:
        bronLocatie: zie BronLocatie
        geometrie:
          coordinates:
          - 81523.058
          - 456081.0821
          type: Point
      properties:
        bronLocatie:
          $ref: '#/components/schemas/BronLocatie'
        geometrie:
          description: Punt of vlak waar het project wordt uitgevoerd.
          oneOf:
          - $ref: '#/components/schemas/Point'
          - $ref: '#/components/schemas/Polygon'
          - $ref: '#/components/schemas/GeometryCollection'
      required:
      - geometrie
      - bronLocatie
      type: object
    Machtiging:
      description: Geeft aan dat dit verzoek wordt ingediend middels een machtiging.
      example:
        gemachtigde: 8e37be08-bc34-11ea-b3de-0242ac130004
        initiatiefnemer: 3f9d875a-bc34-11ea-b3de-0242ac130004
        projectId: "202"
      properties:
        gemachtigde:
          description: Het DSO id van de gemachtigde. Als dit een organisatie betreft,
            dan het DSO id van de organisatie.
          type: string
        initiatiefnemer:
          description: Het DSO id van de initiatiefnemer. Als dit een organisatie
            betreft, dan het DSO id van de organisatie.
          type: string
        projectId:
          description: Het project id waarvoor de gemachtigde gemachtigd is. Indien
            er ook een projectId is gevuld in de VerzoekMetadata moeten deze gelijk
            zijn.
          type: string
      required:
      - initiatiefnemer
      - gemachtigde
      - projectId
      type: object
    Point:
      description: GeoJSON Point gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.2
      example:
        coordinates:
        - 1
        - 2
        type: Point
      properties:
        coordinates:
          $ref: '#/components/schemas/Position'
        type:
          enum:
          - Point
          type: string
      required:
      - type
      - coordinates
      title: Punt
      type: object
    Polygon:
      description: GeoJSON Polygon gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.6
      example:
        coordinates:
        - - - 92879.88
            - 436405.07
          - - 93390.88
            - 436893.58
          - - 92968.36
            - 436872.3
          - - 92879.88
            - 436405.07
        - - - 92870.88
            - 436400.07
          - - 93390.88
            - 436893.58
          - - 92968.36
            - 436872.3
          - - 92870.88
            - 436400.07
        type: Polygon
      properties:
        coordinates:
          description: De coördinaten van het polygoon volgens https://tools.ietf.org/html/rfc7946#section-3.1.6
          items:
            items:
              $ref: '#/components/schemas/Position'
            minItems: 4
            type: array
          type: array
        type:
          enum:
          - Polygon
          type: string
      required:
      - type
      - coordinates
      title: Vlak
      type: object
    Position:
      description: |
        De coördinaten van het punt waarbij het 1e item de
        x-coördinaat (longitude) is en het 2e item de y-coördinaat (latitude), gespecificeerd
        volgens https://tools.ietf.org/html/rfc7946#section-3.1.1

        ```
        RD; [92949.643, 436720.672]
        WGS84; [4.48531, 51.915512]
        ETRS89; [4.48531, 51.915512]
        ```
      example:
      - 92949.643
      - 436720.672
      items:
        type: number
      minItems: 2
      type: array
    Postcode:
      properties:
        letter:
          type: string
        nummer:
          type: string
        nummeraanduidingId:
          type: string
        postcode:
          type: string
        toevoeging:
          type: string
      required:
      - nummeraanduidingId
      - postcode
      - nummer
      type: object
    ProjectId:
      description: Geeft een mogelijkheid (voor een Bevoegd Gezag) tot het relateren
        van verschillende aanvragen onder eenzelfde project id. Indien er een machtiging
        is, moet dit projectId gelijk zijn aan het projectId van de machtiging.
      type: string
    ResultaatBevoegdGezag:
      example:
        naam: Provincie Zuid-Holland
        organisatieIdentificatieNummer: "00000000000123456789"
      properties:
        naam:
          type: string
        organisatieIdentificatieNummer:
          pattern: ^\d{20}$
          type: string
      required:
      - organisatieIdentificatieNummer
      - naam
      type: object
    ResultaatIngediendVerzoek:
      allOf:
      - $ref: '#/components/schemas/ResultaatVerwerktVerzoek'
      description: Het antwoord na een succesvolle indiening
      example:
        _links:
          intrekken: https://api.dso.nl/verzoeken/2019012100003/intrekken
          self: https://api.dso.nl/verzoeken/75
        behandeldienst:
          naam: Behandeldienst Zuid-Holland
          organisatieIdentificatieNummer: "00000000000987654321"
        bevoegdGezag:
          naam: Provincie Zuid-Holland
          organisatieIdentificatieNummer: "00000000000123456789"
        datumIngediend: "2019-01-21T10:01:47.457+01:00"
        verzoeknummer: "2019012100003"
        volgnummer: "000"
      properties:
        _links:
          properties:
            intrekken:
              $ref: '#/components/schemas/Link'
            self:
              $ref: '#/components/schemas/Link'
          type: object
    ResultaatIngediendeIdeeverkenning:
      allOf:
      - $ref: '#/components/schemas/ResultaatVerwerktVerzoek'
      description: Het antwoord na een succesvolle indiening
      example:
        _links:
          self: https://api.dso.nl/verzoeken/75
        bevoegdGezag:
          naam: Provincie Zuid-Holland
          organisatieIdentificatieNummer: "00000000000123456789"
        datumIngediend: "2019-01-21T10:01:47.457+01:00"
        verzoeknummer: "2019012100003"
        volgnummer: "000"
      properties:
        _links:
          properties:
            self:
              $ref: '#/components/schemas/Link'
          type: object
    ResultaatIngetrokkenVerzoek:
      allOf:
      - $ref: '#/components/schemas/ResultaatVerwerktVerzoek'
      description: Het antwoord na een succesvolle intrekking
      example:
        behandeldienst:
          naam: Behandeldienst Zuid-Holland
          organisatieIdentificatieNummer: "00000000000987654321"
        bevoegdGezag:
          naam: Provincie Zuid-Holland
          organisatieIdentificatieNummer: "00000000000123456789"
        datumIngediend: "2019-01-21T10:01:47.457+01:00"
        verzoeknummer: "2019012100003"
        volgnummer: "999"
    ResultaatVerwerktVerzoek:
      description: Het antwoord na een succesvolle indiening of intrekking
      properties:
        behandeldienst:
          $ref: '#/components/schemas/ResultaatBevoegdGezag'
        bevoegdGezag:
          $ref: '#/components/schemas/ResultaatBevoegdGezag'
        datumIngediend:
          format: date-time
          type: string
        verzoeknummer:
          type: string
        volgnummer:
          type: string
      required:
      - verzoeknummer
      - volgnummer
      - datumIngediend
      type: object
    SubActiviteit:
      properties:
        bijlage:
          items:
            $ref: '#/components/schemas/Bijlage'
          maxItems: 10000
          type: array
        id:
          description: De 'functioneleStructuurReferentie' van de subactiviteit.
          maxLength: 500
          type: string
        urn:
          description: De 'urn' van de subactiviteit. Ook wel imow-id genoemd.
          maxLength: 256
          type: string
        vraagAntwoord:
          description: Dit zijn antwoorden op de subactiviteit vragen. Subactiviteit
            vragen zijn vragen verkregen van de BepalenIndieningsvereisten service.
          items:
            $ref: '#/components/schemas/VraagAntwoord'
          maxItems: 10000
          type: array
      required:
      - id
      - urn
      - vraagAntwoord
      type: object
    ValidatieFout:
      allOf:
      - $ref: '#/components/schemas/Fout'
      example:
        invalid-params:
        - name: doelVerzoek
          reason: doelVerzoek is een verplicht veld
          type: https://content.omgevingswet.overheid.nl/id/concept/validatie/Verplicht
        status: 400
        title: Validatie mislukt
        type: https://content.omgevingswet.overheid.nl/id/concept/ValidatieMislukt
      properties:
        invalid-params:
          items:
            $ref: '#/components/schemas/InvalidParams'
          type: array
    Verzoek:
      properties:
        activiteit:
          description: Hier bevinden zich alle gegevens omtrent de geselecteerde activiteiten.
            De algemene set hoort hier ook bij.
          items:
            $ref: '#/components/schemas/Activiteit'
          maxItems: 1000
          type: array
        bevoegdGezag:
          $ref: '#/components/schemas/BevoegdGezag'
        document:
          $ref: '#/components/schemas/Documenten'
        locatie:
          $ref: '#/components/schemas/Locatie'
        machtiging:
          $ref: '#/components/schemas/Machtiging'
        verzoekMetadata:
          $ref: '#/components/schemas/VerzoekMetadata'
      required:
      - verzoekMetadata
      - bevoegdGezag
      - locatie
      - activiteit
      type: object
    VerzoekHALResource:
      allOf:
      - $ref: '#/components/schemas/VerzoekHALResourceAlgemeen'
      description: Het antwoord na een succesvol geïnitieerd verzoek. Als deze al
        is ingediend word ook informatie over het ingediende verzoek meegeleverd.
      example:
        _links:
          documenten:
            href: https://api.dso.nl/verzoeken/1/documenten/2
          self:
            href: https://api.dso.nl/verzoeken/1
        id: 1
      properties:
        ingediendVerzoek:
          $ref: '#/components/schemas/ResultaatVerwerktVerzoek'
    VerzoekHALResourceAlgemeen:
      properties:
        _links:
          properties:
            documenten:
              $ref: '#/components/schemas/Link'
            self:
              $ref: '#/components/schemas/Link'
          type: object
        id:
          format: int64
          type: integer
      type: object
    VerzoekMetadata:
      example:
        ambtshalve: false
        doelVerzoek: Initieren
        projectId: "202"
        verzoekType: Melding
      properties:
        ambtshalve:
          description: Geeft aan of het verzoek ambtshalve is ingediend door het Bevoegd
            Gezag.
          type: boolean
        doelVerzoek:
          enum:
          - Conceptverzoek
          - Initieren
          - Aanvullen
          type: string
        initieelVerzoeknummer:
          $ref: '#/components/schemas/InitieelVerzoeknummer'
        projectId:
          $ref: '#/components/schemas/ProjectId'
        verzoekType:
          enum:
          - Aanvraag vergunning
          - Melding
          - Informatie
          - Informatie ongewoon voorval
          - Aanvraag maatwerkvoorschrift
          - Melding gelijkwaardige maatregel
          - Aanvraag toestemming gelijkwaardige maatregel
          type: string
      required:
      - verzoekType
      - doelVerzoek
      - ambtshalve
      type: object
    VraagAntwoord:
      description: Alle beantwoordde vragen (ook bijlage vragen en vooringevulde antwoorden).
      example:
        antwoord: Herinrichting oprit
        id: "1"
      properties:
        antwoord:
          maxLength: 6144
          type: string
        id:
          maxLength: 256
          type: string
      required:
      - id
      - antwoord
      type: object
info:
  contact:
    name: DSO Ontwikkelaarsportaal
    url: https://developer.omgevingswet.overheid.nl/services/contact/
  description: |-
    De v4 van deze API is deprecated, gebruik v5. In v5 wordt het machtiging element vervangen met het rolaanduding element. Ook zijn de /info en /health endpoint definitief verwijderd. Ook is bij de fout responses de content-type aangepast van 'application/json' naar 'application/problem+json'. Als laatste is bij het adres het niet langer toegestaan om lege elementen mee te geven voor de verschillende elementen.
    Het indienen van een verzoek (aanvraag/melding/ideeverkenning). Met deze service kan er in een aantal stappen een verzoek ingediend worden als initiatiefnemer of gemachtigde. Deze service werkt volgens de [HATEOAS standaard](https://en.wikipedia.org/wiki/HATEOAS).
    Als eerste start men met het initiëren van een verzoek. Het resultaat hiervan bevat de locatie van het geïnitieerde verzoek en het verzoek met de link voor het toevoegen van documenten. Documenten dienen wat betreft bestandsnaam en content uniek te zijn.
      - **Ophalen**
        Door het verzoek op te halen krijgt men het verzoek met
        de link voor het toevoegen van documenten.
      - **Verwijderen**
        Hiermee verwijdert men het geïnitieerde (nog niet ingediende) verzoek.
      - **Indienen**
        Het geïnitieerde verzoek en eventueel toegevoegde documenten worden ingediend.
      - **Intrekken**
        Hiermee trekt men een eerder ingediend verzoek in.

    Er zijn verschillende types verzoeken. Voor het type "Idee" zijn er voor de bovenstaande stappen de endpoints op de paden die beginnen met "/ideeverkenningen". Voor de overige types verzoeken moeten de paden die beginnen met "/verzoeken" gebruikt worden. Dit onderscheid is er omdat de request body voor ideeverkenning anders is dan die van de overige types verzoeken.
  title: Verzoeken-Indienen
  version: 4.3.1
openapi: 3.0.3
paths:
  /:
    get:
      operationId: specification
      responses:
        "200":
          content:
            application/json:
              schema:
                example: '{"openapi": "3.0.3", ... }'
          description: OpenApi Specification Json
      summary: OpenApi Specification
      tags:
      - Meta
      x-auth-type: None
  /app-health:
    get:
      operationId: app-health
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
          description: Health
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActieHAL'
        "503":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
          description: Health
      summary: health info endpoint heeft een voorkeur boven de /health endpoint.
      tags:
      - Meta
  /app-info:
    get:
      operationId: app-info
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Info'
          description: Info
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActieHAL'
      summary: applicatie info endpoint heeft een voorkeur boven de /info endpoint.
      tags:
      - Meta
  /health:
    get:
      operationId: health
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
          description: Health
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActieHAL'
        "503":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
          description: Health
      summary: Deprecated health info, gebruik /app-health.
      tags:
      - Meta
  /ideeverkenningen:
    post:
      description: Er wordt een verzoek (voor ideeverkenning) geïnitieerd op basis
        van de meegestuurde gegevens.
      operationId: initieerVerzoekVoorIdeeverkenning
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ideeverkenning'
        description: Verzoek request body
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/IdeeverkenningHALResource'
          description: Het verzoek (HAL Resource)
          headers:
            Location:
              description: De url van het aangemaakte verzoek
              schema:
                type: string
        "400":
          $ref: '#/components/responses/ValidatieFoutBijInit'
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActieHAL'
        "500":
          $ref: '#/components/responses/InterneServerfoutHAL'
      summary: Initiëren van een verzoek voor ideeverkenning.
      tags:
      - Ideeverkenning
  /ideeverkenningen/{verzoekId}:
    delete:
      description: Verwijdert een nog niet ingediend verzoek (voor ideeverkenning).
      operationId: verwijderGeinitieerdVerzoekVoorIdeeverkenning
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      responses:
        "204":
          description: Verzoek verwijderd.
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActie'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
        "410":
          $ref: '#/components/responses/VerzoekVerdwenen'
        "500":
          $ref: '#/components/responses/InterneServerfout'
      summary: Verwijderen van een verzoek voor ideeverkenning.
      tags:
      - Ideeverkenning
    get:
      description: Haalt een nog niet ingediend verzoek (voor ideeverkenning) op met
        het opgegeven id. Retourneert een HAL resource waarin onder andere een link
        naar documenten staat waarmee documenten toegevoegd kunnen worden.
      operationId: haalGeinitieerdVerzoekVoorIdeeverkenningOp
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/IdeeverkenningHALResource'
          description: Het verzoek (HAL Resource)
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorVerzoek'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
      summary: Ophalen van een verzoek voor ideeverkenning.
      tags:
      - Ideeverkenning
    post:
      description: Markeert het verzoek (voor ideeverkenning) als ingediend. Het verzoek
        zal hierna beschikbaar worden gesteld aan het bevoegd gezag.
      operationId: dienGeinitieerdVerzoekVoorIdeeverkenningIn
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ResultaatIngediendeIdeeverkenning'
          description: Definitief indienen verzoek resultaat
        "400":
          $ref: '#/components/responses/ValidatieFoutBijComplete'
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActie'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
        "410":
          $ref: '#/components/responses/VerzoekVerdwenen'
        "500":
          $ref: '#/components/responses/InterneServerfout'
      summary: Indienen van het verzoek voor ideeverkenning.
      tags:
      - Ideeverkenning
  /ideeverkenningen/{verzoekId}/documenten/{documentId}:
    post:
      description: Voegt de content van een document met het opgegeven id toe aan
        het verzoek (voor ideeverkenning).
      operationId: voegDocumentToeVoorVerzoekVoorIdeeverkenning
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      - $ref: '#/components/parameters/DocumentId'
      requestBody:
        $ref: '#/components/requestBodies/Document'
      responses:
        "200":
          description: Document toegevoegd
        "400":
          $ref: '#/components/responses/ValidatieFoutBijDocument'
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActie'
        "404":
          $ref: '#/components/responses/VerzoekOfDocumentNietGevonden'
        "406":
          $ref: '#/components/responses/BestandGeinfecteerd'
        "410":
          $ref: '#/components/responses/VerzoekVerdwenen'
        "413":
          $ref: '#/components/responses/BestandTeGroot'
        "415":
          $ref: '#/components/responses/BestandsformaatNietGeaccepteerd'
        "500":
          $ref: '#/components/responses/InterneServerfout'
      summary: Voegt een document toe aan een verzoek voor ideeverkenning ten behoeve
        van een of meerdere gevraagde bijlagen.
      tags:
      - Ideeverkenning
      - Documenten
  /info:
    get:
      operationId: info
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Info'
          description: Info
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActieHAL'
      summary: Deprecated applicatie-info, gebruik /app-info.
      tags:
      - Meta
  /verzoeken:
    post:
      description: Er wordt een verzoek geïnitieerd op basis van de meegestuurde gegevens.
      operationId: initieerVerzoek
      parameters:
      - description: Geeft aan dat het gaat om een testverzoek en met welke datum
          de toepasbare regels worden bevraagd. Deze datum mag in de toekomst liggen
          (staging). Indien deze datum gevuld is dan moet het antwoord op de verzoeknaam
          vraag beginnen met '##Testverzoek:## '. Ook zal deze datum dan worden beschouwd
          als indiendatum. In het geval van een aanvulling wordt de testdatum genegeerd
          omdat de indiendatum van het initiële verzoek leidend is.
        example: "2022-11-20T09:12:28+01:00"
        in: header
        name: X-Staging-Test-Datum
        required: false
        schema:
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Verzoek'
        description: Verzoek request body
        required: true
      responses:
        "201":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/VerzoekHALResource'
          description: Het verzoek (HAL Resource)
          headers:
            Location:
              description: De url van het aangemaakte verzoek
              schema:
                type: string
        "400":
          $ref: '#/components/responses/ValidatieFoutBijInit'
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActieHAL'
        "500":
          $ref: '#/components/responses/InterneServerfoutHAL'
      summary: Initiëren van een verzoek.
      tags:
      - Verzoeken
  /verzoeken/{verzoekId}:
    delete:
      description: Verwijdert een nog niet ingediend verzoek.
      operationId: verwijderGeinitieerdVerzoek
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      responses:
        "204":
          description: Verzoek verwijderd.
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActie'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
        "410":
          $ref: '#/components/responses/VerzoekVerdwenen'
        "500":
          $ref: '#/components/responses/InterneServerfout'
      summary: Verwijderen van een verzoek.
      tags:
      - Verzoeken
    get:
      description: Haalt een nog niet ingediend verzoek op met het opgegeven id. Retourneert
        een HAL resource waarin onder andere een link naar documenten staat waarmee
        documenten toegevoegd kunnen worden.
      operationId: haalGeinitieerdVerzoekOp
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/VerzoekHALResource'
          description: Het verzoek (HAL Resource)
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorVerzoek'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
      summary: Ophalen van een verzoek.
      tags:
      - Verzoeken
    post:
      description: Markeert het verzoek als ingediend. Het verzoek zal hierna beschikbaar
        worden gesteld aan het bevoegd gezag.
      operationId: dienGeinitieerdVerzoekIn
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ResultaatIngediendVerzoek'
          description: Definitief indienen verzoek resultaat
        "400":
          $ref: '#/components/responses/ValidatieFoutBijComplete'
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActie'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
        "410":
          $ref: '#/components/responses/VerzoekVerdwenen'
        "500":
          $ref: '#/components/responses/InterneServerfout'
      summary: Indienen van het verzoek.
      tags:
      - Verzoeken
  /verzoeken/{verzoekId}/documenten/{documentId}:
    post:
      description: Voegt de content van een document met het opgegeven id toe aan
        het verzoek.
      operationId: voegDocumentToe
      parameters:
      - $ref: '#/components/parameters/VerzoekId'
      - $ref: '#/components/parameters/DocumentId'
      requestBody:
        $ref: '#/components/requestBodies/Document'
      responses:
        "200":
          description: Document toegevoegd
        "400":
          $ref: '#/components/responses/ValidatieFoutBijDocument'
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorActie'
        "404":
          $ref: '#/components/responses/VerzoekOfDocumentNietGevonden'
        "406":
          $ref: '#/components/responses/BestandGeinfecteerd'
        "410":
          $ref: '#/components/responses/VerzoekVerdwenen'
        "413":
          $ref: '#/components/responses/BestandTeGroot'
        "415":
          $ref: '#/components/responses/BestandsformaatNietGeaccepteerd'
        "500":
          $ref: '#/components/responses/InterneServerfout'
      summary: Voegt een document toe aan een verzoek ten behoeve van een of meerdere
        gevraagde bijlagen.
      tags:
      - Verzoeken
      - Documenten
  /verzoeken/{verzoeknummer}/intrekken:
    post:
      description: Trek een ingediend verzoek met het opgegeven verzoeknummer in.
        De reden van intrekken kan worden meegegeven.
      operationId: trekVerzoekIn
      parameters:
      - description: Het nummer van het verzoek.
        in: path
        name: verzoeknummer
        required: true
        schema:
          type: string
      - description: Geeft aan dat het gaat om een testverzoek en met welke datum
          de toepasbare regels worden bevraagd. Deze datum mag in de toekomst liggen
          (staging). Indien deze datum gevuld is dan moet het antwoord op de verzoeknaam
          vraag beginnen met '##Testverzoek:## '. Ook zal deze datum dan worden beschouwd
          als indiendatum.
        example: "2022-11-20T09:12:28+01:00"
        in: header
        name: X-Staging-Test-Datum
        required: false
        schema:
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Intrekken'
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultaatIngetrokkenVerzoek'
          description: Verzoek ingetrokken
        "401":
          $ref: '#/components/responses/GeenToestemmingVoorVerzoek'
        "404":
          $ref: '#/components/responses/VerzoekNietGevonden'
      summary: Intrekken van een bestaand verzoek.
      tags:
      - Intrekken
servers:
- url: /api/indienen/v4
tags:
- description: Documentgerelateerde acties
  name: Documenten
- description: Acties gerelateerd aan verzoeken van alle types behalve "Idee"
  name: Verzoeken
- description: Acties gerelateerd aan verzoeken van type "Idee"
  name: Ideeverkenning
- description: Acties voor het intrekken van ingediende verzoeken van alle types behalve
    "Idee".
  name: Intrekken
