components:
  parameters:
    page:
      description: De pagina die geretourneerd moet worden in een gepagineerde response.
        Wanneer er geen pagina nummer is opgegeven wordt de eerste pagina geretourneerd
      in: query
      name: page
      required: false
      schema:
        default: 1
        minimum: 1
        type: integer
    pageSizeEnum:
      description: Het gewenste aantal items per pagina in een gepagineerde response.
        Indien deze parameter niet ingevuld is worden er standaard 20 resultaten geretourneerd.
      in: query
      name: pageSize
      required: false
      schema:
        default: 20
        enum:
        - 10
        - 20
        - 50
        - 100
        - 200
        type: integer
    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:
    suggesties:
      content:
        application/json:
          schema:
            properties:
              suggesties:
                items:
                  type: string
                type: array
            required:
            - suggesties
      description: Lijst van suggesties voor zoektermen
  schemas:
    ActiviteitHALResponseList:
      properties:
        _embedded:
          properties:
            activiteiten:
              items:
                $ref: '#/components/schemas/ActiviteitResponse'
              minItems: 1
              type: array
          required:
          - activiteiten
        _links:
          $ref: '#/components/schemas/HalPaginationLinks'
        aggregaties:
          $ref: '#/components/schemas/Aggregaties'
        page:
          $ref: '#/components/schemas/Page'
      required:
      - _links
      - aggregaties
      - page
    ActiviteitResponse:
      properties:
        bestuursorgaan:
          allOf:
          - description: Organisatie
            properties:
              bestuurslaag:
                $ref: '#/components/schemas/Bestuurslaag'
              oin:
                description: OIN van de organisatie
                maxLength: 20
                minLength: 20
                type: string
            required:
            - oin
            - bestuurslaag
          description: Bestuursorgaan dat eigenaar is van de activiteit
        functioneleStructuurRef:
          description: De functioneleStructuurRef die verwijst naar de regels (STTR)
            m.b.t. indieningsvereisten
          type: string
        locaties:
          description: Locaties waarop de activiteit actief is
          items:
            type: string
          type: array
        omschrijving:
          description: Omschrijving van de activiteit
          type: string
        toestemming:
          $ref: '#/components/schemas/Toestemming'
        type:
          $ref: '#/components/schemas/ActiviteitTypering'
        urn:
          $ref: '#/components/schemas/ActiviteitUrn'
      required:
      - urn
      - type
      - omschrijving
      - functioneleStructuurRef
      - bestuursorgaan
      - locaties
    ActiviteitTypering:
      description: Typering van de activiteit
      enum:
      - Water
      - Milieubelastende
      - Overige
      type: string
    ActiviteitUrn:
      description: Urn van de activiteit (In de urn mogen geen spaties voorkomen).
        Binnen de keten staat urn bekend als de imow-id.
      maxLength: 250
      minLength: 1
      type: string
    Aggregaties:
      description: Het aantal resultaten per mogelijke filterwaarde voor toestemming
        en bestuurslaag. Heeft betrekking op het totaal aantal resultaten en niet
        over de betreffende pagina.
      properties:
        bestuurslagen:
          items:
            $ref: '#/components/schemas/BestuurslaagAggregatie'
          type: array
        bestuursorganenPerBestuurslaag:
          items:
            $ref: '#/components/schemas/BestuursorganenPerBestuurslaagAggregatie'
          type: array
        toestemmingen:
          items:
            $ref: '#/components/schemas/ToestemmingAggregatie'
          type: array
      required:
      - toestemmingen
      - bestuurslagen
      - bestuursorganenPerBestuurslaag
    Bestuurslaag:
      description: Bestuurslaag van een Organisatie
      enum:
      - rijk
      - provincie
      - waterschap
      - gemeente
      type: string
    BestuurslaagAggregatie:
      description: Per bestuurslaag het aantal keer dat de bestuurslaag voorkomt in
        de gevonden activiteiten. Let op dat het bestuurslaag filter hierin NIET wordt
        meegenomen (andere filters wel). Dit is handig wanneer de aggregaties worden
        gepresenteerd in een user interface, dan kan de gebruiker namelijk het aantal
        resultaten uitbreiden door ook een andere bestuurslaag te selecteren.
      properties:
        aantal:
          description: Het aantal resultaten voor de bestuurslaag, waarbij het bestuurslaag
            filter NIET wordt meegenomen
          type: number
        bestuurslaag:
          $ref: '#/components/schemas/Bestuurslaag'
      required:
      - bestuurslaag
      - aantal
    BestuursorgaanAggregatie:
      description: Het aantal resultaten per bestuursorgaan
      properties:
        aantal:
          type: number
        oin:
          description: Identificatie van een bestuursorgaan.
          maxLength: 20
          minLength: 20
          type: string
      required:
      - oin
      - aantal
    BestuursorganenPerBestuurslaagAggregatie:
      description: De meest voorkomende bestuursorganen in de gevonden activiteiten
        met het aantal keer dat ze voorkomen. Deze zijn opgedeeld per bestuurslaag.
      properties:
        bestuurslaag:
          $ref: '#/components/schemas/Bestuurslaag'
        bestuursorganen:
          items:
            $ref: '#/components/schemas/BestuursorgaanAggregatie'
          type: array
      required:
      - bestuurslaag
      - bestuursorganen
    Datum:
      description: Datum in het formaat dd-MM-yyyy.
      example: 01-01-2023
      pattern: ^\d{2}-\d{2}-\d{4}$
      type: string
    HalPaginationLinks:
      description: Links om te navigeren door de paginering
      properties:
        first:
          allOf:
          - $ref: '#/components/schemas/HalPaginationLinks/properties/self/allOf/0'
          description: uri voor het opvragen van de eerste pagina van deze collectie
        last:
          allOf:
          - $ref: '#/components/schemas/HalPaginationLinks/properties/self/allOf/0'
          description: uri voor het opvragen van de laatste pagina van deze collectie
        next:
          allOf:
          - $ref: '#/components/schemas/HalPaginationLinks/properties/self/allOf/0'
          description: uri voor het opvragen van de volgende pagina van deze collectie
        prev:
          allOf:
          - $ref: '#/components/schemas/HalPaginationLinks/properties/self/allOf/0'
          description: uri voor het opvragen van de vorige pagina van deze collectie
        self:
          allOf:
          - description: HAL link
            properties:
              href:
                description: URI
                type: string
            required:
            - href
          description: uri voor het opvragen van de huidige pagina van deze collectie
      required:
      - self
      - first
      - last
    Page:
      description: Info voor paginering.
      properties:
        number:
          description: het huidige paginanummer
          minimum: 1
          type: integer
        size:
          deprecated: true
          description: 'het aantal items op de huidige pagina. Let op: in een volgende
            versie wordt dit de gevraagde paginagrootte.'
          minimum: 0
          type: integer
        totalElements:
          description: het totaal aantal items in deze collectie
          minimum: 0
          type: integer
        totalPages:
          description: het totaal aantal pagina's in deze collectie
          minimum: 0
          type: integer
      required:
      - size
      - totalElements
      - totalPages
      - number
      type: object
    Sortering:
      default: meestGekozen
      description: De sortering waarin de resultaten worden geretourneerd. Bij "alfabetisch"
        worden de resultaten alfabetisch gesorteerd. "besteMatch" zorgt ervoor dat
        de resultaten die het meest matchen met de zoekterm bovenaan komen (bij deze
        sortering is het veld "zoekterm" daarom verplicht). "meestGekozen" wil zeggen
        dat de in het loket meest gekozen resultaten bovenaan staan. Als het veld
        "sortering" niet wordt meegegeven wordt de "meestGekozen" sortering gebruikt.
      enum:
      - alfabetisch
      - besteMatch
      - meestGekozen
      type: string
    SuggestiesCriteria:
      description: De zoekterm.
      properties:
        zoekterm:
          description: De zoekterm op basis waarvan suggesties teruggegeven moeten
            worden.
          type: string
      required:
      - zoekterm
    Toestemming:
      description: Code van de toestemming
      enum:
      - Vergunning
      - Melding
      - Informatie
      - InformatieOngewoonVoorval
      - AanvraagMaatwerkvoorschrift
      - MeldingGelijkwaardigeMaatregel
      - AanvraagToestemmingGelijkwaardigeMaatregel
      type: string
    ToestemmingAggregatie:
      description: Per toestemming het aantal keer dat de toestemming voorkomt in
        de gevonden activiteiten. Let op dat het toestemming filter hierin NIET wordt
        meegenomen (andere filters wel). Dit is handig wanneer de aggregaties worden
        gepresenteerd in een user interface, dan kan de gebruiker namelijk het aantal
        resultaten uitbreiden door ook een andere toestemming te selecteren.
      properties:
        aantal:
          description: Het aantal resultaten voor de toestemming, waarbij het bestuurslaag
            filter NIET wordt meegenomen
          type: number
        toestemming:
          $ref: '#/components/schemas/Toestemming'
      required:
      - toestemming
      - aantal
    Trefwoord:
      description: Trefwoord van de werkzaamheid.
      type: string
    WerkzaamheidHALResponseList:
      properties:
        _embedded:
          properties:
            werkzaamheden:
              items:
                $ref: '#/components/schemas/WerkzaamheidResponse'
              minItems: 1
              type: array
          required:
          - werkzaamheden
        _links:
          $ref: '#/components/schemas/HalPaginationLinks'
        page:
          $ref: '#/components/schemas/Page'
      required:
      - _links
      - page
    WerkzaamheidResponse:
      properties:
        functioneleStructuurRef:
          description: De functioneleStructuurRef van de werkzaamheid.
          type: string
        omschrijving:
          description: Omschrijving van de werkzaamheid.
          type: string
        trefwoorden:
          description: Trefwoorden van de werkzaamheid die voldoen aan de zoekterm.
          items:
            $ref: '#/components/schemas/Trefwoord'
          type: array
        urn:
          $ref: '#/components/schemas/WerkzaamheidUrn'
      required:
      - urn
      - omschrijving
      - functioneleStructuurRef
    WerkzaamheidUrn:
      description: Urn van de werkzaamheid
      example: BoomKappen
      pattern: ^\w{1,100}$
      type: string
    ZoekCriteriaActiviteiten:
      description: De zoekcriteria om activiteiten te zoeken. Zoeken gebeurt op basis
        van een zoekterm, resultaten kunnen verder gefilterd worden op de velden in
        het zoekresultaat.
      properties:
        bestuurslagen:
          description: Filter op bestuurslaag van het bestuursorgaan van de activiteit.
          items:
            $ref: '#/components/schemas/Bestuurslaag'
          maxItems: 4
          minItems: 1
          type: array
        datum:
          allOf:
          - $ref: '#/components/schemas/Datum'
          description: Filter op activiteiten die op deze datum actief zijn. Het formaat
            van de datum is dd-MM-yyyy.
        functioneleStructuurReferenties:
          description: De zoekterm op basis waarvan in de activiteiten gezocht wordt.
            Filter op functioneleStructuurReferentie
          items:
            type: string
          maxItems: 1000
          minItems: 1
          type: array
        locaties:
          description: Filter op de locatie van de activiteit.
          items:
            type: string
          maxItems: 10000
          minItems: 1
          type: array
        sortering:
          $ref: '#/components/schemas/Sortering'
        toestemmingen:
          description: Filter op indieningsvereisten toestemming
          items:
            $ref: '#/components/schemas/Toestemming'
          maxItems: 7
          minItems: 1
          type: array
        zoekterm:
          description: De zoekterm op basis waarvan in de activiteiten gezocht wordt.
          maxLength: 250
          minLength: 1
          type: string
    ZoekCriteriaWerkzaamheden:
      description: De zoekcriteria om werkzaamheden te zoeken.
      properties:
        sortering:
          $ref: '#/components/schemas/Sortering'
        zoekterm:
          description: De zoekterm op basis waarvan in de werkzaamheden gezocht wordt.
            Als het veld "zoekterm" niet wordt meegegeven worden alle werkzaamheden
            teruggegeven.
          type: string
    Zoekterm:
      maxLength: 250
      minLength: 1
      type: string
info:
  contact:
    name: Ontwikkelaarsportaal Omgevingswet
    url: https://developer.omgevingswet.overheid.nl/services/contact/
  description: |-
    Zoeken in activiteiten voor indieningsvereisten, en werkzaamheden. Activiteiten voor indieningsvereisten zijn de activiteiten die gevonden kunnen worden in het omgevingsloket bij indienen. D.w.z. - Er zijn regels m.b.t. indieningsvereisten voor de activiteit - Of de activiteit is expliciet toonbaar gemaakt en er zijn regels m.b.t.
      indieningsvereisten voor één of meerdere onderliggende activiteiten.
  title: Zoeken in activiteiten voor indieningsvereisten, en werkzaamheden
  version: 2.2.3
openapi: 3.0.0
paths:
  /:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                example: '{"openapi": "3.0.0", ... }'
          description: OpenApi Specification Json
      summary: OpenApi Specification
      tags:
      - Meta
  /activiteiten/_suggereer:
    post:
      description: Suggesties voor zoektermen op activiteiten voor indieningsvereisen
        op basis van een zoekterm
      parameters:
      - $ref: '#/components/parameters/x_api_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestiesCriteria'
      responses:
        "200":
          $ref: '#/components/responses/suggesties'
        "400":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/400'
        "429":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/429'
        "500":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/500'
      summary: Suggesties voor zoektermen op activiteiten voor indieningsvereisten
        op basis van een zoekterm
      tags:
      - Zoeken in activiteiten
  /activiteiten/_zoek:
    post:
      description: Haal activiteiten op die voldoen aan de zoekcriteria. Geeft een
        resultaat voor iedere gevonden activiteit i.c.m. een verwijzing (functioneleStructuurRef)
        naar de regels (STTR) die er zijn m.b.t. indieningsvereisten.
      parameters:
      - $ref: '#/components/parameters/x_api_key'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pageSizeEnum'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZoekCriteriaActiviteiten'
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ActiviteitHALResponseList'
          description: De lijst van activiteiten, en aggregatie gegevens.
        "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)
        "429":
          description: Te veel requests (binnen een bepaalde tijd)
        "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
      summary: Zoeken in activiteiten voor indieningsvereisten
      tags:
      - Zoeken in activiteiten
  /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
  /werkzaamheden/_suggereer:
    post:
      description: Suggesties voor zoektermen op werkzaamheden op basis van een zoekterm
      parameters:
      - $ref: '#/components/parameters/x_api_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestiesCriteria'
      responses:
        "200":
          $ref: '#/components/responses/suggesties'
        "400":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/400'
        "429":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/429'
        "500":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/500'
      summary: Suggesties voor zoektermen op werkzaamheden op basis van een zoekterm
      tags:
      - Zoeken in werkzaamheden
  /werkzaamheden/_zoek:
    post:
      description: Haal werkzaamheden op die voldoen aan de zoekcriteria.
      parameters:
      - $ref: '#/components/parameters/x_api_key'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pageSizeEnum'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZoekCriteriaWerkzaamheden'
      responses:
        "200":
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WerkzaamheidHALResponseList'
          description: De lijst van werkzaamheden.
        "400":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/400'
        "429":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/429'
        "500":
          $ref: '#/paths/~1activiteiten~1_zoek/post/responses/500'
      summary: Zoeken in werkzaamheden
      tags:
      - Zoeken in werkzaamheden
x-wso2-cors:
  accessControlAllowCredentials: false
  accessControlAllowHeaders:
  - authorization
  - Access-Control-Allow-Origin
  - Content-Type
  accessControlAllowMethods:
  - GET
  accessControlAllowOrigins:
  - '*'
  corsConfigurationEnabled: true
