{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/kvk-nl/json-schema/kvk-nl-paged-signalen-hal-type-schema.json",
  "title": "PagedSignalenHalType",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/kvk-nl-mutatieservice-openapi.yml#/components/schemas/PagedSignalenHalType",
  "allOf": [
    {
      "required": [
        "signalen"
      ],
      "type": "object",
      "properties": {
        "signalen": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SignaalInfoHal"
          }
        }
      }
    },
    {
      "$ref": "#/$defs/PaginationInfo"
    },
    {
      "type": "object",
      "properties": {
        "vorige": {
          "type": "string"
        },
        "volgende": {
          "type": "string"
        }
      }
    }
  ],
  "$defs": {
    "HateoasLink": {
      "title": "Link Description",
      "required": [
        "href",
        "rel"
      ],
      "type": "object",
      "properties": {
        "href": {
          "type": "string",
          "description": "De volledige doel-URL. Om de bijbehorende aanroep te maken, combineert u de methode met deze [URI-sjabloon-geformatteerde](https://tools.ietf.org/html/rfc6570) link. Voor de voorbewerking voegt u de tekens `$`, `(` en `)` toe. De `href` is het belangrijkste HATEOAS-onderdeel dat een voltooide aanroep koppelt aan een volgende aanroep."
        },
        "rel": {
          "type": "string",
          "description": "Het [linkrelatietype](https://tools.ietf.org/html/rfc5988#section-4), dat dient als een ID voor een link die de semantiek van de link ondubbelzinnig beschrijft. Zie [Linkrelaties](https://www.iana.org/assignments/link-relations/link-relations.xhtml)."
        },
        "method": {
          "type": "string",
          "description": "De HTTP-methode die nodig is om de betreffende oproep te doen.",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "DELETE",
            "HEAD",
            "CONNECT",
            "OPTIONS",
            "PATCH"
          ]
        }
      }
    },
    "HateoasLinks": {
      "required": [
        "links"
      ],
      "type": "object",
      "properties": {
        "links": {
          "maxItems": 10,
          "minItems": 1,
          "type": "array",
          "description": "Een array van HATEOAS links.",
          "items": {
            "$ref": "#/$defs/HateoasLink"
          }
        }
      }
    },
    "PaginationInfo": {
      "required": [
        "aantal",
        "pagina",
        "totaal",
        "totaalPaginas"
      ],
      "type": "object",
      "properties": {
        "pagina": {
          "type": "integer"
        },
        "aantal": {
          "type": "integer"
        },
        "totaal": {
          "type": "number"
        },
        "totaalPaginas": {
          "type": "integer"
        }
      }
    },
    "SignaalInfo": {
      "required": [
        "id",
        "kvknummer",
        "timestamp"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "timestamp": {
          "type": "string",
          "description": "Het datum en tijdformaat moet voldoen aan RFC3339 op basis van ISO8601.",
          "format": "date-time"
        },
        "kvknummer": {
          "type": "string",
          "default": ""
        },
        "signaalType": {
          "$ref": "#/$defs/SignaalType"
        },
        "vestigingsnummer": {
          "type": "string"
        }
      }
    },
    "SignaalInfoHal": {
      "allOf": [
        {
          "$ref": "#/$defs/SignaalInfo"
        },
        {
          "$ref": "#/$defs/HateoasLinks"
        }
      ]
    },
    "SignaalType": {
      "type": "string",
      "enum": [
        "SignaalGewijzigdeInschrijving",
        "SignaalNieuweInschrijving",
        "SignaalGewijzigdeVestiging",
        "SignaalBeeindiging_2025_01",
        "SignaalRechtsvormwijziging_2025_01",
        "SignaalVoortzettingEnOverdracht_2025_01",
        "SignaalAdreswijziging_2025_01",
        "SignaalNaamgeving_2025_01",
        "SignaalFusieSplitsing_2025_01",
        "SignaalActiviteitenWijziging_2025_01",
        "SignaalInsolventie_2025_01",
        "SignaalFunctionarisWijziging_2025_01"
      ]
    }
  }
}