{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/simplevoip/json-schema/simplevoip-modify-moh-request-schema.json",
  "title": "ModifyMohRequest",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/simplevoip-openapi.json#/components/schemas/ModifyMohRequest",
  "type": "object",
  "required": [
    "music",
    "mediaType",
    "sites"
  ],
  "properties": {
    "sites": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Site numbers to apply the change to. Site numbers you don't own are silently skipped."
    },
    "music": {
      "type": "string",
      "description": "An empty string uses the system default hold music. Otherwise, a media object ID (used with `mediaObject`/`parentMedia`) or a ShoutCast stream URL host/path (used with `shoutcast`)."
    },
    "mediaType": {
      "type": "string",
      "enum": [
        "mediaObject",
        "parentMedia",
        "shoutcast"
      ],
      "description": "`mediaObject` (media lives on the target account itself) covers the common case. `parentMedia` looks up `music` on the account named in `parent` instead. `shoutcast` treats `music` as a ShoutCast stream address."
    },
    "parent": {
      "type": "string",
      "description": "The parent account ID `music` lives on. Only used, and only meaningful, when `mediaType` is `parentMedia`."
    }
  }
}