vapi_client/models/
transfer_destination_number.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
18pub struct TransferDestinationNumber {
19    #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
20    pub message: Option<models::TransferDestinationAssistantMessage>,
21    #[serde(rename = "type")]
22    pub r#type: Type,
23    /// This is the flag to toggle the E164 check for the `number` field. This is an advanced property which should be used if you know your use case requires it.  Use cases: - `false`: To allow non-E164 numbers like `+001234567890`, `1234`, or `abc`. This is useful for dialing out to non-E164 numbers on your SIP trunks. - `true` (default): To allow only E164 numbers like `+14155551234`. This is standard for PSTN calls.  If `false`, the `number` is still required to only contain alphanumeric characters (regex: `/^\\+?[a-zA-Z0-9]+$/`).  @default true (E164 check is enabled)
24    #[serde(
25        rename = "numberE164CheckEnabled",
26        skip_serializing_if = "Option::is_none"
27    )]
28    pub number_e164_check_enabled: Option<bool>,
29    /// This is the phone number to transfer the call to.
30    #[serde(rename = "number")]
31    pub number: String,
32    /// This is the extension to dial after transferring the call to the `number`.
33    #[serde(rename = "extension", skip_serializing_if = "Option::is_none")]
34    pub extension: Option<String>,
35    /// This is the caller ID to use when transferring the call to the `number`.  Usage: - If not provided, the caller ID will be the number the call is coming from. Example, +14151111111 calls in to and the assistant transfers out to +16470000000. +16470000000 will see +14151111111 as the caller. - To change this behavior, provide a `callerId`. - Set to '{{customer.number}}' to always use the customer's number as the caller ID. - Set to '{{phoneNumber.number}}' to always use the phone number of the assistant as the caller ID. - Set to any E164 number to always use that number as the caller ID. This needs to be a number that is owned or verified by your Transport provider like Twilio.  For Twilio, you can read up more here: https://www.twilio.com/docs/voice/twiml/dial#callerid
36    #[serde(rename = "callerId", skip_serializing_if = "Option::is_none")]
37    pub caller_id: Option<String>,
38    /// This configures how transfer is executed and the experience of the destination party receiving the call. Defaults to `blind-transfer`.  @default `transferPlan.mode='blind-transfer'`
39    #[serde(rename = "transferPlan", skip_serializing_if = "Option::is_none")]
40    pub transfer_plan: Option<models::TransferPlan>,
41    /// This is the description of the destination, used by the AI to choose when and how to transfer the call.
42    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
43    pub description: Option<String>,
44}
45
46impl TransferDestinationNumber {
47    pub fn new(r#type: Type, number: String) -> TransferDestinationNumber {
48        TransferDestinationNumber {
49            message: None,
50            r#type,
51            number_e164_check_enabled: None,
52            number,
53            extension: None,
54            caller_id: None,
55            transfer_plan: None,
56            description: None,
57        }
58    }
59}
60///
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
62pub enum Type {
63    #[serde(rename = "number")]
64    Number,
65}
66
67impl Default for Type {
68    fn default() -> Type {
69        Self::Number
70    }
71}