{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/acculynx/json-schema/acculynx-topic-collection-schema.json",
  "title": "topicCollection",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/acculynx-webhooks-api-openapi.yml#/components/schemas/topicCollection",
  "allOf": [
    {
      "$ref": "#/$defs/baseCollection"
    },
    {
      "description": "A paginated collection of available webhook topics.\nContains both pagination metadata and the list of topics.\n",
      "properties": {
        "items": {
          "description": "The list of topic objects for this page of results.\nEach item contains a topic name and description.\n",
          "items": {
            "$ref": "#/$defs/topic"
          },
          "type": "array"
        }
      },
      "type": "object"
    }
  ],
  "$defs": {
    "baseCollection": {
      "description": "Base structure for all paginated collection responses.\nThis provides consistent pagination metadata across all collection endpoints.\n",
      "properties": {
        "count": {
          "description": "The total number of items available across all pages.\nUse this to calculate the total number of pages available.\n",
          "type": "integer"
        },
        "pageSize": {
          "description": "The number of items per page in this response.\nThis reflects either your requested page size or the default value.\n",
          "type": "integer"
        },
        "pageStartIndex": {
          "description": "The starting index of this page of results.\nUse with pageSize to track your position in the overall result set.\n",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "topic": {
      "description": "Information about an available webhook topic.\nTopics represent different types of events you can subscribe to.\n",
      "properties": {
        "description": {
          "description": "Human-readable description of what this event represents.\nHelps you understand when this event will be triggered.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The unique identifier for this topic.\nUse this exact string when creating or updating subscriptions.\n",
          "type": "string"
        }
      },
      "required": [
        "topicName",
        "description"
      ],
      "type": "object"
    }
  }
}