components:
  parameters:
    crs:
      description: Het coordinatenstelsel (Coordinate Reference Systems) waarop geometrie
        parameters in het request zijn gebaseerd
      in: header
      name: Content-Crs
      required: false
      schema:
        default: EPSG:28992
        enum:
        - EPSG:28992
        type: string
    x_api_key:
      description: De api-key ter authenticatie, verkrijgbaar via het ontwikkelaarsportaal
      in: header
      name: x-api-key
      required: false
      schema:
        type: string
  responses:
    "400":
      content:
        application/json:
          schema:
            allOf:
            - properties:
                detail:
                  description: Meer detail informatie over de opgetreden fout
                  type: string
                instance:
                  description: Het unieke instance id van het request dat resulteerde
                    in de foutmelding.
                  type: string
                status:
                  description: De statuscode van de fout (= 400) overeenkomend met
                    de http-status code van de response.
                  format: int64
                  type: integer
                title:
                  description: Informatie over de opgetreden fout.
                  type: string
                type:
                  description: Het type fout dat opgetreden is. Bijvoorbeeld VALIDATIE_FOUT
                    of ONVERWACHTE_FOUT.
                  type: string
              required:
              - type
              - title
              - status
            - properties:
                invalid-params:
                  items:
                    properties:
                      name:
                        description: '''Naam van de parameter die een fout bevat,
                          bijvoorbeeld: activiteitFunctioneleStructuurRef'''
                        type: string
                      reason:
                        description: Bijvoorbeeld 'de activiteitFunctioneleStructuurRef
                          mag geen speciale karakters bevatten.'
                        type: string
                      type:
                        description: Een type van de fout, bijvoorbeeld 'Validatie
                          melding'
                        type: string
                    required:
                    - type
                    - name
                    - reason
                  type: array
      description: Fouten (missing parameter; niet bestaande parameter; invalide waarde
        voor parameter)
    "404":
      content:
        application/json:
          schema:
            allOf:
            - properties:
                detail:
                  description: Meer detail informatie over de opgetreden fout
                  type: string
                instance:
                  description: Het unieke instance id van het request dat resulteerde
                    in de foutmelding.
                  type: string
                status:
                  description: De statuscode van de fout (= 404) overeenkomend met
                    de http-status code van de response.
                  format: int64
                  type: integer
                title:
                  description: Informatie over de opgetreden fout.
                  type: string
                type:
                  description: Het type resource dat niet gevonden is.
                  type: string
              required:
              - type
              - title
              - status
            - properties:
                detail:
                  description: De identifier van het object dat niet gevonden is.
                    Bijvoorbeeld de URN van een activiteit.
                  type: string
                type:
                  description: Bevat informatie over het type object dat niet gevonden
                    is. Bijvoorbeeld ACTIVITY_NOT_FOUND of SUBACTIVITY_NOT_FOUND
                  type: string
      description: De gevraagde resource is niet gevonden
    "500":
      content:
        application/json:
          schema:
            properties:
              detail:
                description: Meer detail informatie over de opgetreden fout
                type: string
              instance:
                description: Het unieke instance id van het request dat resulteerde
                  in de foutmelding.
                type: string
              status:
                description: De statuscode (= 500) van de fout overeenkomend met de
                  http-status code van de response.
                format: int64
                type: integer
              title:
                description: Informatie over de opgetreden fout.
                type: string
              type:
                description: Het type fout dat opgetreden is. Bijvoorbeeld VALIDATIE_FOUT
                  of ONVERWACHTE_FOUT.
                type: string
            required:
            - type
            - title
            - status
      description: Er is een onverwachte technische fout opgetreden
  schemas:
    Activiteit:
      description: Een activiteit
      properties:
        functioneleStructuurRef:
          description: FunctioneleStructuurRef van de activiteit
          type: string
        typering:
          $ref: '#/components/schemas/ActiviteitTypering'
      required:
      - functioneleStructuurRef
      - typering
    ActiviteitMetSubactiviteiten:
      properties:
        functioneleStructuurRef:
          description: De verwijzing naar een regelbeheerobject van een geselecteerde
            activiteit in de functionele structuur in de Registratie Toepasbare Regels.
          type: string
        subFunctioneleStructuurRefs:
          deprecated: true
          description: Verwijzing naar regelbeheerobjecten van geselecteerde subactiviteiten
            in de functionele structuur in de Registratie Toepasbare Regels. Voor
            verfijnbare activiteiten dient de lijst minimaal 1 item bevatten. Voor
            niet-verfijnbare activiteiten dient de lijst leeg te zijn. Deprecated
            omdat de verfijnbaar functionaliteit deprecated is.
          items:
            type: string
          maxItems: 100
          type: array
      required:
      - functioneleStructuurRef
      - subFunctioneleStructuurRefs
    ActiviteitTypering:
      description: Typering van de activiteit
      enum:
      - Water
      - Milieubelastende
      - Overige
      type: string
    Behandeldienst:
      description: Een behandeldienst
      properties:
        naam:
          description: Naam van de behandeldienst. Als de naam niet opgehaald kon
            worden uit het OIN register, staat hier het OIN.
          type: string
        oin:
          description: OIN van de behandeldienst
          type: string
      required:
      - oin
      - naam
    BepalenBehandeldienstRequest:
      properties:
        _geo:
          $ref: '#/components/schemas/GeoQuery'
        activiteiten:
          description: Activiteiten waarvoor de behandeldienst moet worden bepaald
          items:
            $ref: '#/components/schemas/ActiviteitMetSubactiviteiten'
          maxItems: 100
          minItems: 1
          type: array
        bevoegdGezagOin:
          description: Het bevoegd gezag dat is geselecteerd bij het verzoek
          type: string
        datum:
          allOf:
          - $ref: '#/components/schemas/Datum'
          description: Het verzoek wordt uitgevoerd met de versie van de activiteiten
            die geldig zijn op deze datum. Indien geen datum meegegeven wordt het
            verzoek uitgevoerd tegen de op dit moment geldende activiteiten. Het formaat
            van de datum is dd-MM-yyyy
      required:
      - bevoegdGezagOin
      - activiteiten
      - _geo
    BepalenBevoegdGezagRequest:
      properties:
        _geo:
          $ref: '#/components/schemas/GeoQuery'
        activiteiten:
          description: Activiteiten waarvoor het bevoegd gezag moet worden bepaald,
            opgedeeld per verzoek, met eventueel subactiviteiten.
          items:
            $ref: '#/components/schemas/ActiviteitMetSubactiviteiten'
          maxItems: 100
          minItems: 1
          type: array
        datum:
          allOf:
          - $ref: '#/components/schemas/Datum'
          description: Het verzoek wordt uitgevoerd met de versie van de activiteiten
            die geldig zijn op deze datum. Indien geen datum meegegeven wordt het
            verzoek uitgevoerd tegen de op dit moment geldende activiteiten. Het formaat
            van de datum is dd-MM-yyyy
      required:
      - activiteiten
      - _geo
    BepalenConceptverzoekRequest:
      properties:
        _geo:
          $ref: '#/components/schemas/GeoQuery'
        activiteiten:
          description: Activiteiten waarvoor het conceptverzoek moet worden bepaald
          items:
            $ref: '#/components/schemas/ActiviteitMetSubactiviteiten'
          maxItems: 100
          minItems: 1
          type: array
        bevoegdGezagOin:
          description: Het bevoegd gezag dat is geselecteerd bij het verzoek
          type: string
        datum:
          allOf:
          - $ref: '#/components/schemas/Datum'
          description: Het verzoek wordt uitgevoerd met de versie van de activiteiten
            die geldig zijn op deze datum. Indien geen datum meegegeven wordt het
            verzoek uitgevoerd tegen de op dit moment geldende activiteiten. Het formaat
            van de datum is dd-MM-yyyy
      required:
      - bevoegdGezagOin
      - activiteiten
      - _geo
    Bestuurslaag:
      description: Bestuurslaag van een Organisatie
      enum:
      - rijk
      - provincie
      - waterschap
      - gemeente
      type: string
    BevoegdGezag:
      description: Een bevoegd gezag
      properties:
        afgeleid:
          description: Definieert of dit het afgeleide bevoegd gezag is waar het verzoek
            heen moet worden gestuurd. Als deze op true staat is dit het bevoegd gezag
            waar het verzoek volgens de afleiding heen moet worden gestuurd. false
            betekent dat dit een alternatief bevoegd gezag is wat de gebruiker kan
            kiezen. Normaal zal in een response één bevoegd gezag afgeleid=true hebben,
            maar bij een project locatie over bestuurlijke grenzen kunnen alle bevoegd
            gezagen van dezelfde bestuurslaag afgeleid=true hebben.
          type: boolean
        bestuurslaag:
          $ref: '#/components/schemas/Bestuurslaag'
        naam:
          description: Naam van het bevoegd gezag. Als de naam niet opgehaald kon
            worden uit het OIN register, staat hier het OIN.
          type: string
        oin:
          description: OIN van het bevoegd gezag
          type: string
      required:
      - oin
      - naam
      - bestuurslaag
      - afgeleid
    Conceptverzoek:
      description: Uitkomst van bepalen conceptverzoek
      properties:
        toegestaan:
          description: Is conceptverzoek toegestaan?
          type: boolean
      required:
      - toegestaan
    Datum:
      description: Datum in het formaat dd-MM-yyyy.
      example: 01-01-2023
      pattern: ^\d{2}-\d{2}-\d{4}$
      type: string
    GeoQuery:
      description: Filter op geografisch punt of vlak. Zie de [DSO API/URI strategie](https://iplo.nl/digitaal-stelsel/aansluiten/standaarden/api-en-uri-strategie).
      example:
        intersects:
          coordinates:
          - 155000
          - 463000
          type: Point
      properties:
        intersects:
          description: Punt of vlak waarmee het resultaat raakvlak moet hebben. Analoog
            aan ElasticSearch GeoShape Query (https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-geo-shape-query.html)
          oneOf:
          - description: GeoJSON Point gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.2
            properties:
              coordinates:
                description: De coördinaten van het punt waarbij het 1e item de x-coordinaat
                  is en het 2e item de y-coordinaat, gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.1
                items:
                  type: number
                minItems: 2
                type: array
              type:
                enum:
                - Point
                type: string
            required:
            - type
            - coordinates
            title: Point
            type: object
          - description: GeoJSON Polygon gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.6
            properties:
              coordinates:
                description: De coördinaten van een Polygon volgens https://tools.ietf.org/html/rfc7946#section-3.1.6
                items:
                  items:
                    $ref: '#/components/schemas/GeoQuery/properties/intersects/oneOf/0/properties/coordinates'
                  minItems: 4
                  type: array
                type: array
              type:
                enum:
                - Polygon
                type: string
            required:
            - type
            - coordinates
            title: Polygon
            type: object
          - description: GeoJSON MultiPolygon gespecificeerd volgens https://tools.ietf.org/html/rfc7946#section-3.1.7
            properties:
              coordinates:
                description: De coördinaten van een MultiPolygon volgens https://tools.ietf.org/html/rfc7946#section-3.1.7
                items:
                  $ref: '#/components/schemas/GeoQuery/properties/intersects/oneOf/1/properties/coordinates'
                type: array
              type:
                enum:
                - MultiPolygon
                type: string
            required:
            - type
            - coordinates
            title: MultiPolygon
            type: object
          - description: GeoJSon geometry collection volgens https://tools.ietf.org/html/rfc7946#section-3.1.8
            properties:
              geometries:
                items:
                  anyOf:
                  - $ref: '#/components/schemas/GeoQuery/properties/intersects/oneOf/0'
                  - $ref: '#/components/schemas/GeoQuery/properties/intersects/oneOf/1'
                  - $ref: '#/components/schemas/GeoQuery/properties/intersects/oneOf/2'
                type: array
              type:
                enum:
                - GeometryCollection
                type: string
            required:
            - geometries
            - type
            type: object
      required:
      - intersects
    ToestemmingResponse:
      properties:
        code:
          description: Code van de toestemming
          enum:
          - Vergunning
          - Melding
          - Informatie
          - InformatieOngewoonVoorval
          - AanvraagMaatwerkvoorschrift
          - MeldingGelijkwaardigeMaatregel
          - AanvraagToestemmingGelijkwaardigeMaatregel
          type: string
        waarde:
          description: Waarde van het toestemmingstype.
          type: string
      required:
      - code
      - waarde
    Verzoek:
      description: Verzoek bestaande uit 1 of meerdere activiteiten, bedoeld voor
        1 bevoegd gezag.
      properties:
        activiteiten:
          description: Activiteiten die gegroepeerd zijn in dit verzoek, in onbepaalde
            volgorde.
          items:
            $ref: '#/components/schemas/Activiteit'
          type: array
        bevoegdGezagen:
          description: Bevoegd gezagen waar het verzoek heen gestuurd kan worden
          items:
            $ref: '#/components/schemas/BevoegdGezag'
          type: array
        toestemming:
          $ref: '#/components/schemas/ToestemmingResponse'
      required:
      - toestemming
      - bevoegdGezagen
      - activiteiten
info:
  contact:
    name: Ontwikkelaarsportaal Omgevingswet
    url: https://developer.omgevingswet.overheid.nl/services/contact/
  description: Een API voor verzoeksroutering, waaronder het bepalen van de bevoegd
    gezagen voor het indienen van verzoeken.
  title: Verzoeksroutering
  version: 2.0.4
openapi: 3.1.0
paths:
  /:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                example: '{"openapi": "3.0.0", ... }'
          description: OpenApi Specification Json
      summary: OpenApi Specification
      tags:
      - Meta
  /behandeldienst/_bepalen:
    post:
      parameters:
      - $ref: '#/components/parameters/crs'
      - $ref: '#/components/parameters/x_api_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BepalenBehandeldienstRequest'
        description: Request body met de benodigde gegevens voor het bepalen van de
          behandeldienst
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Behandeldienst'
          description: De behandeldienst waar het verzoek naar gestuurd moet worden
        "400":
          $ref: '#/components/responses/400'
        "404":
          $ref: '#/components/responses/404'
        "500":
          $ref: '#/components/responses/500'
      summary: Het bepalen van de behandeldienst voor de activiteiten van een verzoek.
        Indien er geen behandeldienst gevonden kan worden zal een 404 geretourneerd
        worden.
  /bevoegdgezag/_bepalen:
    post:
      parameters:
      - $ref: '#/components/parameters/crs'
      - $ref: '#/components/parameters/x_api_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BepalenBevoegdGezagRequest'
        description: Request body met de benodigde gegevens voor het bepalen van het
          bevoegd gezag.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Verzoek'
                type: array
          description: Verzoeken met bijbehorend bevoegd gezag, gesorteerd op prioriteit.
        "400":
          $ref: '#/components/responses/400'
        "404":
          $ref: '#/components/responses/404'
        "500":
          $ref: '#/components/responses/500'
      summary: Het bepalen van de bevoegd gezagen voor de activiteiten, opgedeeld
        per verzoek.
  /conceptverzoek/_bepalen:
    post:
      parameters:
      - $ref: '#/components/parameters/crs'
      - $ref: '#/components/parameters/x_api_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BepalenConceptverzoekRequest'
        description: Request body met de benodigde gegevens voor het bepalen of conceptverzoek
          is toegestaan.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conceptverzoek'
          description: De uitkomst van de conceptverzoek bepaling.
        "400":
          $ref: '#/components/responses/400'
        "404":
          $ref: '#/components/responses/404'
        "500":
          $ref: '#/components/responses/500'
      summary: Het bepalen of een conceptverzoek is toegestaan voor de activiteiten
        van een verzoek.
  /health:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  groups:
                    items:
                      type: string
                    type: array
                  status:
                    enum:
                    - UP
                    type: string
                required:
                - status
                type: object
          description: Health
        "503":
          content:
            application/json:
              schema:
                properties:
                  groups:
                    items:
                      type: string
                    type: array
                  status:
                    enum:
                    - DOWN
                    - OUT_OF_SERVICE
                    type: string
                required:
                - status
                type: object
          description: Health
      summary: health info
      tags:
      - Meta
  /info:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Info
                properties:
                  app:
                    properties:
                      buildtime:
                        type: string
                      name:
                        type: string
                      version:
                        type: string
                      version2:
                        type: string
                    type: object
                required:
                - app
          description: Info
      summary: applicatie info
      tags:
      - Meta
x-wso2-cors:
  accessControlAllowCredentials: false
  accessControlAllowHeaders:
  - authorization
  - Access-Control-Allow-Origin
  - Content-Type
  - SOAPAction
  accessControlAllowMethods:
  - GET
  - PUT
  - POST
  - DELETE
  - PATCH
  - OPTIONS
  accessControlAllowOrigins:
  - '*'
  corsConfigurationEnabled: true
