components:
  schemas:
    AanvraagRespons:
      properties:
        verzoekIdentificatie:
          $ref: '#/components/schemas/VerzoekIdentificatie'
      required:
      - verzoekIdentificatie
    AanvraagVerzoek:
      description: |
        Het verzoek om een zip op te bouwen met de laatst bekende gegevens van de regeling met het genoemde regelingId (WorkId).
      properties:
        juridischGeldigOp:
          description: |
            Een tijdreisparameter langs de juridische-werking-tijdsas.  Deze tijdreis toont de versie van het object die op de opgegeven datum juridisch in werking is.  Wanneer deze parameter niet opgegeven wordt, dan wordt een tijdreisvraag gesteld met als parameter 'vandaag'.
          example: "2023-06-01"
          format: date
          type: string
        regelingId:
          description: De identificatie (WorkID) van de regeling, of een identificatie
            van toestand (Expression).
          type: string
      required:
      - regelingId
    AppHealthResponse:
      properties:
        app-health:
          properties:
            status:
              $ref: '#/components/schemas/AppHealthStatus'
          required:
          - status
          title: AppHealth
          type: object
      required:
      - app-health
      title: AppHealthResponse
      type: object
    AppHealthStatus:
      enum:
      - UP
      - DOWN
      type: string
    BestandsnaamUitwisselpakket:
      description: |
        Gegenereerde naam van het uitwisselpakket. Dit bestaat uit de verzoekIdentificatie en een datum/tijd stempel.
      example: 123e4567-e89b-12d3-a456-426614174000_20251209-0926182.zip
      type: string
    DownloadRespons:
      description: De respons van de download. Deze bevat een url naar de te downloaden
        zip.
      properties:
        url:
          example: https://service.pre.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/downloaden/v1/download_uitwisselpakket/123e4567-e89b-12d3-a456-426614174000_20251209-0926182.zip
          format: url
          type: string
      required:
      - url
    GeometrieAanvraagRespons:
      properties:
        verzoekIdentificatie:
          $ref: '#/components/schemas/VerzoekIdentificatie'
      required:
      - verzoekIdentificatie
    GeometrieAanvraagVerzoek:
      description: |
        Het verzoek om een geopackage op te bouwen met de opgegeven locatieidentificaties en tijdreis gegevens.
      properties:
        beschikbaarOp:
          description: |
            Een tijdreisparameter langs de 'beschikbaar'-tijdsas. **Let op de tijdzone!** Deze tijdreis toont de versie van het object die op de opgegeven datum juridisch in werking is.  Wanneer deze parameter niet opgegeven wordt, dan wordt een tijdreisvraag gesteld met als parameter 'vandaag'.
          example: "2022-07-07T11:34:01Z"
          format: date-time
          type: string
        juridischGeldigOp:
          description: |
            Een tijdreisparameter langs de juridische-werking-tijdsas.  Deze tijdreis toont de versie van het object die op de opgegeven datum juridisch in werking is.  Wanneer deze parameter niet opgegeven wordt, dan wordt een tijdreisvraag gesteld met als parameter 'vandaag'.
          example: "2023-06-01"
          format: date
          type: string
        locatieidentificaties:
          description: De identificaties van de locaties waarmee de geometrie gezocht
            wordt. bij een verzoek met locatiegroep identificaties zullen de onderliggende
            locatiegroepitems *niet* in de resulterende geopackage zitten.
          items:
            maxItems: 100
            minItems: 1
            pattern: ^nl.imow-(gm|pv|ws|mn|mnre)[0-9]{1,6}\.(gebied|gebiedengroep|lijn|lijnengroep|punt|puntengroep|ambtsgebied)\.[A-Za-z0-9]{1,32}$
            type: string
          type: array
      required:
      - locatieidentificaties
    HealthResponse:
      properties:
        status:
          $ref: '#/components/schemas/AppHealthStatus'
      required:
      - status
      type: object
    Info:
      description: Info
      properties:
        app:
          properties:
            description:
              type: string
            imopVersion:
              type: string
            imowVersion:
              type: string
            name:
              type: string
            stopVersion:
              type: string
            version:
              type: string
          type: object
      required:
      - app
      type: object
    OntwerpAanvraagVerzoek:
      description: |
        Het verzoek om een ontwerp zip op te bouwen met de laatst bekende gegevens van de regeling  met het genoemde regelingId (WorkId) en OntwerpBesluitIdentificatie.
      properties:
        ontwerpBesluitIdentificatie:
          description: Het OntwerpBesluitIdentificatie
          type: string
        regelingId:
          description: De identificatie (WorkID) van de regeling.
          type: string
      required:
      - ontwerpBesluitIdentificatie
      - regelingId
    Problem:
      description: Standaardformaat (`application/problem+json`) voor probleemdetails
        in HTTP API's (RFC 7807).
      properties:
        detail:
          description: Mens-leesbare uitleg van dit specifieke probleem.
          example: Interne server fout
          type: string
        instance:
          description: Absolute URI dat dit specifieke probleem identificeert.
          format: uri
          type: string
        status:
          description: De HTTP statuscode gegenereerd door de server waar het probleem
            zich voordoet.
          example: 500
          exclusiveMaximum: true
          format: int32
          maximum: 600
          minimum: 100
          type: integer
        title:
          description: Een korte samenvatting van het probleemtype bedoeld voor ontwikkelaars.
          type: string
        type:
          description: Absolute URI dat het probleemtype identificeert.
          format: uri
          type: string
      type: object
    Status:
      description: De status van de aanvraag
      enum:
      - BESCHIKBAAR
      - IN_BEHANDELING
      - MISLUKT
      type: string
    StatusRespons:
      properties:
        code:
          description: Een foutcode indien er meldingen zijn
          type: string
        omschrijving:
          description: Een omschrijving van de geconstateerde fout
          type: string
        status:
          $ref: '#/components/schemas/Status'
      required:
      - status
    VerzoekIdentificatie:
      description: |
        Identificatie van het verzoek. Deze identificatie ontvang je als antwoord  op een (Geometrie)AanvraagVerzoek en kan gebruikt worden om de status op te vragen en om de URL van het gegenereerde bestand op te vragen.
      example: 123e4567-e89b-12d3-a456-426614174000
      format: uuid
      type: string
  securitySchemes:
    apiKey:
      description: |
        De API-key die je hebt gekregen dient bij elke request naar de
        API via de `x-api-key` request header meegestuurd te worden. Indien deze
        niet juist wordt meegestuurd, of het een ongeldige key betreft, zul je de
        foutmelding `403 Forbidden` terugkrijgen.
      in: header
      name: x-api-key
      type: apiKey
externalDocs:
  url: https://developer.omgevingswet.overheid.nl/api-register/api/omgevingsdocument-downloaden/
info:
  contact:
    name: Kadaster DSO - Team Ozon
    url: https://developer.omgevingswet.overheid.nl/services/contact/
  description: "Met deze REST API kan een regelingversie van een Omgevingsdocument
    in een zip-bestand worden gedownload met daarin de juridische tekst, de GIO's
    en de OW-objecten. Ook is het mogelijk voor een lijst locaties de geometrieën
    in GeoPackage-formaat (GPKG) op te vragen.\n<br>De Omgevingsdocumenten Download
    API volgt de standaarden zoals beschreven in de DSO API-strategie versie 2.0.
    \n<br>De Omgevingsdocumenten Download API levert informatie conform de STOP/TPOD-standaard,
    in het bijzonder het Conceptueel Informatiemodel Omgevingswet.\n<br>Meer informatie
    is hier te vinden: https://www.geonovum.nl/omgevingswet/STOPTPOD\n"
  termsOfService: https://developer.omgevingswet.overheid.nl/services/fair-use-policy/
  title: Omgevingsdocument downloaden
  version: 1.9.2
openapi: 3.1.0
paths:
  /aanvraag:
    post:
      operationId: postAanvraag
      requestBody:
        content:
          application/json:
            examples:
              expressionActueel:
                value:
                  regelingId: /akn/nl/act/gm0059/2020/omgevingsplan/nld@1-0
              expressionOpDatum:
                value:
                  juridischGeldigOp: "2023-05-01"
                  regelingId: /akn/nl/act/gm0059/2020/omgevingsplan/nld@1-0
              workIdActueel:
                value:
                  regelingId: /akn/nl/act/mnre1034/2020/regOW01
              workIdOpDatum:
                value:
                  juridischGeldigOp: "2023-06-01"
                  regelingId: /akn/nl/act/mnre1034/2020/regOW01
            schema:
              $ref: '#/components/schemas/AanvraagVerzoek'
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AanvraagRespons'
          description: Verzoek geaccepteerd
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Het request bevat onjuiste of ongeldige gegevens, bijvoorbeeld
            een verkeerde datum.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Er kan geen regeling of toestand gevonden worden die voldoet
            aan het AanvraagVerzoek.
      summary: Plaats een verzoek voor het maken van een download uitwisselpakket
        zip.
      tags:
      - Downloaden regeling (zip)
  /app-health:
    get:
      operationId: getAppHealth
      responses:
        "200":
          content:
            application/json:
              example:
                app-health:
                  status: UP
              schema:
                $ref: '#/components/schemas/AppHealthResponse'
          description: OK
        "503":
          content:
            application/json:
              example:
                app-health:
                  status: DOWN
              schema:
                $ref: '#/components/schemas/AppHealthResponse'
          description: Service unavailable
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Onverwacht probleem
      summary: app-health info
      tags:
      - Meta
  /app-info:
    get:
      operationId: getInfo
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Info'
          description: Info
      summary: applicatie info
      tags:
      - Meta
  /download/{verzoekIdentificatie}:
    get:
      operationId: getDownload
      parameters:
      - explode: false
        in: path
        name: verzoekIdentificatie
        required: true
        schema:
          $ref: '#/components/schemas/VerzoekIdentificatie'
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadRespons'
          description: De download ZIP is beschikbaar.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: de download ZIP is niet beschikbaar.
        "410":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: De download zip was beschikbaar, maar is verwijderd. Plaats
            een nieuw verzoek.
      summary: Haal de url naar de te downloaden zip op.
      tags:
      - Downloaden regeling (zip)
      - Downloaden ontwerp regeling (zip)
  /download_uitwisselpakket/{bestandsnaamUitwisselpakket}:
    get:
      description: Haal de zip op voor het uitwisselpakket.
      operationId: downloadUitwisselpakket
      parameters:
      - explode: false
        in: path
        name: bestandsnaamUitwisselpakket
        required: true
        schema:
          $ref: '#/components/schemas/BestandsnaamUitwisselpakket'
        style: simple
      responses:
        "200":
          description: Haal de zip op voor het uitwisselpakket
      summary: Haal de zip op voor het uitwisselpakket
      tags:
      - Downloaden regeling (zip)
  /geometrie/aanvraag:
    post:
      deprecated: true
      operationId: postGeometrieAanvraag
      requestBody:
        content:
          application/json:
            examples:
              locatiesActueel:
                value:
                  locatieidentificaties:
                  - nl.imow-mnre1034.ambtsgebied.LND6030A
                  - nl.imow-mnre1034.ambtsgebied.LND6030B
              locatiesMetTijdreis:
                value:
                  beschikbaarOp: "2023-07-07T11:34:01Z"
                  juridischGeldigOp: "2023-06-01"
                  locatieidentificaties:
                  - nl.imow-mnre1034.ambtsgebied.LND6030A
                  - nl.imow-mnre1034.ambtsgebied.LND6030B
            schema:
              $ref: '#/components/schemas/GeometrieAanvraagVerzoek'
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeometrieAanvraagRespons'
          description: Verzoek geaccepteerd
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Het request bevat fouten, bijvoorbeeld fouten in de json syntax.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Het request bevat locatieidentificaties die niet voldoen aan
            het patroon.
      summary: Plaats een verzoek voor het maken van een geopackage met daarin de
        opgevraagde geometrieen.
      tags:
      - Downloaden geometrie (geopackage)
  /geometrie/geopackage/{verzoekIdentificatie}:
    get:
      deprecated: true
      operationId: getGeopackageUrl
      parameters:
      - explode: false
        in: path
        name: verzoekIdentificatie
        required: true
        schema:
          $ref: '#/components/schemas/VerzoekIdentificatie'
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadRespons'
          description: De geopackage is beschikbaar.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: De geopackage is niet beschikbaar.
        "410":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: De geopackage was beschikbaar, maar is verwijderd. Plaats een
            nieuw verzoek.
      summary: Haal de url naar de te downloaden geopackage op.
      tags:
      - Downloaden geometrie (geopackage)
  /geometrie/status/{verzoekIdentificatie}:
    get:
      deprecated: true
      operationId: getGeometrieStatus
      parameters:
      - explode: false
        in: path
        name: verzoekIdentificatie
        required: true
        schema:
          $ref: '#/components/schemas/VerzoekIdentificatie'
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusRespons'
          description: De status bij deze VerzoekIdentificatie is bekend.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: De status bij deze VerzoekIdentificatie is onbekend.
      summary: Vraag de status op van een te genereren geopackage.
      tags:
      - Downloaden geometrie (geopackage)
  /geopackages/{geopackageFile}:
    get:
      deprecated: true
      operationId: getGeopackage
      parameters:
      - explode: false
        in: path
        name: geopackageFile
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/geopackage+sqlite3:
              schema:
                format: binary
                type: string
          description: Het geopackage bestand
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Het geopackage bestand bestaat niet
      summary: Haal het geopackage op.
      tags:
      - Downloaden geometrie (geopackage)
  /health:
    get:
      deprecated: true
      operationId: getHealth
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Onverwacht probleem
      summary: Dit endpoint levert health informatie uit, maar volgt niet de DSO API-strategie
        en is daarom deprecated met /app-health als vervanger.
      tags:
      - Meta
  /ontwerp_aanvraag:
    post:
      operationId: postOntwerpAanvraag
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OntwerpAanvraagVerzoek'
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AanvraagRespons'
          description: Verzoek geaccepteerd
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Het request bevat onjuiste of ongeldige gegevens, bijvoorbeeld
            een verkeerde datum.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Er kan geen regeling of toestand gevonden worden die voldoet
            aan het AanvraagVerzoek.
      summary: Plaats een verzoek voor het maken van een ontwerp download uitwisselpakket
        zip.
      tags:
      - Downloaden ontwerp regeling (zip)
  /ontwerp_download_uitwisselpakket/{bestandsnaamUitwisselpakket}:
    get:
      description: Haal de zip op voor het ontwerp uitwisselpakket
      operationId: ontwerpDownloadUitwisselpakket
      parameters:
      - explode: false
        in: path
        name: bestandsnaamUitwisselpakket
        required: true
        schema:
          $ref: '#/components/schemas/BestandsnaamUitwisselpakket'
        style: simple
      responses:
        "200":
          description: Haal de zip op voor het ontwerp uitwisselpakket.
      summary: Haal de zip op voor het ontwerp uitwisselpakket
      tags:
      - Downloaden ontwerp regeling (zip)
  /openapi.json:
    get:
      description: Vraag de OpenAPI specificatie op in JSON formaat.
      operationId: getOpenApiJson
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Het JSON schema van de OpenAPI specificatie.
                title: OpenApiSchemaJson
                type: object
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Onverwacht probleem
      summary: De OpenAPI specificatie in JSON-formaat
      tags:
      - Meta
      x-auth-type: None
  /openapi.yaml:
    get:
      description: Vraag de OpenAPI specificatie op in YAML formaat.
      operationId: getOpenApiYaml
      responses:
        "200":
          content:
            application/yaml:
              schema:
                description: Het YAML schema van de OpenAPI specificatie.
                title: OpenApiSchemaYaml
                type: object
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Onverwacht probleem
      summary: De OpenAPI specificatie in YAML-formaat
      tags:
      - Meta
      x-auth-type: None
  /status/{verzoekIdentificatie}:
    get:
      operationId: getStatus
      parameters:
      - explode: false
        in: path
        name: verzoekIdentificatie
        required: true
        schema:
          $ref: '#/components/schemas/VerzoekIdentificatie'
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusRespons'
          description: De status bij deze VerzoekIdentificatie is bekend.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: De status bij deze VerzoekIdentificatie is onbekend.
      summary: Vraag de status op van het download proces.
      tags:
      - Downloaden regeling (zip)
      - Downloaden ontwerp regeling (zip)
  /teruglevering/{verzoekIdentificatie}:
    get:
      deprecated: true
      operationId: getTeruglevering
      parameters:
      - explode: false
        in: path
        name: verzoekIdentificatie
        required: true
        schema:
          $ref: '#/components/schemas/VerzoekIdentificatie'
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadRespons'
          description: De download ZIP is beschikbaar.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: de download ZIP is niet beschikbaar.
        "410":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: De download zip was beschikbaar, maar is verwijderd. Plaats
            een nieuw verzoek.
      summary: Haal de url naar de te downloaden zip op. Vanwege deprecation wordt
        geadviseerd om '/download/{verzoekIdentificatie}' te gebruiken.
      tags:
      - Downloaden regeling (zip)
      - Downloaden ontwerp regeling (zip)
security:
- apiKey: []
servers:
- description: de API op deze server
  url: /publiek/omgevingsdocumenten/api/downloaden/v1
- description: de API op de productieomgeving van DSO-LV
  url: https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/downloaden/v1
- description: de API op de pre-productieomgeving van DSO-LV
  url: https://service.pre.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/downloaden/v1
tags:
- description: Downloaden van een zip met daarin de OW en OP informatie van een gepubliceerde
    regeling
  name: Downloaden regeling (zip)
- description: Downloaden van een zip met daarin de OW en OP informatie van een ontwerpregeling
  name: Downloaden ontwerp regeling (zip)
- description: Downloaden van een geopackage met geometrieen.
  name: Downloaden geometrie (geopackage)
- description: Operaties die niet domeinspecifiek zijn, maar over de applicatie gaan.
  name: Meta
