components:
  headers:
    API-Version:
      description: De API-versie van de response
      example: 1.0.0
      schema:
        example: 1.0.0
        type: string
    Link:
      description: Links to the previous, next, last or first pages
      example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev', <https://developer.overheid.nl/api/v1/apis?page=3>;
        rel='next'
      schema:
        example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev', <https://developer.overheid.nl/api/v1/apis?page=3>;
          rel='next'
        externalDocs:
          description: W3C reference
          url: https://www.w3.org/wiki/LinkHeader
        type: string
    headers-API-Version:
      description: Semver of this API
      example: 1.0.0
      schema:
        example: 1.0.0
        externalDocs:
          description: ' /core/version-header: Return the full version number in a
            response header'
          url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
        pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
        type: string
  responses:
    "400":
      content:
        application/problem+json:
          schema:
            properties:
              invalidParams:
                properties:
                  name:
                    example: url
                    type: string
                  reason:
                    example: Invalid URI format
                    type: string
                type: object
              title:
                example: Request validation failed
                type: string
            type: object
      description: Bad request
      headers:
        API-Version:
          description: Semver of this API
          example: 1.0.0
          schema:
            example: 1.0.0
            externalDocs:
              description: ' /core/version-header: Return the full version number
                in a response header'
              url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
            pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
            type: string
        Link:
          description: Links to the previous, next, last or first pages
          example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev',
            <https://developer.overheid.nl/api/v1/apis?page=3>; rel='next'
          schema:
            example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev',
              <https://developer.overheid.nl/api/v1/apis?page=3>; rel='next'
            externalDocs:
              description: W3C reference
              url: https://www.w3.org/wiki/LinkHeader
            type: string
    "404":
      description: Resource does not exist
      headers:
        API-Version:
          description: Semver of this API
          example: 1.0.0
          schema:
            example: 1.0.0
            externalDocs:
              description: ' /core/version-header: Return the full version number
                in a response header'
              url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
            pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
            type: string
  schemas:
    ApiDetail:
      allOf:
      - allOf:
        - anyOf:
          - required:
            - oasUrl
          - required:
            - oasBody
          properties:
            arazzoBody:
              description: Inline Arazzo spec (JSON of YAML)
              type: string
              writeOnly: true
            arazzoUrl:
              example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
              format: uri
              type: string
            contact:
              properties:
                email:
                  example: developer.overheid@geonovum.nl
                  format: email
                  type: string
                name:
                  example: Team developer.overheid.nl
                  type: string
                url:
                  example: https://github.com/developer-overheid-nl/don-api-register/issues
                  format: uri
                  type: string
              required:
              - email
              - name
              - url
              type: object
            id:
              example: 90szfOzDg
              readOnly: true
              type: string
            oasBody:
              description: Inline OpenAPI spec (JSON of YAML)
              type: string
              writeOnly: true
            oasUrl:
              example: https://api.developer.overheid.nl/api-register/v1/openapi.json
              format: uri
              type: string
            organisationUri:
              example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
              format: uri
              type: string
              writeOnly: true
          required:
          - id
          - organisationUri
          type: object
        - properties:
            _links:
              properties:
                self:
                  properties:
                    href:
                      example: https://api.developer.overheid.nl/v1/apis/90szfOzDg
                      format: uri
                      type: string
                  type: object
              type: object
            adrScore:
              default: null
              format: int32
              nullable: true
              type: integer
            description:
              example: API van het API register (apis.developer.overheid.nl)
              type: string
            lifecycle:
              properties:
                status:
                  enum:
                  - active
                  - deprecated
                  - sunset
                  type: string
                version:
                  example: 1.0.0
                  type: string
              type: object
            organisation:
              properties:
                _links:
                  properties:
                    apis:
                      properties:
                        href:
                          example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                          type: string
                      type: object
                  type: object
                label:
                  example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                  type: string
                uri:
                  example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                  format: uri
                  type: string
              required:
              - label
              - uri
              type: object
            title:
              example: API register API v1
              type: string
          type: object
        required:
        - contact
        - title
        - organisation
        - adrScore
      - properties:
          auth:
            items:
              example: oauth2
              type: string
            nullable: true
            type: array
          description:
            type: string
          docsUri:
            example: https://apis.developer.overheid.nl/apis/3fa85f64-5717-4562-b3fc-2c963f66afa6
            format: uri
            type: string
          servers:
            items:
              properties:
                description:
                  example: Production
                  type: string
                url:
                  example: https://api.developer.overheid.nl/v1
                  format: uri
                  type: string
              required:
              - url
              - description
              type: object
            type: array
        type: object
    ApiPost:
      anyOf:
      - required:
        - oasUrl
      - required:
        - oasBody
      properties:
        arazzoBody:
          description: Inline Arazzo spec (JSON of YAML)
          type: string
          writeOnly: true
        arazzoUrl:
          example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
          format: uri
          type: string
        contact:
          properties:
            email:
              example: developer.overheid@geonovum.nl
              format: email
              type: string
            name:
              example: Team developer.overheid.nl
              type: string
            url:
              example: https://github.com/developer-overheid-nl/don-api-register/issues
              format: uri
              type: string
          required:
          - email
          - name
          - url
          type: object
        id:
          example: 90szfOzDg
          readOnly: true
          type: string
        oasBody:
          description: Inline OpenAPI spec (JSON of YAML)
          type: string
          writeOnly: true
        oasUrl:
          example: https://api.developer.overheid.nl/api-register/v1/openapi.json
          format: uri
          type: string
        organisationUri:
          example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
          format: uri
          type: string
          writeOnly: true
      required:
      - id
      - organisationUri
      type: object
    ApiSummary:
      allOf:
      - anyOf:
        - required:
          - oasUrl
        - required:
          - oasBody
        properties:
          arazzoBody:
            description: Inline Arazzo spec (JSON of YAML)
            type: string
            writeOnly: true
          arazzoUrl:
            example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
            format: uri
            type: string
          contact:
            properties:
              email:
                example: developer.overheid@geonovum.nl
                format: email
                type: string
              name:
                example: Team developer.overheid.nl
                type: string
              url:
                example: https://github.com/developer-overheid-nl/don-api-register/issues
                format: uri
                type: string
            required:
            - email
            - name
            - url
            type: object
          id:
            example: 90szfOzDg
            readOnly: true
            type: string
          oasBody:
            description: Inline OpenAPI spec (JSON of YAML)
            type: string
            writeOnly: true
          oasUrl:
            example: https://api.developer.overheid.nl/api-register/v1/openapi.json
            format: uri
            type: string
          organisationUri:
            example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
            format: uri
            type: string
            writeOnly: true
        required:
        - id
        - organisationUri
        type: object
      - properties:
          _links:
            properties:
              self:
                properties:
                  href:
                    example: https://api.developer.overheid.nl/v1/apis/90szfOzDg
                    format: uri
                    type: string
                type: object
            type: object
          adrScore:
            default: null
            format: int32
            nullable: true
            type: integer
          description:
            example: API van het API register (apis.developer.overheid.nl)
            type: string
          lifecycle:
            properties:
              status:
                enum:
                - active
                - deprecated
                - sunset
                type: string
              version:
                example: 1.0.0
                type: string
            type: object
          organisation:
            properties:
              _links:
                properties:
                  apis:
                    properties:
                      href:
                        example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                        type: string
                    type: object
                type: object
              label:
                example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                type: string
              uri:
                example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                format: uri
                type: string
            required:
            - label
            - uri
            type: object
          title:
            example: API register API v1
            type: string
        type: object
      required:
      - contact
      - title
      - organisation
      - adrScore
    Contact:
      properties:
        email:
          example: developer.overheid@geonovum.nl
          format: email
          type: string
        name:
          example: Team developer.overheid.nl
          type: string
        url:
          example: https://github.com/developer-overheid-nl/don-api-register/issues
          format: uri
          type: string
      required:
      - email
      - name
      - url
      type: object
    Organisation:
      properties:
        _links:
          properties:
            apis:
              properties:
                href:
                  example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                  type: string
              type: object
          type: object
        label:
          example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
          type: string
        uri:
          example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
          format: uri
          type: string
      required:
      - label
      - uri
      type: object
    Server:
      properties:
        description:
          example: Production
          type: string
        url:
          example: https://api.developer.overheid.nl/v1
          format: uri
          type: string
      required:
      - url
      - description
      type: object
  securitySchemes:
    apiKey:
      in: header
      name: X-Api-Key
      type: apiKey
    clientCredentials:
      flows:
        clientCredentials:
          scopes:
            apis:read: Leestoegang op API's
            apis:write: Schrijftoegang op API's
            organisations:read: Leestoegang op organisaties
          tokenUrl: https://auth.developer.overheid.nl/realms/don/protocol/openid-connect/token
      type: oauth2
info:
  contact:
    email: developer.overheid@geonovum.nl
    name: Team developer.overheid.nl
    url: https://github.com/developer-overheid-nl/don-api-register/issues
  description: |
    API van het API-register van developer.overheid.nl.

    ## Untrusted clients (API-key)

    Untrusted clients hebben geen schrijfrechten maar wel leesrechten. Requests kunnen, ook vanuit de browser, eenvoudig gedaan worden door de verkregen API-key aan elke request mee te geven met de `X-Api-Key` header:

      `X-Api-Key`: `{API_KEY}` (vervang `{API_KEY}` met de verkregen API-key)

    ## Trusted clients (client-credentials flow)

    Trusted clientst hebben zowel schrijfrechten als leesrechten. Bij elke request moet er een `access_token`  meegestuurd worden. Deze token is 5 minuten geldig en kan verkregen worden door een `POST` request te doen naar `https://auth.developer.overheid.nl/realms/don/protocol/openid-connect/token` met de volgende Form URL Encoded body:

    - `grant_type`: `client_credentials`
    - `scope`: `apis:write apis:read organisations:read`
    - `client_id`: `{CLIENT_ID}` (vervang `{CLIENT_ID}` met de client id die je van ons hebt ontvangen
    - `client_secret`: `{CLIENT_SECRET}` (vervang `{CLIENT_SECRET}` met de client secret die je van ons hebt ontvangen

    De verkregen `access_token` stuur je vervolgens op de volgende manier met de `Authorization` header naar een request mee:

    `Authorization`: `Bearer {ACCESS_TOKEN}` (vervang `{ACCESS_TOKEN}` met de verkregen `access_token`)

    ## Paginering

    Paginering bij collecties vindt plaats door middel van de `Link` header. Er zijn verschillende libraries beschikbaar (zoals [parse-link-header](https://www.npmjs.com/package/parse-link-header) voor Javascript) die deze header kan parsen. Verder geven de volgende headers extra houvast om paginering in de client te implementeren: `X-Current-Page`, `X-Per-Page`, `X-Total-Count` en `X-Total-Pages`.
  title: API-register API v1
  version: 1.0.0
openapi: 3.1.0
paths:
  /apis:
    get:
      description: Alle API's ophalen
      operationId: listApis
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  allOf:
                  - anyOf:
                    - required:
                      - oasUrl
                    - required:
                      - oasBody
                    properties:
                      arazzoBody:
                        description: Inline Arazzo spec (JSON of YAML)
                        type: string
                        writeOnly: true
                      arazzoUrl:
                        example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
                        format: uri
                        type: string
                      contact:
                        properties:
                          email:
                            example: developer.overheid@geonovum.nl
                            format: email
                            type: string
                          name:
                            example: Team developer.overheid.nl
                            type: string
                          url:
                            example: https://github.com/developer-overheid-nl/don-api-register/issues
                            format: uri
                            type: string
                        required:
                        - email
                        - name
                        - url
                        type: object
                      id:
                        example: 90szfOzDg
                        readOnly: true
                        type: string
                      oasBody:
                        description: Inline OpenAPI spec (JSON of YAML)
                        type: string
                        writeOnly: true
                      oasUrl:
                        example: https://api.developer.overheid.nl/api-register/v1/openapi.json
                        format: uri
                        type: string
                      organisationUri:
                        example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
                        format: uri
                        type: string
                        writeOnly: true
                    required:
                    - id
                    - organisationUri
                    type: object
                  - properties:
                      _links:
                        properties:
                          self:
                            properties:
                              href:
                                example: https://api.developer.overheid.nl/v1/apis/90szfOzDg
                                format: uri
                                type: string
                            type: object
                        type: object
                      adrScore:
                        default: null
                        format: int32
                        nullable: true
                        type: integer
                      description:
                        example: API van het API register (apis.developer.overheid.nl)
                        type: string
                      lifecycle:
                        properties:
                          status:
                            enum:
                            - active
                            - deprecated
                            - sunset
                            type: string
                          version:
                            example: 1.0.0
                            type: string
                        type: object
                      organisation:
                        properties:
                          _links:
                            properties:
                              apis:
                                properties:
                                  href:
                                    example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                                    type: string
                                type: object
                            type: object
                          label:
                            example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                            type: string
                          uri:
                            example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                            format: uri
                            type: string
                        required:
                        - label
                        - uri
                        type: object
                      title:
                        example: API register API v1
                        type: string
                    type: object
                  required:
                  - contact
                  - title
                  - organisation
                  - adrScore
                type: array
          description: OK
          headers:
            API-Version:
              description: De API-versie van de response
              example: 1.0.0
              schema:
                example: 1.0.0
                type: string
      security:
      - apiKey: []
      - clientCredentials:
        - apis:read
      summary: Alle API's ophalen
      tags:
      - Publieke endpoints
    post:
      description: Registreer een nieuwe API met een OpenAPI URL
      operationId: createApi
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - required:
                - oasUrl
              - required:
                - oasBody
              properties:
                arazzoBody:
                  description: Inline Arazzo spec (JSON of YAML)
                  type: string
                  writeOnly: true
                arazzoUrl:
                  example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
                  format: uri
                  type: string
                contact:
                  properties:
                    email:
                      example: developer.overheid@geonovum.nl
                      format: email
                      type: string
                    name:
                      example: Team developer.overheid.nl
                      type: string
                    url:
                      example: https://github.com/developer-overheid-nl/don-api-register/issues
                      format: uri
                      type: string
                  required:
                  - email
                  - name
                  - url
                  type: object
                id:
                  example: 90szfOzDg
                  readOnly: true
                  type: string
                oasBody:
                  description: Inline OpenAPI spec (JSON of YAML)
                  type: string
                  writeOnly: true
                oasUrl:
                  example: https://api.developer.overheid.nl/api-register/v1/openapi.json
                  format: uri
                  type: string
                organisationUri:
                  example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
                  format: uri
                  type: string
                  writeOnly: true
              required:
              - id
              - organisationUri
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                allOf:
                - anyOf:
                  - required:
                    - oasUrl
                  - required:
                    - oasBody
                  properties:
                    arazzoBody:
                      description: Inline Arazzo spec (JSON of YAML)
                      type: string
                      writeOnly: true
                    arazzoUrl:
                      example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
                      format: uri
                      type: string
                    contact:
                      properties:
                        email:
                          example: developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          example: Team developer.overheid.nl
                          type: string
                        url:
                          example: https://github.com/developer-overheid-nl/don-api-register/issues
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      type: object
                    id:
                      example: 90szfOzDg
                      readOnly: true
                      type: string
                    oasBody:
                      description: Inline OpenAPI spec (JSON of YAML)
                      type: string
                      writeOnly: true
                    oasUrl:
                      example: https://api.developer.overheid.nl/api-register/v1/openapi.json
                      format: uri
                      type: string
                    organisationUri:
                      example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
                      format: uri
                      type: string
                      writeOnly: true
                  required:
                  - id
                  - organisationUri
                  type: object
                - properties:
                    _links:
                      properties:
                        self:
                          properties:
                            href:
                              example: https://api.developer.overheid.nl/v1/apis/90szfOzDg
                              format: uri
                              type: string
                          type: object
                      type: object
                    adrScore:
                      default: null
                      format: int32
                      nullable: true
                      type: integer
                    description:
                      example: API van het API register (apis.developer.overheid.nl)
                      type: string
                    lifecycle:
                      properties:
                        status:
                          enum:
                          - active
                          - deprecated
                          - sunset
                          type: string
                        version:
                          example: 1.0.0
                          type: string
                      type: object
                    organisation:
                      properties:
                        _links:
                          properties:
                            apis:
                              properties:
                                href:
                                  example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                                  type: string
                              type: object
                          type: object
                        label:
                          example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                          type: string
                        uri:
                          example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                          format: uri
                          type: string
                      required:
                      - label
                      - uri
                      type: object
                    title:
                      example: API register API v1
                      type: string
                  type: object
                required:
                - contact
                - title
                - organisation
                - adrScore
          description: Created
          headers:
            API-Version:
              description: De API-versie van de response
              schema:
                type: string
        "400":
          content:
            application/problem+json:
              schema:
                properties:
                  invalidParams:
                    properties:
                      name:
                        example: url
                        type: string
                      reason:
                        example: Invalid URI format
                        type: string
                    type: object
                  title:
                    example: Request validation failed
                    type: string
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
            Link:
              description: Links to the previous, next, last or first pages
              example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev',
                <https://developer.overheid.nl/api/v1/apis?page=3>; rel='next'
              schema:
                example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev',
                  <https://developer.overheid.nl/api/v1/apis?page=3>; rel='next'
                externalDocs:
                  description: W3C reference
                  url: https://www.w3.org/wiki/LinkHeader
                type: string
      security:
      - clientCredentials:
        - apis:write
      summary: Registreer een nieuwe API met een OpenAPI URL
      tags:
      - Private endpoints
  /apis/{id}:
    get:
      description: Specifieke API ophalen
      operationId: retreiveApi
      responses:
        "200":
          content:
            application/json:
              schema:
                allOf:
                - allOf:
                  - anyOf:
                    - required:
                      - oasUrl
                    - required:
                      - oasBody
                    properties:
                      arazzoBody:
                        description: Inline Arazzo spec (JSON of YAML)
                        type: string
                        writeOnly: true
                      arazzoUrl:
                        example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
                        format: uri
                        type: string
                      contact:
                        properties:
                          email:
                            example: developer.overheid@geonovum.nl
                            format: email
                            type: string
                          name:
                            example: Team developer.overheid.nl
                            type: string
                          url:
                            example: https://github.com/developer-overheid-nl/don-api-register/issues
                            format: uri
                            type: string
                        required:
                        - email
                        - name
                        - url
                        type: object
                      id:
                        example: 90szfOzDg
                        readOnly: true
                        type: string
                      oasBody:
                        description: Inline OpenAPI spec (JSON of YAML)
                        type: string
                        writeOnly: true
                      oasUrl:
                        example: https://api.developer.overheid.nl/api-register/v1/openapi.json
                        format: uri
                        type: string
                      organisationUri:
                        example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
                        format: uri
                        type: string
                        writeOnly: true
                    required:
                    - id
                    - organisationUri
                    type: object
                  - properties:
                      _links:
                        properties:
                          self:
                            properties:
                              href:
                                example: https://api.developer.overheid.nl/v1/apis/90szfOzDg
                                format: uri
                                type: string
                            type: object
                        type: object
                      adrScore:
                        default: null
                        format: int32
                        nullable: true
                        type: integer
                      description:
                        example: API van het API register (apis.developer.overheid.nl)
                        type: string
                      lifecycle:
                        properties:
                          status:
                            enum:
                            - active
                            - deprecated
                            - sunset
                            type: string
                          version:
                            example: 1.0.0
                            type: string
                        type: object
                      organisation:
                        properties:
                          _links:
                            properties:
                              apis:
                                properties:
                                  href:
                                    example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                                    type: string
                                type: object
                            type: object
                          label:
                            example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                            type: string
                          uri:
                            example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                            format: uri
                            type: string
                        required:
                        - label
                        - uri
                        type: object
                      title:
                        example: API register API v1
                        type: string
                    type: object
                  required:
                  - contact
                  - title
                  - organisation
                  - adrScore
                - properties:
                    auth:
                      items:
                        example: oauth2
                        type: string
                      nullable: true
                      type: array
                    description:
                      type: string
                    docsUri:
                      example: https://apis.developer.overheid.nl/apis/3fa85f64-5717-4562-b3fc-2c963f66afa6
                      format: uri
                      type: string
                    servers:
                      items:
                        properties:
                          description:
                            example: Production
                            type: string
                          url:
                            example: https://api.developer.overheid.nl/v1
                            format: uri
                            type: string
                        required:
                        - url
                        - description
                        type: object
                      type: array
                  type: object
          description: OK
          headers:
            API-Version:
              description: De API-versie van de response
              schema:
                type: string
        "404":
          description: Resource does not exist
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - apiKey: []
      - clientCredentials:
        - apis:read
      summary: Specifieke API ophalen
      tags:
      - Publieke endpoints
    parameters:
    - in: path
      name: id
      required: true
      schema:
        type: string
    put:
      description: Specifieke API updaten
      operationId: updateApi
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - required:
                - oasUrl
              - required:
                - oasBody
              properties:
                arazzoBody:
                  description: Inline Arazzo spec (JSON of YAML)
                  type: string
                  writeOnly: true
                arazzoUrl:
                  example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
                  format: uri
                  type: string
                contact:
                  properties:
                    email:
                      example: developer.overheid@geonovum.nl
                      format: email
                      type: string
                    name:
                      example: Team developer.overheid.nl
                      type: string
                    url:
                      example: https://github.com/developer-overheid-nl/don-api-register/issues
                      format: uri
                      type: string
                  required:
                  - email
                  - name
                  - url
                  type: object
                id:
                  example: 90szfOzDg
                  readOnly: true
                  type: string
                oasBody:
                  description: Inline OpenAPI spec (JSON of YAML)
                  type: string
                  writeOnly: true
                oasUrl:
                  example: https://api.developer.overheid.nl/api-register/v1/openapi.json
                  format: uri
                  type: string
                organisationUri:
                  example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
                  format: uri
                  type: string
                  writeOnly: true
              required:
              - id
              - organisationUri
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                allOf:
                - anyOf:
                  - required:
                    - oasUrl
                  - required:
                    - oasBody
                  properties:
                    arazzoBody:
                      description: Inline Arazzo spec (JSON of YAML)
                      type: string
                      writeOnly: true
                    arazzoUrl:
                      example: https://api.developer.overheid.nl/api-register/v1/arazzo.yaml
                      format: uri
                      type: string
                    contact:
                      properties:
                        email:
                          example: developer.overheid@geonovum.nl
                          format: email
                          type: string
                        name:
                          example: Team developer.overheid.nl
                          type: string
                        url:
                          example: https://github.com/developer-overheid-nl/don-api-register/issues
                          format: uri
                          type: string
                      required:
                      - email
                      - name
                      - url
                      type: object
                    id:
                      example: 90szfOzDg
                      readOnly: true
                      type: string
                    oasBody:
                      description: Inline OpenAPI spec (JSON of YAML)
                      type: string
                      writeOnly: true
                    oasUrl:
                      example: https://api.developer.overheid.nl/api-register/v1/openapi.json
                      format: uri
                      type: string
                    organisationUri:
                      example: https://identifier.overheid.nl/tooi/id/gemeente/gm0363
                      format: uri
                      type: string
                      writeOnly: true
                  required:
                  - id
                  - organisationUri
                  type: object
                - properties:
                    _links:
                      properties:
                        self:
                          properties:
                            href:
                              example: https://api.developer.overheid.nl/v1/apis/90szfOzDg
                              format: uri
                              type: string
                          type: object
                      type: object
                    adrScore:
                      default: null
                      format: int32
                      nullable: true
                      type: integer
                    description:
                      example: API van het API register (apis.developer.overheid.nl)
                      type: string
                    lifecycle:
                      properties:
                        status:
                          enum:
                          - active
                          - deprecated
                          - sunset
                          type: string
                        version:
                          example: 1.0.0
                          type: string
                      type: object
                    organisation:
                      properties:
                        _links:
                          properties:
                            apis:
                              properties:
                                href:
                                  example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                                  type: string
                              type: object
                          type: object
                        label:
                          example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                          type: string
                        uri:
                          example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                          format: uri
                          type: string
                      required:
                      - label
                      - uri
                      type: object
                    title:
                      example: API register API v1
                      type: string
                  type: object
                required:
                - contact
                - title
                - organisation
                - adrScore
          description: Created
          headers:
            API-Version:
              description: De API-versie van de response
              schema:
                type: string
        "400":
          content:
            application/problem+json:
              schema:
                properties:
                  invalidParams:
                    properties:
                      name:
                        example: url
                        type: string
                      reason:
                        example: Invalid URI format
                        type: string
                    type: object
                  title:
                    example: Request validation failed
                    type: string
                type: object
          description: Bad request
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
            Link:
              description: Links to the previous, next, last or first pages
              example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev',
                <https://developer.overheid.nl/api/v1/apis?page=3>; rel='next'
              schema:
                example: <https://developer.overheid.nl/api/v1/apis?page=2>; rel='prev',
                  <https://developer.overheid.nl/api/v1/apis?page=3>; rel='next'
                externalDocs:
                  description: W3C reference
                  url: https://www.w3.org/wiki/LinkHeader
                type: string
        "404":
          description: Resource does not exist
          headers:
            API-Version:
              description: Semver of this API
              example: 1.0.0
              schema:
                example: 1.0.0
                externalDocs:
                  description: ' /core/version-header: Return the full version number
                    in a response header'
                  url: https://logius-standaarden.github.io/API-Design-Rules/#/core/version-header
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
                type: string
      security:
      - clientCredentials:
        - write
      summary: Specifieke API updaten
      tags:
      - Private endpoints
  /organisations:
    get:
      description: Alle organisaties ophalen
      operationId: listOrganisations
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  organisations:
                    items:
                      properties:
                        _links:
                          properties:
                            apis:
                              properties:
                                href:
                                  example: /v1/apis?organisation=https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                                  type: string
                              type: object
                          type: object
                        label:
                          example: Binnenlandse Zaken en Koninkrijksrelaties (BZK)
                          type: string
                        uri:
                          example: https://identifier.overheid.nl/tooi/id/ministerie/mnre1034
                          format: uri
                          type: string
                      required:
                      - label
                      - uri
                      type: object
                    type: array
                type: object
          description: OK
          headers:
            API-Version:
              description: De API-versie van de response
              example: 1.0.0
              schema:
                example: 1.0.0
                type: string
      security:
      - apiKey: []
      - clientCredentials:
        - organisations:read
      summary: Alle organisaties ophalen
      tags:
      - Publieke endpoints
security:
- clientCredentials: []
servers:
- description: Productie
  url: https://api.developer.overheid.nl/api-register/v1
- description: Test
  url: https://api-register.don.apps.digilab.network/api-register/v1
tags:
- description: Publieke endpoints van het API-register, te benaderen met een API-key
    of client credentials token.
  name: Publieke endpoints
- description: Private endpoints van het API-register, te benaderen met een client
    credentials token.
  name: Private endpoints
