{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/webex/json-schema/webex-get-contact-lists-response-schema.json",
  "title": "GetContactListsResponse",
  "description": "Response containing contact lists within a campaign, including contact counts and dialer status breakdown for each list.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/webex-contact-list-management-api-openapi.yml#/components/schemas/GetContactListsResponse",
  "type": "object",
  "required": [
    "outcome",
    "statusCode",
    "contactLists"
  ],
  "properties": {
    "outcome": {
      "type": "string",
      "enum": [
        "Success",
        "Failure"
      ],
      "description": "Outcome of the operation"
    },
    "statusCode": {
      "type": "integer",
      "description": "0 for success, non-zero for failure or validation failure"
    },
    "contactLists": {
      "type": "array",
      "description": "List of contact lists",
      "items": {
        "$ref": "#/$defs/ContactListInfo"
      }
    }
  },
  "$defs": {
    "ContactListInfo": {
      "type": "object",
      "description": "Contact list details and contact counts by processing and dialer status. Count fields are `0` when counts are not yet available for a newly created list.",
      "properties": {
        "contactListId": {
          "type": "string",
          "description": "Contact list ID within the campaign."
        },
        "contactListStatus": {
          "type": "string",
          "description": "Contact list status (for example: Active, Expired, UploadFailed)."
        },
        "contactListSource": {
          "type": "string",
          "description": "How the contact list was created (for example, API, SFTP, ManualFile)."
        },
        "contactListSourceFileName": {
          "type": "string",
          "description": "Source file name for the contact list upload."
        },
        "contactListCountsTimestampUtc": {
          "type": "string",
          "format": "date-time",
          "description": "UTC timestamp when the counts were last updated."
        },
        "processedContactsCount": {
          "type": "integer",
          "description": "Total contacts processed for this contact list."
        },
        "invalidContactsCount": {
          "type": "integer",
          "description": "Number of invalid contacts."
        },
        "validContactsCount": {
          "type": "integer",
          "description": "Derived: `processedContactsCount` − `invalidContactsCount`."
        },
        "eligibleContactsCount": {
          "type": "integer",
          "description": "Derived: `processedContactsCount` − `invalidContactsCount` − DNC-suppressed contacts."
        },
        "freshContactsCount": {
          "type": "integer",
          "description": "Number of contacts in Fresh state."
        },
        "openContactsCount": {
          "type": "integer",
          "description": "Number of contacts in Open state."
        },
        "closedContactsCount": {
          "type": "integer",
          "description": "Number of contacts in Closed state."
        },
        "errorsContactsCount": {
          "type": "integer",
          "description": "Number of contacts in Error state."
        },
        "readyForDialerContactsCount": {
          "type": "integer",
          "description": "Number of contacts ready to be sent to the dialer."
        },
        "sentToDialerAwaitingOutcomeContactsCount": {
          "type": "integer",
          "description": "Number of contacts sent to the dialer and awaiting an outcome."
        },
        "expiredContactsCount": {
          "type": "integer",
          "description": "Number of expired contacts."
        },
        "blockedContactsCount": {
          "type": "integer",
          "description": "Number of blocked contacts."
        },
        "closedTransferredToChainedCampaignContactsCount": {
          "type": "integer",
          "description": "Number of contacts closed and transferred to a chained campaign."
        },
        "dateOfCreation": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time the contact list was created, in the campaign time zone."
        },
        "dateOfActivation": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time the contact list was activated."
        },
        "dateOfExpiry": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time the contact list expires."
        }
      }
    }
  }
}