{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://jambonz.org/schema/callbacks/message",
  "title": "Message ActionHook Payload",
  "description": "Payload sent to the message verb's actionHook with the delivery status of an outbound SMS.",
  "allOf": [
    { "$ref": "base" }
  ],
  "type": "object",
  "properties": {
    "message_sid": {
      "type": "string",
      "description": "Unique identifier for the message."
    },
    "message_status": {
      "type": "string",
      "enum": ["success", "failure", "no carriers", "smpp configuration error", "system error"],
      "description": "Delivery status of the message."
    },
    "carrier": {
      "type": "string",
      "description": "Name of the carrier used to send the message. Present on success or carrier-level failure."
    },
    "carrier_message_id": {
      "type": "string",
      "description": "Message ID returned by the carrier. Present on success or carrier-level failure."
    },
    "message_failure_reason": {
      "type": "string",
      "description": "Reason for failure. Present when message_status is 'failure' or 'system error'."
    }
  },
  "required": ["message_sid", "message_status"],
  "additionalProperties": true
}
