{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/PlaceSelectiveAcceptCallCriteriaPost",
  "title": "PlaceSelectiveAcceptCallCriteriaPost",
  "type": "object",
  "required": [
    "scheduleName",
    "scheduleType",
    "scheduleLevel",
    "callsFrom",
    "acceptEnabled"
  ],
  "properties": {
    "scheduleName": {
      "type": "string",
      "example": "Business Vacation",
      "description": "Name of the location's schedule which determines when the selective accept is in effect."
    },
    "scheduleType": {
      "$ref": "#/components/schemas/ScheduleTypeSelection",
      "description": "The Schedule type whether `businessHours` or `holidays`."
    },
    "scheduleLevel": {
      "$ref": "#/components/schemas/PlaceScheduleLevel",
      "description": "The Schedule level i.e, Group."
    },
    "callsFrom": {
      "$ref": "#/components/schemas/SelectiveAcceptCallCallsFromType",
      "description": "Indicates whether to apply the selective accept criteria for calls from Any Phone Number, Select Phone Numbers or Forwarded ones."
    },
    "anonymousCallersEnabled": {
      "type": "boolean",
      "example": true,
      "description": "When `true`, enables calls from anonymous callers. Value for this attribute is required if `callsFrom` is `SELECT_PHONE_NUMBERS`."
    },
    "unavailableCallersEnabled": {
      "type": "boolean",
      "example": true,
      "description": "When `true`, enables calls even if callers are unavailable. Value for this attribute is required if `callsFrom` is `SELECT_PHONE_NUMBERS`."
    },
    "phoneNumbers": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "+19064441748,+19186663950"
      },
      "description": "the list of phone numbers that will checked against incoming calls for a match. Value for this attribute is required if `callsFrom` is `SELECT_PHONE_NUMBERS`."
    },
    "acceptEnabled": {
      "type": "boolean",
      "example": true,
      "description": "Choose to accept (if `acceptEnabled` = `true`) or not to accept (if `acceptEnabled` = `false`) the calls that fit within these parameters."
    }
  }
}