{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/GetCallQueueEssentialsCallPolicyObject",
  "title": "GetCallQueueEssentialsCallPolicyObject",
  "type": "object",
  "required": [
    "policy",
    "callBounce",
    "distinctiveRing"
  ],
  "properties": {
    "policy": {
      "$ref": "#/components/schemas/HuntPolicyEssentialSelection",
      "description": "Call routing policy to use to dispatch calls to agents."
    },
    "callBounce": {
      "type": "object",
      "required": [
        "callBounceEnabled",
        "callBounceMaxRings",
        "agentUnavailableEnabled",
        "alertAgentEnabled",
        "alertAgentMaxSeconds",
        "callBounceOnHoldEnabled",
        "callBounceOnHoldMaxSeconds"
      ],
      "properties": {
        "callBounceEnabled": {
          "type": "boolean",
          "example": true,
          "description": "If enabled, bounce calls after the set number of rings."
        },
        "callBounceMaxRings": {
          "type": "number",
          "example": 5,
          "description": "Number of rings after which to bounce call, if call bounce is enabled."
        },
        "agentUnavailableEnabled": {
          "type": "boolean",
          "example": true,
          "description": "Bounce if agent becomes unavailable."
        },
        "alertAgentEnabled": {
          "type": "boolean",
          "example": true,
          "description": "Alert agent if call on hold more than alertAgentMaxSeconds."
        },
        "alertAgentMaxSeconds": {
          "type": "number",
          "example": 20,
          "description": "Number of second after which to alert agent if alertAgentEnabled."
        },
        "callBounceOnHoldEnabled": {
          "type": "boolean",
          "example": true,
          "description": "Bounce if call on hold more than callBounceMaxSeconds."
        },
        "callBounceOnHoldMaxSeconds": {
          "type": "number",
          "example": 20,
          "description": "Number of second after which to bounce if callBounceEnabled."
        }
      },
      "description": "Settings for when the call into the call queue is not answered."
    },
    "distinctiveRing": {
      "type": "object",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether or not the distinctive ring is enabled."
        },
        "ringPattern": {
          "$ref": "#/components/schemas/RingPatternObject",
          "description": "Ring pattern for when this callqueue is called. Only available when `distinctiveRing` is enabled for the call queue."
        }
      },
      "description": "Whether or not the call queue has the distinctive ring option enabled."
    }
  }
}