{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/CallRecordingInfo",
  "title": "CallRecordingInfo",
  "type": "object",
  "required": [
    "enabled",
    "record",
    "recordVoicemailEnabled",
    "notification",
    "repeat",
    "serviceProvider",
    "externalGroup",
    "externalIdentifier",
    "startStopAnnouncement"
  ],
  "properties": {
    "enabled": {
      "type": "boolean",
      "example": true,
      "description": "`true` if call recording is enabled."
    },
    "record": {
      "type": "string",
      "enum": [
        "Always",
        "Never",
        "Always with Pause/Resume",
        "On Demand with User Initiated Start"
      ],
      "description": "Call recording scenario.\n * `Always` - Incoming and outgoing calls will be recorded with no control to start, stop, pause, or resume.\n * `Never` - Calls will not be recorded.\n * `Always with Pause/Resume` - Calls are always recorded, but user can pause or resume the recording. Stop recording is not supported.\n * `On Demand with User Initiated Start` - Records only the portion of the call after the recording start (`*44`) has been entered. Pause, resume, and stop controls are supported.\n"
    },
    "recordVoicemailEnabled": {
      "type": "boolean",
      "description": "When `true`, voicemail messages are also recorded."
    },
    "notification": {
      "type": "object",
      "required": [
        "type",
        "enabled"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "None",
            "Beep",
            "Play Announcement"
          ],
          "description": "Type of pause/resume notification.\n * `None` - No notification sound played when call recording is paused or resumed.\n * `Beep` - A beep sound is played when call recording is paused or resumed.\n * `Play Announcement` - A verbal announcement is played when call recording is paused or resumed.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "`true` when the notification feature is in effect. `false` indicates notification is disabled."
        }
      },
      "description": "Pause/resume notification settings."
    },
    "repeat": {
      "type": "object",
      "required": [
        "interval",
        "enabled"
      ],
      "properties": {
        "interval": {
          "type": "number",
          "example": 15,
          "description": "Interval at which warning tone \"beep\" will be played. This interval is an integer from 10 to 1800 seconds"
        },
        "enabled": {
          "type": "boolean",
          "description": "`true` when ongoing call recording tone will be played at the designated interval. `false` indicates no warning tone will be played."
        }
      },
      "description": "Beep sound plays periodically."
    },
    "serviceProvider": {
      "type": "string",
      "example": "WSWYZ25455",
      "description": "Name of the service provider providing call recording service."
    },
    "externalGroup": {
      "type": "string",
      "example": "WSWYZ25455L31161",
      "description": "Group utilized by the service provider providing call recording service."
    },
    "externalIdentifier": {
      "type": "string",
      "example": "a34iidrh5o@64941297.int10.bcld.webex.com",
      "description": "Unique person identifier utilized by the service provider providing call recording service."
    },
    "startStopAnnouncement": {
      "type": "object",
      "required": [
        "internalCallsEnabled",
        "pstnCallsEnabled"
      ],
      "properties": {
        "internalCallsEnabled": {
          "type": "boolean",
          "description": "When `true`, an announcement is played when call recording starts and an announcement is played when call recording ends for internal calls."
        },
        "pstnCallsEnabled": {
          "type": "boolean",
          "description": "When `true`, an announcement is played when call recording starts and an announcement is played when call recording ends for PSTN calls."
        }
      },
      "description": "Call Recording starts and stops announcement settings."
    }
  }
}