{
  "openapi": "3.0.3",
  "info": {
    "version": "",
    "title": "Event Manager",
    "description": "This section describes **what the eGain server does** when knowledge base events occur: it **sends** (POSTs) event payloads to the webhook URL you configure (e.g. in the eGain Admin console). You do not call this API; the server calls your endpoint.\n\nThe documentation below is a reference for the request bodies the server delivers to your webhook and how your endpoint should respond.\n"
  },
  "servers": [
    {
      "url": "https://api.egain.cloud/knowledge/eventmgr/v4",
      "description": "Production Server"
    }
  ],
  "paths": {
    "/webhook": {
      "servers": [
        {
          "url": "https://example.com",
          "description": "Example webhook URL (configure your URL in eGain Admin console)."
        }
      ],
      "put": {
        "summary": "Asynchronous Knowledge Events",
        "operationId": "knowledge_asynchronous_events",
        "description": "**You do not call this URL.** This page is a **reference** for **your webhook endpoint**: it documents the request \nbodies the **eGain server** sends **to the URL you configure** (e.g. in the eGain Admin console). When knowledge \nevents occur, the server **PUTs** to your webhook; the callbacks below define each event type and the payload your \nendpoint will receive.<br><br>\nWebhook registration is done outside this API (e.g. via the eGain Admin console). Any \"Try it\" or request sample \nbelow is for illustration only — in practice the **server** PUTs to **your** webhook URL, not the other way around.<br><br>\n__Your webhook response:__ Your endpoint should return **204 No Content** on successful processing so that the \nserver does not retry.<br><br>\n__Note:__ When the server puts event details to your callback URL:\n<ul>\n  <li>Read timeout happens if your callback takes more than 10 seconds.</li>\n  <li>Only response codes <strong>429</strong>, <strong>502</strong>, or <strong>503</strong> (or read timeout) \n  trigger a retry; the server retries with a 30 second interval for a maximum of 3 times.</li>\n  <li>Any other response code is ignored; the server does not retry and considers the delivery complete.</li>\n  <li>Events provide at-least-once delivery guarantee. The same event may be delivered more than once.</li>\n  <li>Implement idempotent processing using the notificationId for deduplication.</li>\n  <li>Events may be delivered out of order.</li>\n  <li>New event types may be added in the future. Your endpoint should ignore event types it does not recognize.</li>\n  <li>Existing event payloads may gain new fields in the future. Existing attributes will not be renamed or removed, \n  so changes remain backwards compatible. Your endpoint should tolerate (ignore) unknown fields rather than failing on them.</li>\n</ul>\n",
        "servers": [
          {
            "url": "https://example.com",
            "description": "Example webhook host (configure your URL in eGain Admin console)."
          }
        ],
        "x-hideTryItPanel": true,
        "x-hideReplay": true,
        "responses": {
          "204": {
            "description": "Your endpoint should return 204 No Content on success so the server does not retry."
          },
          "429": {
            "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
          },
          "502": {
            "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
          },
          "503": {
            "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
          },
          "4XX": {
            "$ref": "#/components/responses/4xx_client_error"
          },
          "5XX": {
            "$ref": "#/components/responses/other_codes_ignored"
          }
        },
        "callbacks": {
          "article_type_created": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Type Created",
                "operationId": "article_type_created",
                "description": "## Event name\narticle_type_created\n\n## Description\nEvent generated when a new Article Type is created in the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Type Created": {
                          "$ref": "#/components/examples/ArticleTypeCreated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_type_updated": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Type Updated",
                "operationId": "article_type_updated",
                "description": "## Event name\narticle_type_updated\n\n## Description\nEvent generated when an Article Type is updated in the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Type Updated": {
                          "$ref": "#/components/examples/ArticleTypeUpdated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_type_deleted": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Type Deleted",
                "operationId": "article_type_deleted",
                "description": "## Event name\narticle_type_deleted\n\n## Description\nEvent generated when an Article Type is deleted from the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Type Deleted": {
                          "$ref": "#/components/examples/ArticleTypeDeleted"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "installation_name_added": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Installation Name Added",
                "operationId": "installation_name_added",
                "description": "## Event name\ninstallation_name_added\n\n## Description\nEvent generated when a new Installation Name is added.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Installation Name Added": {
                          "$ref": "#/components/examples/InstallationNameAdded"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "installation_name_updated": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Installation Name Updated",
                "operationId": "installation_name_updated",
                "description": "## Event name\ninstallation_name_updated\n\n## Description\nEvent generated when an Installation Name is updated.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Installation Name Updated": {
                          "$ref": "#/components/examples/InstallationNameUpdated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_availability_date_reached": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Availability Date Reached",
                "operationId": "article_availability_date_reached",
                "description": "## Event name\narticle_availability_date_reached\n\n## Description\nEvent generated when an article's availability date is reached and the article becomes available in portals.\n__Dev Note:__ This fires when a scheduled article's availability date is reached; distinct from article_published which fires when the article is published (and may include availability/expiration dates in the payload).\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Availability Date Reached": {
                          "$ref": "#/components/examples/ArticleAvailabilityDateReached"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_expiration_date_reached": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Expiration Date Reached",
                "operationId": "article_expiration_date_reached",
                "description": "## Event name\narticle_expiration_date_reached\n\n## Description\nEvent generated when an article expires.\n__Dev Note:__ This fires when an article's expiration date is reached; the same payload shape as article_availability_date_reached but for expiration.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Expiration Date Reached": {
                          "$ref": "#/components/examples/ArticleExpirationDateReached"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_created": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Created",
                "operationId": "article_created",
                "description": "## Event name\narticle_created\n\n## Description\nEvent generated when a new article is created in the Knowledge Base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Created": {
                          "$ref": "#/components/examples/ArticleCreated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_published": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Published",
                "operationId": "article_published",
                "description": "## Event name\narticle_published\n\n## Description\nEvent generated when an article is published.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Published": {
                          "$ref": "#/components/examples/ArticlePublished"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_moved": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Moved",
                "operationId": "article_moved",
                "description": "## Event name\narticle_moved\n\n## Description\nEvent generated when an article is moved to a different folder.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Moved": {
                          "$ref": "#/components/examples/ArticleMoved"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_deleted": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Deleted",
                "operationId": "article_deleted",
                "description": "## Event name\narticle_deleted\n\n## Description\nEvent generated when an article is deleted from the Knowledge Base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Deleted": {
                          "$ref": "#/components/examples/ArticleDeleted"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_stage_updated": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Stage Updated",
                "operationId": "article_stage_updated",
                "description": "## Event name\narticle_stage_updated\n\n## Description\nEvent generated when an article's stage is changed; that is, the article moves from one stage to another in its lifecycle.\n__Dev Note:__ The payload may include a `changes` array describing what attributes changed (e.g. content, topic associations).\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Stage Updated": {
                          "$ref": "#/components/examples/ArticleStageUpdated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_copied": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Copied",
                "operationId": "article_copied",
                "description": "## Event name\narticle_copied\n\n## Description\nEvent generated when an article is copied.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Copied": {
                          "$ref": "#/components/examples/ArticleCopied"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_checked_out": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Checked Out",
                "operationId": "article_checked_out",
                "description": "## Event name\narticle_checked_out\n\n## Description\nEvent generated when an article is checked out for editing.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Checked Out": {
                          "$ref": "#/components/examples/ArticleCheckedOut"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_checked_in": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Checked In",
                "operationId": "article_checked_in",
                "description": "## Event name\narticle_checked_in\n\n## Description\nEvent generated when an article is checked in after modification.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Checked In": {
                          "$ref": "#/components/examples/ArticleCheckedIn"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "article_modified": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Article Modified",
                "operationId": "article_modified",
                "description": "## Event name\narticle_modified\n\n## Description\nEvent generated when an article is modified.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Article Modified": {
                          "$ref": "#/components/examples/ArticleModified"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "topic_created": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Topic Created",
                "operationId": "topic_created",
                "description": "## Event name\ntopic_created\n\n## Description\nEvent generated when a new topic is created in the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Topic Created": {
                          "$ref": "#/components/examples/TopicCreated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "topic_updated": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Topic Updated",
                "operationId": "topic_updated",
                "description": "## Event name\ntopic_updated\n\n## Description\nEvent generated when a topic is updated in the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Topic Updated": {
                          "$ref": "#/components/examples/TopicUpdated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "topic_moved": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Topic Moved",
                "operationId": "topic_moved",
                "description": "## Event name\ntopic_moved\n\n## Description\nEvent generated when a topic is moved to a different parent topic.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Topic Moved": {
                          "$ref": "#/components/examples/TopicMoved"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "topic_copied": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Topic Copied",
                "operationId": "topic_copied",
                "description": "## Event name\ntopic_copied\n\n## Description\nEvent generated when a topic is copied in the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Topic Copied": {
                          "$ref": "#/components/examples/TopicCopied"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "topic_deleted": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Topic Deleted",
                "operationId": "topic_deleted",
                "description": "## Event name\ntopic_deleted\n\n## Description\nEvent generated when a topic is deleted from the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Topic Deleted": {
                          "$ref": "#/components/examples/TopicDeleted"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          },
          "portal_updated": {
            "{customerCallbackUrl}": {
              "parameters": [
                {
                  "name": "customerCallbackUrl",
                  "in": "path",
                  "required": true,
                  "schema": {
                    "type": "string"
                  },
                  "description": "Customer webhook URL (configured out-of-band, e.g. via Admin console)."
                }
              ],
              "put": {
                "summary": "Portal Updated",
                "operationId": "portal_updated",
                "description": "## Event name\nportal_updated\n\n## Description\nEvent generated when a portal is updated in the knowledge base.\n",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/KnowledgeSubscriptionEventAsync"
                      },
                      "examples": {
                        "Portal Updated": {
                          "$ref": "#/components/examples/PortalUpdated"
                        }
                      }
                    }
                  }
                },
                "responses": {
                  "204": {
                    "$ref": "#/components/responses/204_no_content"
                  },
                  "429": {
                    "description": "Too Many Requests. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "502": {
                    "description": "Bad Gateway. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "503": {
                    "description": "Service Unavailable. If your endpoint returns this, the server retries with a 30 second interval, up to 3 times."
                  },
                  "4XX": {
                    "$ref": "#/components/responses/4xx_client_error"
                  },
                  "5XX": {
                    "$ref": "#/components/responses/other_codes_ignored"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "oAuthClient": {
        "type": "oauth2",
        "description": "Authenticate as a client (Server to Server).",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://login.egain.cloud/global/f51302dd-7036-41b5-b619-e1a52a67c780/oauth2/v2.0/token",
            "scopes": {
              "https://api.egain.cloud/auth/.default": "Default scope"
            }
          }
        },
        "x-defaultClientId": "7bbc9ba6-0465-46f0-91f4-d2742cdc0ef8"
      },
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "responses": {
      "4xx_client_error": {
        "description": "Any other 4xx client error. The server does not retry; the response is ignored."
      },
      "other_codes_ignored": {
        "description": "Any other response code (e.g. other 5xx). The server does not retry; the response is ignored."
      },
      "204_no_content": {
        "description": "No Content"
      }
    },
    "schemas": {
      "Metadata": {
        "type": "object",
        "title": "Metadata",
        "required": [
          "notificationId",
          "payloadVersion",
          "timestamp",
          "tenantId"
        ],
        "properties": {
          "notificationId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for this notification - UUID. Use this for deduplication \nto ensure idempotent processing. The same notificationId indicates \na duplicate delivery of the same event.\n",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "payloadVersion": {
            "type": "string",
            "description": "Version of the payload structure.",
            "example": "v20"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the event notification was generated.",
            "example": "2026-02-11T10:30:00.123Z"
          },
          "tenantId": {
            "type": "string",
            "description": "Tenant identifier for multi-tenant deployments.",
            "example": "tenant-123"
          }
        }
      },
      "ArticleTypeInfo": {
        "title": "Article Type",
        "type": "object",
        "properties": {
          "articleCategoryId": {
            "description": "Specifies the article category ID.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 7
          },
          "typeName": {
            "description": "Indicates the article type name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[\\w\\W]+$"
          },
          "useStructuredAuthoring": {
            "description": "Indicates whether structured authoring is enabled for this article type, requiring content to be created using predefined fields",
            "type": "boolean"
          },
          "useForCertifiedAnswers": {
            "description": "Indicates whether articles of this type can be designated as Certified Answers",
            "type": "boolean"
          },
          "articleTypeId": {
            "description": "The ID of the Article Type.",
            "type": "string",
            "minLength": 15,
            "maxLength": 20,
            "pattern": "^[0-9]+$",
            "example": "932100000002020"
          },
          "imageURL": {
            "description": "The URL of an image to be associated with the Article Type",
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "pattern": "^(?:https?:\\/\\/|\\/\\/|\\/|\\.\\.?\\/|[a-zA-Z0-9])[\\w\\-\\.\\/%\\?=#&:]*$"
          },
          "description": {
            "description": "Description of Article Type",
            "type": "string",
            "minLength": 0,
            "maxLength": 2000,
            "pattern": "^[\\w\\W]*$"
          },
          "isSearchable": {
            "description": "Indicates whether articles of this type are included in portal search results",
            "type": "boolean"
          },
          "isBrowsable": {
            "description": "Indicates whether articles of this type are displayed in portal browsing areas such as topics and lists",
            "type": "boolean"
          }
        }
      },
      "ArticleTypeCreatedUpdated": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_type_created",
                  "article_type_updated"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleTypeInfo"
          },
          {
            "type": "object",
            "properties": {
              "departmentId": {
                "type": "string",
                "description": "ID of the department this event belongs to.",
                "example": "999"
              }
            }
          }
        ]
      },
      "ArticleTypeDeleted": {
        "type": "object",
        "title": "ArticleTypeDeleted",
        "description": "Payload for article type deleted events.",
        "required": [
          "eventType"
        ],
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "article_type_deleted"
            ]
          },
          "articleTypeId": {
            "type": "string",
            "minLength": 15,
            "maxLength": 20,
            "pattern": "^[0-9]+$",
            "description": "Unique identifier of the deleted article type.",
            "example": "999900000002020"
          },
          "departmentId": {
            "type": "string",
            "description": "ID of the department this event belongs to.",
            "example": "999"
          }
        }
      },
      "InstallationName": {
        "type": "object",
        "title": "InstallationName",
        "description": "Payload for installation name added or updated events.",
        "required": [
          "eventType"
        ],
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "installation_name_added",
              "installation_name_updated"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Unique identifier of the installation.",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "Name of the installation.",
            "example": "auth"
          },
          "isRemote": {
            "type": "boolean",
            "description": "Indicates whether the installation is remote.",
            "example": true
          }
        }
      },
      "ArticleEventBase": {
        "type": "object",
        "title": "ArticleEventBase",
        "description": "Base schema containing common properties for article events.",
        "properties": {
          "articleId": {
            "type": "string",
            "description": "Unique identifier of the article.",
            "example": "auth-130556"
          },
          "departmentId": {
            "type": "string",
            "description": "ID of the department this event belongs to.",
            "pattern": "^[1-9]\\d*$",
            "minLength": 3,
            "maxLength": 10,
            "example": "999"
          },
          "portalIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of portal IDs.",
            "example": [
              "PZ-1000",
              "auth-1064"
            ]
          },
          "languageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of language codes.",
            "example": [
              "en-US",
              "es-ES",
              "fr-FR",
              "en-GB"
            ]
          },
          "parentFolderId": {
            "type": "string",
            "minLength": 15,
            "maxLength": 20,
            "pattern": "^[0-9]+$",
            "description": "Unique identifier of the parent folder (numeric ID).",
            "example": "999900000000001"
          }
        }
      },
      "ArticleAvailableOrExpired": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_availability_date_reached",
                  "article_expiration_date_reached"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "reachedDate": {
                "type": "string",
                "format": "date-time",
                "description": "Date when the availability or expiration was reached.",
                "example": "2026-01-19T14:15:52.880Z"
              },
              "versionId": {
                "type": "string",
                "description": "The ID of the article version that reached availability or expiration date.",
                "example": "DEV1-5001"
              },
              "articleEditionIds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of article edition IDs.",
                "example": [
                  "DEV1-7001",
                  "DEV1-7002"
                ]
              }
            }
          }
        ]
      },
      "Change": {
        "type": "object",
        "title": "Change",
        "description": "Represents a single change made to an article, topic, or portal.",
        "properties": {
          "changeType": {
            "type": "string",
            "description": "Type of change performed. Possible values include \"update\", \"association\", \"dissociation\".",
            "example": "update"
          },
          "attribute": {
            "type": "string",
            "description": "The attribute that was changed.",
            "example": "content"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The values associated with the change (for certain change types).",
            "example": [
              "auth-5714"
            ]
          }
        }
      },
      "Changes": {
        "type": "object",
        "title": "Changes",
        "description": "Object containing the list of changes made to an article, topic, or portal.",
        "properties": {
          "change": {
            "type": "array",
            "description": "Array of change items.",
            "items": {
              "$ref": "#/components/schemas/Change"
            }
          }
        }
      },
      "ArticleCreated": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_created"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "changes": {
                "$ref": "#/components/schemas/Changes"
              }
            }
          }
        ]
      },
      "ArticleModifiedCheckedInPublished": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_published",
                  "article_checked_in",
                  "article_modified"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "availabilityDate": {
                "type": "string",
                "format": "date-time",
                "description": "Date when a scheduled article becomes available.",
                "example": "2026-01-19T14:00:00.000Z"
              },
              "expirationDate": {
                "type": "string",
                "format": "date-time",
                "description": "Date when an article expires.",
                "example": "2026-02-19T14:00:00.000Z"
              },
              "changes": {
                "$ref": "#/components/schemas/Changes"
              }
            }
          }
        ]
      },
      "ArticleCopiedMoved": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_moved",
                  "article_copied"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "sourceParentFolderId": {
                "type": "string",
                "minLength": 15,
                "maxLength": 20,
                "pattern": "^[0-9]+$",
                "description": "The source parent folder ID before the move or copy.",
                "example": "999900000001009"
              },
              "destinationParentFolderId": {
                "type": "string",
                "minLength": 15,
                "maxLength": 20,
                "pattern": "^[0-9]+$",
                "description": "The destination parent folder ID after the move or copy.",
                "example": "999900000001010"
              },
              "sourceParentTopicId": {
                "type": "string",
                "description": "The source parent topic ID before the move or copy.",
                "example": "ERTG-1007"
              },
              "destinationParentTopicId": {
                "type": "string",
                "description": "The destination parent topic ID after the move or copy.",
                "example": "ERTG-1008"
              }
            }
          }
        ]
      },
      "ArticleDeletedOrCheckedOut": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_deleted",
                  "article_checked_out"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          }
        ]
      },
      "ArticleStageUpdated": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_stage_updated"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "previousStage": {
                "type": "string",
                "description": "The previous stage of the article.",
                "example": "Legal Review"
              },
              "currentStage": {
                "type": "string",
                "description": "The current stage of the article.",
                "example": "staging"
              },
              "workflowMilestone": {
                "type": "string",
                "enum": [
                  "authoring",
                  "staging",
                  "publish"
                ],
                "description": "Represents article's milestone in its review workflow.",
                "example": "staging"
              },
              "changes": {
                "$ref": "#/components/schemas/Changes"
              }
            }
          }
        ]
      },
      "TopicEventBase": {
        "type": "object",
        "title": "TopicEventBase",
        "description": "Base schema containing common properties for topic events.",
        "properties": {
          "topicId": {
            "type": "string",
            "description": "Unique identifier of the topic.",
            "example": "auth-5711"
          },
          "departmentId": {
            "type": "string",
            "description": "ID of the department this event belongs to.",
            "example": "999"
          },
          "parentTopicId": {
            "type": "string",
            "description": "Identifier of the parent topic.",
            "example": "-1"
          },
          "portalIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of portal IDs.",
            "example": [
              "PZ-1000",
              "auth-1050"
            ]
          },
          "languageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of language codes.",
            "example": [
              "en-US",
              "es-ES",
              "tr-TR",
              "fr-FR",
              "en-GB"
            ]
          }
        }
      },
      "TopicCreatedDeleted": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "topic_created",
                  "topic_deleted"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/TopicEventBase"
          }
        ]
      },
      "TopicUpdated": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "topic_updated"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/TopicEventBase"
          },
          {
            "type": "object",
            "properties": {
              "changes": {
                "$ref": "#/components/schemas/Changes"
              }
            }
          }
        ]
      },
      "TopicMovedCopied": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "topic_moved",
                  "topic_copied"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/TopicEventBase"
          },
          {
            "type": "object",
            "properties": {
              "sourceParentTopicId": {
                "type": "string",
                "description": "The source parent topic ID before the move or copy.",
                "example": "auth-5716"
              }
            }
          }
        ]
      },
      "PortalUpdated": {
        "type": "object",
        "title": "PortalUpdated",
        "description": "Payload for portal updated events.",
        "required": [
          "eventType"
        ],
        "properties": {
          "eventType": {
            "type": "string",
            "enum": [
              "portal_updated"
            ]
          },
          "portalId": {
            "type": "string",
            "description": "Unique identifier of the portal.",
            "example": "auth-1050"
          },
          "departmentId": {
            "type": "string",
            "description": "ID of the department this event belongs to.",
            "example": "999"
          },
          "languageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of language codes.",
            "example": [
              "en-US",
              "es-ES",
              "tr-TR",
              "fr-FR",
              "en-GB"
            ]
          },
          "changes": {
            "$ref": "#/components/schemas/Changes"
          }
        }
      },
      "ArticleCopied": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_copied"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "sourceParentTopicId": {
                "type": "string",
                "description": "The source parent topic ID before the copy.",
                "example": "auth-5716"
              },
              "destinationParentTopicId": {
                "type": "string",
                "description": "The destination parent topic ID after the copy.",
                "example": "auth-5717"
              },
              "sourceParentFolderId": {
                "type": "string",
                "minLength": 15,
                "maxLength": 20,
                "pattern": "^[0-9]+$",
                "description": "The source parent folder long ID before the copy.",
                "example": "999900000000001"
              },
              "destinationParentFolderId": {
                "type": "string",
                "minLength": 15,
                "maxLength": 20,
                "pattern": "^[0-9]+$",
                "description": "The destination parent folder long ID after the copy.",
                "example": "999900000000002"
              }
            }
          }
        ]
      },
      "ArticleCheckOut": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_check_out"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          }
        ]
      },
      "ArticleCheckInModified": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "eventType"
            ],
            "properties": {
              "eventType": {
                "type": "string",
                "enum": [
                  "article_check_in",
                  "article_modified"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/ArticleEventBase"
          },
          {
            "type": "object",
            "properties": {
              "availabilityDate": {
                "type": "string",
                "format": "date-time",
                "description": "Date when a scheduled article becomes available.",
                "example": "2026-03-06T19:12:00.000Z"
              },
              "expirationDate": {
                "type": "string",
                "format": "date-time",
                "description": "Date when an article expires.",
                "example": "2026-03-06T19:16:29.000Z"
              },
              "changes": {
                "$ref": "#/components/schemas/Changes"
              }
            }
          }
        ]
      },
      "EventPayload": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ArticleTypeCreatedUpdated"
          },
          {
            "$ref": "#/components/schemas/ArticleTypeDeleted"
          },
          {
            "$ref": "#/components/schemas/InstallationName"
          },
          {
            "$ref": "#/components/schemas/ArticleAvailableOrExpired"
          },
          {
            "$ref": "#/components/schemas/ArticleModifiedCheckedInPublished"
          },
          {
            "$ref": "#/components/schemas/ArticleCreated"
          },
          {
            "$ref": "#/components/schemas/ArticleCopiedMoved"
          },
          {
            "$ref": "#/components/schemas/ArticleDeletedOrCheckedOut"
          },
          {
            "$ref": "#/components/schemas/ArticleStageUpdated"
          },
          {
            "$ref": "#/components/schemas/ArticleCopied"
          },
          {
            "$ref": "#/components/schemas/ArticleCheckOut"
          },
          {
            "$ref": "#/components/schemas/ArticleCheckInModified"
          },
          {
            "$ref": "#/components/schemas/TopicCreatedDeleted"
          },
          {
            "$ref": "#/components/schemas/TopicUpdated"
          },
          {
            "$ref": "#/components/schemas/TopicMovedCopied"
          },
          {
            "$ref": "#/components/schemas/PortalUpdated"
          }
        ],
        "discriminator": {
          "propertyName": "eventType",
          "mapping": {
            "article_type_created": "#/components/schemas/ArticleTypeCreatedUpdated",
            "article_type_updated": "#/components/schemas/ArticleTypeCreatedUpdated",
            "article_type_deleted": "#/components/schemas/ArticleTypeDeleted",
            "installation_name_added": "#/components/schemas/InstallationName",
            "installation_name_updated": "#/components/schemas/InstallationName",
            "article_availability_date_reached": "#/components/schemas/ArticleAvailableOrExpired",
            "article_expiration_date_reached": "#/components/schemas/ArticleAvailableOrExpired",
            "article_created": "#/components/schemas/ArticleCreated",
            "article_published": "#/components/schemas/ArticleModifiedCheckedInPublished",
            "article_moved": "#/components/schemas/ArticleCopiedMoved",
            "article_deleted": "#/components/schemas/ArticleDeletedOrCheckedOut",
            "article_stage_updated": "#/components/schemas/ArticleStageUpdated",
            "article_copied": "#/components/schemas/ArticleCopiedMoved",
            "article_checked_out": "#/components/schemas/ArticleDeletedOrCheckedOut",
            "article_checked_in": "#/components/schemas/ArticleModifiedCheckedInPublished",
            "article_modified": "#/components/schemas/ArticleModifiedCheckedInPublished",
            "topic_created": "#/components/schemas/TopicCreatedDeleted",
            "topic_updated": "#/components/schemas/TopicUpdated",
            "topic_moved": "#/components/schemas/TopicMovedCopied",
            "topic_copied": "#/components/schemas/TopicMovedCopied",
            "topic_deleted": "#/components/schemas/TopicCreatedDeleted",
            "portal_updated": "#/components/schemas/PortalUpdated"
          }
        }
      },
      "Message": {
        "type": "object",
        "title": "Message",
        "required": [
          "id",
          "eventTimestamp",
          "payload"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Message identifier within this notification batch.",
            "example": "1000"
          },
          "eventTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the event occurred.",
            "example": "2026-02-11T10:30:00.123Z"
          },
          "payload": {
            "$ref": "#/components/schemas/EventPayload"
          }
        }
      },
      "KnowledgeSubscriptionEventAsync": {
        "type": "object",
        "title": "KnowledgeSubscriptionEvent",
        "required": [
          "metadata",
          "messages"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "messages": {
            "type": "array",
            "description": "Messages for the event.",
            "minItems": 1,
            "maxItems": 250,
            "items": {
              "$ref": "#/components/schemas/Message"
            }
          }
        }
      }
    },
    "examples": {
      "ArticleTypeCreated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440000",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T10:30:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1000",
              "eventTimestamp": "2026-02-11T10:30:00.123Z",
              "payload": {
                "eventType": "article_type_created",
                "articleTypeId": "999900000002020",
                "typeName": "FAQ",
                "departmentId": "999"
              }
            }
          ]
        }
      },
      "ArticleTypeUpdated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440001",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T10:35:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1001",
              "eventTimestamp": "2026-02-11T10:35:00.123Z",
              "payload": {
                "eventType": "article_type_updated",
                "articleTypeId": "999900000002020",
                "departmentId": "999"
              }
            }
          ]
        }
      },
      "ArticleTypeDeleted": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440002",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T10:40:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1002",
              "eventTimestamp": "2026-02-11T10:40:00.123Z",
              "payload": {
                "eventType": "article_type_deleted",
                "articleTypeId": "999900000002020",
                "departmentId": "999"
              }
            }
          ]
        }
      },
      "InstallationNameAdded": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440003",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T10:45:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1003",
              "eventTimestamp": "2026-02-11T10:45:00.123Z",
              "payload": {
                "eventType": "installation_name_added",
                "id": 2025,
                "name": "auth",
                "isRemote": true
              }
            }
          ]
        }
      },
      "InstallationNameUpdated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440004",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T10:50:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1004",
              "eventTimestamp": "2026-02-11T10:50:00.123Z",
              "payload": {
                "eventType": "installation_name_updated",
                "id": 2025,
                "name": "auth",
                "isRemote": true
              }
            }
          ]
        }
      },
      "ArticleAvailabilityDateReached": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440005",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T10:55:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1005",
              "eventTimestamp": "2026-02-11T10:55:00.123Z",
              "payload": {
                "eventType": "article_availability_date_reached",
                "articleId": "DEV1-21670",
                "departmentId": "999",
                "portalIds": [
                  "DEV1-1009",
                  "PZ-1001"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "parentFolderId": "999900000001005",
                "reachedDate": "2026-01-19T14:15:52.880Z",
                "versionId": "DEV1-5001",
                "articleEditionIds": [
                  "DEV1-7001",
                  "DEV1-7002"
                ]
              }
            }
          ]
        }
      },
      "ArticleExpirationDateReached": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440006",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:00:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1006",
              "eventTimestamp": "2026-02-11T11:00:00.123Z",
              "payload": {
                "eventType": "article_expiration_date_reached",
                "articleId": "DEV1-21670",
                "departmentId": "999",
                "portalIds": [
                  "DEV1-1009",
                  "PZ-1001"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "parentFolderId": "999900000001006",
                "reachedDate": "2026-01-19T14:15:52.880Z",
                "versionId": "DEV1-5001",
                "articleEditionIds": [
                  "DEV1-7001",
                  "DEV1-7002"
                ]
              }
            }
          ]
        }
      },
      "ArticleCreated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440007",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:05:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1007",
              "eventTimestamp": "2026-02-11T11:05:00.123Z",
              "payload": {
                "eventType": "article_created",
                "articleId": "auth-130556",
                "departmentId": "999",
                "portalIds": [
                  "PZ-1000",
                  "auth-1064"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "parentFolderId": "999900000001007",
                "changes": {
                  "change": [
                    {
                      "changeType": "update",
                      "attribute": "content"
                    },
                    {
                      "changeType": "association",
                      "attribute": "topic",
                      "values": [
                        "auth-5714"
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      "ArticlePublished": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440008",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:10:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1008",
              "eventTimestamp": "2026-02-11T11:10:00.123Z",
              "payload": {
                "eventType": "article_published",
                "articleId": "auth-130556",
                "departmentId": "999",
                "portalIds": [
                  "PZ-1000",
                  "auth-1064"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "parentFolderId": "999900000001008",
                "availabilityDate": "2026-01-19T14:00:00.000Z",
                "expirationDate": "2026-02-19T14:00:00.000Z",
                "changes": {
                  "change": [
                    {
                      "changeType": "update",
                      "attribute": "content"
                    },
                    {
                      "changeType": "association",
                      "attribute": "topic",
                      "values": [
                        "auth-5714"
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      "ArticleMoved": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440009",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:15:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1009",
              "eventTimestamp": "2026-02-11T11:15:00.123Z",
              "payload": {
                "eventType": "article_moved",
                "articleId": "auth-130556",
                "departmentId": "999",
                "portalIds": [
                  "PZ-1000",
                  "auth-1064"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "sourceParentFolderId": "999900000001009",
                "destinationParentFolderId": "999900000001010",
                "sourceParentTopicId": "ERTG-1007",
                "destinationParentTopicId": "ERTG-1008"
              }
            }
          ]
        }
      },
      "ArticleDeleted": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440010",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:20:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1010",
              "eventTimestamp": "2026-02-11T11:20:00.123Z",
              "payload": {
                "eventType": "article_deleted",
                "articleId": "auth-130552",
                "departmentId": "999",
                "portalIds": [
                  "PZ-1000",
                  "auth-1050"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "parentFolderId": "999900000001010"
              }
            }
          ]
        }
      },
      "ArticleStageUpdated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440011",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:25:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1011",
              "eventTimestamp": "2026-02-11T11:25:00.123Z",
              "payload": {
                "eventType": "article_stage_updated",
                "articleId": "auth-130556",
                "departmentId": "999",
                "portalIds": [
                  "PZ-1000",
                  "auth-1064"
                ],
                "languageCodes": [
                  "en-US"
                ],
                "parentFolderId": "999900000001011",
                "previousStage": "authoring",
                "currentStage": "staging",
                "changes": {
                  "change": [
                    {
                      "changeType": "update",
                      "attribute": "content"
                    },
                    {
                      "changeType": "association",
                      "attribute": "topic",
                      "values": [
                        "auth-5714"
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      "ArticleCopied": {
        "value": {
          "metadata": {
            "notificationId": "d741ff6c-17a2-473b-b0c5-306a6d617717",
            "payloadVersion": "v20",
            "timestamp": "2026-03-06T19:01:25.875Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1135",
              "eventTimestamp": "2026-03-06T19:01:18.250Z",
              "payload": {
                "eventType": "article_copied",
                "articleId": "auth-22128",
                "departmentId": "999",
                "portalIds": [
                  "auth-1009",
                  "PZ-1001"
                ],
                "languageCodes": [
                  "en-US",
                  "fr-FR",
                  "en-GB"
                ],
                "sourceParentTopicId": "auth-3529",
                "destinationParentTopicId": "auth-3528",
                "sourceParentFolderId": "999900000001135",
                "destinationParentFolderId": "999900000001136"
              }
            }
          ]
        }
      },
      "ArticleCheckedOut": {
        "value": {
          "metadata": {
            "notificationId": "57826919-0743-4d7a-bb38-ffb5d35a35dd",
            "payloadVersion": "v20",
            "timestamp": "2026-03-06T18:53:54.227Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1130",
              "eventTimestamp": "2026-03-06T18:53:40.180Z",
              "payload": {
                "eventType": "article_checked_out",
                "articleId": "auth-22127",
                "departmentId": "999",
                "portalIds": [
                  "auth-1011",
                  "PZ-1001"
                ],
                "languageCodes": [
                  "en-US",
                  "fr-FR"
                ],
                "parentFolderId": "999900000001130"
              }
            }
          ]
        }
      },
      "ArticleCheckedIn": {
        "value": {
          "metadata": {
            "notificationId": "dc6d4a71-859d-4874-a5d1-5bcf2eafeadb",
            "payloadVersion": "v20",
            "timestamp": "2026-03-06T19:10:57.077Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1139",
              "eventTimestamp": "2026-03-06T19:10:48.906Z",
              "payload": {
                "eventType": "article_checked_in",
                "articleId": "auth-22126",
                "departmentId": "999",
                "portalIds": [
                  "auth-1011",
                  "PZ-1001"
                ],
                "languageCodes": [
                  "en-US",
                  "fr-FR"
                ],
                "parentFolderId": "999900000001139",
                "changes": {
                  "change": [
                    {
                      "changeType": "update",
                      "attribute": "content"
                    },
                    {
                      "changeType": "association",
                      "attribute": "topic",
                      "values": [
                        "auth-3531"
                      ]
                    }
                  ]
                },
                "availabilityDate": "2026-03-06T19:12:00.000Z",
                "expirationDate": "2026-03-06T19:16:29.000Z"
              }
            }
          ]
        }
      },
      "ArticleModified": {
        "value": {
          "metadata": {
            "notificationId": "dc6d4a71-859d-4874-a5d1-5bcf2eafeadc",
            "payloadVersion": "v20",
            "timestamp": "2026-03-06T19:10:57.077Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1140",
              "eventTimestamp": "2026-03-06T19:10:48.906Z",
              "payload": {
                "eventType": "article_modified",
                "articleId": "auth-22126",
                "departmentId": "999",
                "portalIds": [
                  "auth-1011",
                  "PZ-1001"
                ],
                "languageCodes": [
                  "en-US",
                  "ja-JA"
                ],
                "parentFolderId": "999900000001140",
                "changes": {
                  "change": [
                    {
                      "changeType": "update",
                      "attribute": "content"
                    }
                  ]
                },
                "availabilityDate": "2026-03-06T19:12:00.000Z",
                "expirationDate": "2026-03-06T19:16:29.000Z"
              }
            }
          ]
        }
      },
      "TopicCreated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440012",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:30:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1012",
              "eventTimestamp": "2026-02-11T11:30:00.123Z",
              "payload": {
                "eventType": "topic_created",
                "topicId": "auth-5711",
                "departmentId": "999",
                "parentTopicId": "-1",
                "portalIds": [
                  "PZ-1000"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ]
              }
            }
          ]
        }
      },
      "TopicUpdated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440013",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:35:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1013",
              "eventTimestamp": "2026-02-11T11:35:00.123Z",
              "payload": {
                "eventType": "topic_updated",
                "topicId": "auth-5712",
                "departmentId": "999",
                "parentTopicId": "-1",
                "portalIds": [
                  "auth-1050"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "changes": {
                  "change": [
                    {
                      "changeType": "association",
                      "attribute": "article",
                      "values": [
                        "auth-130547"
                      ]
                    },
                    {
                      "changeType": "dissociation",
                      "attribute": "article",
                      "values": [
                        "auth-130541"
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      },
      "TopicMoved": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440014",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:40:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1014",
              "eventTimestamp": "2026-02-11T11:40:00.123Z",
              "payload": {
                "eventType": "topic_moved",
                "topicId": "auth-5718",
                "departmentId": "999",
                "parentTopicId": "auth-5717",
                "portalIds": [
                  "auth-1050"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "sourceParentTopicId": "auth-5716"
              }
            }
          ]
        }
      },
      "TopicCopied": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440015",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:45:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1015",
              "eventTimestamp": "2026-02-11T11:45:00.123Z",
              "payload": {
                "eventType": "topic_copied",
                "topicId": "auth-5711",
                "departmentId": "999",
                "parentTopicId": "-1",
                "portalIds": [
                  "PZ-1000"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "sourceParentTopicId": "auth-5710"
              }
            }
          ]
        }
      },
      "TopicDeleted": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440016",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:50:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1016",
              "eventTimestamp": "2026-02-11T11:50:00.123Z",
              "payload": {
                "eventType": "topic_deleted",
                "topicId": "auth-5711",
                "departmentId": "999",
                "parentTopicId": "-1",
                "portalIds": [
                  "PZ-1000"
                ],
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ]
              }
            }
          ]
        }
      },
      "PortalUpdated": {
        "value": {
          "metadata": {
            "notificationId": "550e8400-e29b-41d4-a716-446655440017",
            "payloadVersion": "v20",
            "timestamp": "2026-02-11T11:55:00.123Z",
            "tenantId": "tenant-123"
          },
          "messages": [
            {
              "id": "1017",
              "eventTimestamp": "2026-02-11T11:55:00.123Z",
              "payload": {
                "eventType": "portal_updated",
                "portalId": "auth-1050",
                "departmentId": "999",
                "languageCodes": [
                  "en-US",
                  "es-ES",
                  "tr-TR",
                  "fr-FR",
                  "en-GB"
                ],
                "changes": {
                  "change": [
                    {
                      "changeType": "association",
                      "attribute": "topic",
                      "values": [
                        "auth-5712"
                      ]
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    }
  }
}