---
openapi: 3.0.3
info:
  title: Grondwater Monitoring Put (GMW)
  description: "Landelijke Voorziening Basisregistratie Ondergrond (BRO), uitgifte\
    \ en validatie grondwatermonitoringput (Groundwater Monitoring Well, GMW)."
  contact:
    name: BRO Servicedesk
    url: https://basisregistratieondergrond.nl/service-contact/
    email: support@broservicedesk.nl
  version: 2.165.0
paths:
  /gm/gmw/v1/bro-ids:
    get:
      summary: Lijst van BRO-IDs
      description: "Haalt de lijst van GMW bro-ids op waarvoor [bronhouder](https://basisregistratieondergrond.nl/service-contact/formulieren/aangemeld-bro/)\
        \ verantwoordelijk is."
      operationId: bro-ids
      parameters:
      - name: bronhouder
        in: query
        description: Het kvk (kamer van koophandel) nummer van een bronhouder
        required: true
        schema:
          type: string
        example: 12345678
      - name: registered
        in: query
        description: "Registered is een optionele parameter, bij afwezigheid geeft\
          \ deze methode alle BRO-IDs terug onafhankelijk of die wel/niet uit registratie\
          \ zijn genomen. <BR>registered = ja geeft alleen BRO-IDs terug die in registratie\
          \ zijn genomen. <BR>registered = nee geeft alleen BRO-IDs terug die uit\
          \ registratie zijn genomen."
        schema:
          type: string
      responses:
        "200":
          description: De lijst van bro-ids voor dit registratie object type waarvoor
            bronhouder verantwoordelijk is.
          content:
            application/json: {}
        "400":
          description: Er bevinden zich andere fouten in het verzoek.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceError"
  /gm/gmw/v1/characteristics/searches:
    post:
      summary: "Haalt de karakteristieken op van een set van registratie objecten,\
        \ gegeven een kenmerkenverzameling (kenset)."
      description: "De karakteristieken geven een samenvatting van een object zodat\
        \ een verdere selectie gemaakt kan worden. Het past in een tweetrapsbenadering,\
        \ waarbij de eerste stap bestaat uit het ophalen van de karakteristieken en\
        \ de 2e stap uit het ophalen van de gewenste registratie objecten. Het resultaat\
        \ van deze operatie is gemaximaliseerd op 2000. Zie [hier](https://bro-productomgeving.nl/bpo/latest/grondwatermonitoring/grondwatermonitoringput-gmw/koppelvlakbeschrijving-uitgifteservice-gmw)\
        \ en [hier](https://bro-productomgeving.nl/bpo/latest/grondwatermonitoring/grondwatermonitoringput-gmw/uitgiftehandboek-gmw)\
        \ voor meer info."
      operationId: characteristics
      parameters:
      - name: requestReference
        in: query
        description: Een optionele referentie van de gebruiker. "-" wordt aangenomen
          bij afwezigheid.
        schema:
          type: string
        example: Mijn-putcode-aanvraag-000001
      requestBody:
        description: "De set van kenmerken. Zie voor meer informatie: https://bro-productomgeving.nl/bpo/latest/grondwatermonitoring/grondwatermonitoringput-gmw"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GmwCriteriaSet"
            examples:
              Simple Criteria:
                value:
                  area:
                    enclosingCircle:
                      center:
                        lat: 52.038297852
                        lon: 5.31447958948
                      radius: 0.5
      responses:
        "200":
          description: De set van karakteristieken die matched met de criteria dan
            wel een afwijzing.
          content:
            application/xml: {}
        "400":
          description: Er bevinden zich andere fouten in het verzoek.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceError"
  /gm/gmw/v1/groundlevelposition-as-csv/{broId}:
    get:
      summary: Geeft een tabel met als eerste kolom datum (unix epoch of datum) en
        als tweede kolom de maaiveldpositie. Bedoeld voor bijvoorbeeld het grafisch
        weergeven van waterstanden ten opzichte van het maaiveld.
      operationId: groundLevelPositionAsCSV
      parameters:
      - name: broId
        in: path
        description: Het BRO-ID van het object.
        required: true
        content:
          text/plain:
            schema:
              type: string
      - name: rapportagetype
        in: query
        description: "type rapportage; \n+ compact: Compact met datums als leesbare\
          \ aanduidingen, \n+ compact_met_timestamps: Compact met datums als unix\
          \ epoch tijdstippen. Afwezigheid van deze parameter geeft datums weer met\
          \ leesbare aanduidingen."
        schema:
          type: string
        example: compact
      responses:
        "200":
          description: Het aangevraagde registratie object dan wel een afwijzing van
            het verzoek.
          content:
            text/plain: {}
        "400":
          description: Er bevinden zich andere fouten in het verzoek.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceError"
  /gm/gmw/v1/objects/{broId}:
    get:
      summary: "Haalt een put (GroundwaterMonitorWell, GMW) op op basis van een BRO-ID"
      description: "Haal een put op op basis van een BRO-ID. De operatie retourneert\
        \ een object op basis van het BRO-ID als een 'O' (actuele situatie), 'PPO'\
        \ (inrichting put en volledige historie) of 'DO' (uit registratie) als IMBRO\
        \ XML. De andere varianten 'O-DP' of 'PPO-DP' zijn niet ondersteund omdat\
        \ hier authenticatie / autorisatie voor nodig is (er worden bronhouder gevoelige\
        \ gegevens terug gegeven). Gebruik hiervoor de 'DigiKoppeling' webservice.Zie\
        \ [hier](https://bro-productomgeving.nl/bpo/latest/grondwatermonitoring/grondwatermonitoringput-gmw/koppelvlakbeschrijving-uitgifteservice-gmw)\
        \ en [hier](https://bro-productomgeving.nl/bpo/latest/grondwatermonitoring/grondwatermonitoringput-gmw/uitgiftehandboek-gmw)\
        \ voor meer info."
      operationId: objects
      parameters:
      - name: broId
        in: path
        description: Het BRO-ID van het object.
        required: true
        content:
          text/plain:
            schema:
              type: string
      - name: requestReference
        in: query
        description: Een optionele referentie van de gebruiker. "-" wordt aangenomen
          bij afwezigheid.
        schema:
          type: string
        example: Mijn-object-aanvraag-000001
      - name: fullHistory
        in: query
        description: Aanwezigheid van deze parameter geeft de put bij inrichting +
          de volledige geschiedenis terug. Afwezigheid de actuele situatie.
        schema:
          type: string
        allowEmptyValue: true
        example: ja
      responses:
        "200":
          description: Het aangevraagde registratie object dan wel een afwijzing van
            het verzoek.
          content:
            application/xml: {}
        "400":
          description: Er bevinden zich andere fouten in het verzoek.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceError"
  /gm/gmw/v1/well-code/{broId}:
    get:
      summary: "Haalt een putcode op, op basis van een BRO-ID."
      description: "Haalt een putcode op, op basis van een BRO-ID. Retourneert de\
        \ putcode als 'plain text'"
      operationId: well-code
      parameters:
      - name: broId
        in: path
        description: Het BRO-ID van het object.
        required: true
        content:
          text/plain:
            schema:
              type: string
      - name: requestReference
        in: query
        description: Een optionele referentie van de gebruiker. "-" wordt aangenomen
          bij afwezigheid.
        schema:
          type: string
        example: Mijn-putcode-aanvraag-000001
      responses:
        "200":
          description: De putcode.
          content:
            text/plain: {}
        "404":
          description: De putcode is niet gevonden.
        "400":
          description: Er bevinden zich andere fouten in het verzoek.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceError"
components:
  schemas:
    Area:
      type: object
      properties:
        enclosingCircle:
          $ref: "#/components/schemas/Circle"
        boundingBox:
          $ref: "#/components/schemas/Envelope"
    Circle:
      type: object
      properties:
        center:
          $ref: "#/components/schemas/Point"
        radius:
          type: number
    DatePeriod:
      type: object
      properties:
        beginDate:
          type: string
        endDate:
          type: string
    Envelope:
      type: object
      properties:
        lowerCorner:
          $ref: "#/components/schemas/Point"
        upperCorner:
          $ref: "#/components/schemas/Point"
    GmwCriteriaSet:
      required:
      - area
      type: object
      properties:
        deliveryAccountableParty:
          type: string
        qualityRegime:
          $ref: "#/components/schemas/QualityRegime"
        registrationPeriod:
          $ref: "#/components/schemas/DatePeriod"
        correctionPeriod:
          $ref: "#/components/schemas/DatePeriod"
        underReview:
          $ref: "#/components/schemas/YesNoEnumeration"
        area:
          $ref: "#/components/schemas/Area"
        withPrehistory:
          $ref: "#/components/schemas/YesNoEnumeration"
        owner:
          type: string
        constructionStandard:
          type: string
        constructionPeriod:
          $ref: "#/components/schemas/DatePeriod"
        removalPeriod:
          $ref: "#/components/schemas/DatePeriod"
        removed:
          $ref: "#/components/schemas/YesNoEnumeration"
        tubeStatus:
          type: string
        screenPositionRange:
          $ref: "#/components/schemas/VerticalPositionRange"
        initialFunction:
          type: string
        minimumNumberOfTubes:
          format: int32
          type: integer
        geoOhmCablePresent:
          $ref: "#/components/schemas/YesNoEnumeration"
        wellHeadProtector:
          type: string
        minimumTubeTopDiameter:
          type: number
        maximumTubeTopDiameter:
          type: number
    Point:
      type: object
      properties:
        lat:
          type: number
        lon:
          type: number
    QualityRegime:
      enum:
      - IMBRO
      - IMBRO_A
      type: string
    ServiceError:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        errorCode:
          format: int32
          type: integer
    VerticalPositionRange:
      type: object
      properties:
        startDepth:
          type: number
        endDepth:
          type: number
    YesNoEnumeration:
      enum:
      - JA
      - NEE
      type: string
