voip-ms 0.3.2

Async client for the VoIP.ms REST API
Documentation
{
  "version": 1,
  "comment": "Hand-curated corrections to tools/api-responses.json. See xtask/src/overrides.rs for the schema. Edit when the extractor gets a scalar type wrong or for methods whose Output blocks the parser can't handle. The `enums` + `field_types` sections declare low-cardinality enum types substituted for `Option<String>` in both *Params and *Response structs (see xtask/src/field_overrides.rs). Boolean flags (1/0 and yes/no) are typed via the built-in tables in field_overrides.rs, not here. `field_type_skip` suppresses a name-based override for one struct where the name is reused for an unrelated value; `field_type_override` assigns one struct's field a specific enum (used for `type`, which means different things per method).",
  "enums": {
    "DtmfMode": {
      "doc": "DTMF transport mode for SIP sub-accounts.",
      "variants": [
        { "name": "Auto",    "wire": "auto" },
        { "name": "Rfc2833", "wire": "rfc2833" },
        { "name": "Inband",  "wire": "inband" },
        { "name": "Info",    "wire": "info" }
      ]
    },
    "Nat": {
      "doc": "Asterisk NAT handling mode.",
      "variants": [
        { "name": "Yes",   "wire": "yes" },
        { "name": "No",    "wire": "no" },
        { "name": "Route", "wire": "route" },
        { "name": "Never", "wire": "never" }
      ]
    },
    "EmailAttachmentFormat": {
      "doc": "Voicemail email attachment format.",
      "variants": [
        { "name": "Wav49", "wire": "wav49", "doc": "GSM-compressed WAV." },
        { "name": "Wav",   "wire": "wav" },
        { "name": "Mp3",   "wire": "mp3" },
        { "name": "No",    "wire": "no",    "doc": "Do not attach audio." }
      ]
    },
    "TranscriptionFormat": {
      "doc": "Voicemail transcription output format.",
      "variants": [
        { "name": "Text", "wire": "text" },
        { "name": "Html", "wire": "html" }
      ]
    },
    "PlayInstructions": {
      "doc": "Voicemail playback instruction mode.",
      "variants": [
        { "name": "SkipUnread", "wire": "su", "doc": "Skip instructions on unread messages." },
        { "name": "Unread",     "wire": "u",  "doc": "Read full instructions for unread messages." },
        { "name": "DontSay",    "wire": "du", "doc": "Don't say instructions." }
      ]
    },
    "RingStrategy": {
      "doc": "Queue ring strategy. Mirrors Asterisk's queue strategy options.",
      "variants": [
        { "name": "RingAll",      "wire": "ringall" },
        { "name": "LeastRecent",  "wire": "leastrecent" },
        { "name": "FewestCalls",  "wire": "fewestcalls" },
        { "name": "Random",       "wire": "random" },
        { "name": "RrMemory",     "wire": "rrmemory" },
        { "name": "Linear",       "wire": "linear" },
        { "name": "WRandom",      "wire": "wrandom" }
      ]
    },
    "RingGroupOrder": {
      "doc": "Order in which ring-group members are attempted.",
      "variants": [
        { "name": "Follow", "wire": "follow", "doc": "Try members in declared order." },
        { "name": "Random", "wire": "random" }
      ]
    },
    "VoicemailFolder": {
      "doc": "Voicemail message folder.",
      "variants": [
        { "name": "Inbox",   "wire": "INBOX" },
        { "name": "Old",     "wire": "Old" },
        { "name": "Urgent",  "wire": "Urgent" },
        { "name": "Family",  "wire": "Family" },
        { "name": "Friends", "wire": "Friends" },
        { "name": "Work",    "wire": "Work" }
      ]
    },
    "QueueEmptyBehavior": {
      "doc": "Whether callers may join, or are kept in, a queue with no available members. Used by both `join_when_empty` and `leave_when_empty`.",
      "variants": [
        { "name": "Yes",    "wire": "yes",    "doc": "Callers may join / remain with no members." },
        { "name": "No",     "wire": "no",     "doc": "Callers may not join / are sent to failover." },
        { "name": "Strict", "wire": "strict", "doc": "Like `No`, but also applies when members are present yet all unavailable." }
      ]
    },
    "EstimatedHoldTimeAnnounce": {
      "doc": "When to include estimated hold time in queue position announcements.",
      "variants": [
        { "name": "Yes",  "wire": "yes" },
        { "name": "No",   "wire": "no" },
        { "name": "Once", "wire": "once", "doc": "Announce only the first time." }
      ]
    },
    "CallPickupBehavior": {
      "doc": "Sub-account call-pickup permissions.",
      "variants": [
        { "name": "PickUpAndBePickedUp", "wire": "1", "doc": "Can pick up and be picked up." },
        { "name": "PickUpOnly",          "wire": "2", "doc": "Can pick up; cannot be picked up." },
        { "name": "BePickedUpOnly",      "wire": "3", "doc": "Can be picked up; cannot pick up." },
        { "name": "Disabled",            "wire": "4", "doc": "Cannot pick up nor be picked up." }
      ]
    },
    "RecordingSort": {
      "doc": "Sort order for selected recordings.",
      "variants": [
        { "name": "Alpha",  "wire": "alpha" },
        { "name": "Random", "wire": "random" }
      ]
    },
    "SearchType": {
      "doc": "How a DID / toll-free search string is matched.",
      "variants": [
        { "name": "Starts",   "wire": "starts" },
        { "name": "Contains", "wire": "contains" },
        { "name": "Ends",     "wire": "ends" }
      ]
    },
    "VanityType": {
      "doc": "Toll-free prefix to search for a vanity number.",
      "variants": [
        { "name": "Any", "wire": "8**", "doc": "Any toll-free prefix." },
        { "name": "N800", "wire": "800" },
        { "name": "N833", "wire": "833" },
        { "name": "N844", "wire": "844" },
        { "name": "N855", "wire": "855" },
        { "name": "N866", "wire": "866" },
        { "name": "N877", "wire": "877" },
        { "name": "N888", "wire": "888" }
      ]
    },
    "MessageType": {
      "doc": "Direction of an SMS / MMS message: a filter on requests, the direction on results.",
      "variants": [
        { "name": "Received", "wire": "1" },
        { "name": "Sent",     "wire": "0" }
      ]
    },
    "DialingMode": {
      "doc": "Outgoing-call dialing mode for a sub-account.",
      "variants": [
        { "name": "MainAccount", "wire": "0", "doc": "Use the main account setting." },
        { "name": "E164",        "wire": "1" },
        { "name": "Nanpa",       "wire": "2" }
      ]
    },
    "TollFreeCarrier": {
      "doc": "Carrier for outgoing calls to toll-free numbers.",
      "variants": [
        { "name": "MainAccount", "wire": "-1", "doc": "Use the main account setting." },
        { "name": "Default",     "wire": "0",  "doc": "Default server setting." },
        { "name": "Us",          "wire": "1" },
        { "name": "Canadian",    "wire": "2" }
      ]
    },
    "DidBillingType": {
      "doc": "DID billing model.",
      "variants": [
        { "name": "PerMinute", "wire": "1" },
        { "name": "Flat",      "wire": "2" }
      ]
    }
  },
  "field_types": {
    "dtmf_mode":               "DtmfMode",
    "nat":                     "Nat",
    "email_attachment_format": "EmailAttachmentFormat",
    "transcription_format":    "TranscriptionFormat",
    "play_instructions":       "PlayInstructions",
    "ring_strategy":           "RingStrategy",
    "order":                   "RingGroupOrder",
    "folder":                  "VoicemailFolder",
    "join_when_empty":         "QueueEmptyBehavior",
    "leave_when_empty":        "QueueEmptyBehavior",
    "if_announce_position_enabled_report_estimated_hold_time": "EstimatedHoldTimeAnnounce",
    "call_pickup_behavior":    "CallPickupBehavior",
    "sort":                    "RecordingSort",
    "dialing_mode":            "DialingMode",
    "tfcarrier":               "TollFreeCarrier",
    "billing_type":            "DidBillingType"
  },
  "field_type_skip": [
    "GetVoicemailsResponseVoicemail.urgent",
    "GetFAXMessagesParams.folder",
    "GetFAXMessagesResponseFAX.folder"
  ],
  "field_type_override": {
    "SearchDIDsCANParams.type":      "SearchType",
    "SearchDIDsUSAParams.type":      "SearchType",
    "SearchTollFreeCANUSParams.type": "SearchType",
    "SearchTollFreeUSAParams.type":  "SearchType",
    "SearchVanityParams.type":       "VanityType",
    "GetSMSParams.type":             "MessageType",
    "GetMMSParams.type":             "MessageType",
    "GetResellerSMSParams.type":     "MessageType",
    "GetResellerMMSParams.type":     "MessageType",
    "GetSMSResponseSMS.type":        "MessageType",
    "GetMMSResponseSMS.type":        "MessageType",
    "GetResellerSMSResponseSMS.type": "MessageType",
    "GetResellerMMSResponseSMS.type": "MessageType"
  },
  "empty_statuses": [
    "no_account",
    "no_attachments",
    "no_callback",
    "no_callhunting",
    "no_callparking",
    "no_cdr",
    "no_client",
    "no_conference",
    "no_did",
    "no_disa",
    "no_filter",
    "no_forwarding",
    "no_ivr",
    "no_mailbox",
    "no_member",
    "no_message",
    "no_messages",
    "no_numbers",
    "no_package",
    "no_phonebook",
    "no_queue",
    "no_rate",
    "no_recording",
    "no_ringgroup",
    "no_sipuri",
    "no_sms",
    "no_timecondition"
  ],
  "methods": {
    "getDIDsInfo": {
      "patches": [
        { "path": "dids[].did",            "type": "string"  },
        { "path": "dids[].cnam",           "type": "bool_01" },
        { "path": "dids[].sms_available",  "type": "bool_01" },
        { "path": "dids[].sms_enabled",    "type": "bool_01" }
      ]
    },
    "setSIPURI": {
      "shape": {
        "kind": "object",
        "fields": [
          { "name": "status", "shape": { "kind": "scalar", "type": "string", "sample": "success" } }
        ]
      }
    },
    "getLNPDetails": {
      "shape": {
        "kind": "object",
        "fields": [
          { "name": "status",                  "shape": { "kind": "scalar", "type": "string",  "sample": "success" } },
          { "name": "id",                      "shape": { "kind": "scalar", "type": "integer", "sample": "0" } },
          { "name": "numbers",                 "shape": { "kind": "list", "element": { "kind": "object", "fields": [
            { "name": "did",        "shape": { "kind": "scalar", "type": "string", "sample": "5551234567" } },
            { "name": "rateCenter", "shape": { "kind": "scalar", "type": "string", "sample": "COVINA" } },
            { "name": "state",      "shape": { "kind": "scalar", "type": "string", "sample": "CA" } }
          ] } } },
          { "name": "isPartial",               "shape": { "kind": "scalar", "type": "bool_01", "sample": "0" } },
          { "name": "locationType",            "shape": { "kind": "scalar", "type": "integer", "sample": "0" } },
          { "name": "isMobile",                "shape": { "kind": "scalar", "type": "bool_01", "sample": "0" } },
          { "name": "mobileInfo",              "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "tfType",                  "shape": { "kind": "scalar", "type": "integer", "sample": "0" } },
          { "name": "portType",                "shape": { "kind": "scalar", "type": "integer", "sample": "1" } },
          { "name": "btn",                     "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "services",                "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "statementName",           "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "firstName",               "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "lastName",                "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "address1",                "shape": { "kind": "scalar", "type": "string",  "sample": "Covina 12 St." } },
          { "name": "address2",                "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "city",                    "shape": { "kind": "scalar", "type": "string",  "sample": "CA" } },
          { "name": "zip",                     "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "state",                   "shape": { "kind": "scalar", "type": "string",  "sample": "CA" } },
          { "name": "country",                 "shape": { "kind": "scalar", "type": "string",  "sample": "US" } },
          { "name": "providerName",            "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "providerAccount",         "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "customer_notes",          "shape": { "kind": "scalar", "type": "string",  "sample": "" } },
          { "name": "notes",                   "shape": { "kind": "list", "element": { "kind": "object", "fields": [
            { "name": "note", "shape": { "kind": "scalar", "type": "string",   "sample": "" } },
            { "name": "date", "shape": { "kind": "scalar", "type": "date",     "sample": "2019-02-25" } },
            { "name": "time", "shape": { "kind": "scalar", "type": "string",   "sample": "15:05:11" } }
          ] } } },
          { "name": "post_status",             "shape": { "kind": "scalar", "type": "string",   "sample": "pending_approval" } },
          { "name": "post_status_description", "shape": { "kind": "scalar", "type": "string",   "sample": "Pending Approval" } },
          { "name": "date",                    "shape": { "kind": "scalar", "type": "datetime", "sample": "2019-02-25 15:05:11" } },
          { "name": "focDate",                 "shape": { "kind": "scalar", "type": "string",   "sample": "" } },
          { "name": "attachments",             "shape": { "kind": "list", "element": { "kind": "object", "fields": [
            { "name": "id",          "shape": { "kind": "scalar", "type": "string",  "sample": "0000" } },
            { "name": "description", "shape": { "kind": "scalar", "type": "string",  "sample": "Signed Invoice" } },
            { "name": "type",        "shape": { "kind": "scalar", "type": "string",  "sample": "pdf" } },
            { "name": "bytes",       "shape": { "kind": "scalar", "type": "integer", "sample": "151600" } }
          ] } } }
        ]
      }
    }
  }
}