vapi_client/models/
sip_trunk_gateway.rs1use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
18pub struct SipTrunkGateway {
19    #[serde(rename = "ip")]
21    pub ip: String,
22    #[serde(rename = "port", skip_serializing_if = "Option::is_none")]
24    pub port: Option<f64>,
25    #[serde(rename = "netmask", skip_serializing_if = "Option::is_none")]
27    pub netmask: Option<f64>,
28    #[serde(rename = "inboundEnabled", skip_serializing_if = "Option::is_none")]
30    pub inbound_enabled: Option<bool>,
31    #[serde(rename = "outboundEnabled", skip_serializing_if = "Option::is_none")]
33    pub outbound_enabled: Option<bool>,
34    #[serde(rename = "outboundProtocol", skip_serializing_if = "Option::is_none")]
36    pub outbound_protocol: Option<OutboundProtocol>,
37    #[serde(rename = "optionsPingEnabled", skip_serializing_if = "Option::is_none")]
39    pub options_ping_enabled: Option<bool>,
40}
41
42impl SipTrunkGateway {
43    pub fn new(ip: String) -> SipTrunkGateway {
44        SipTrunkGateway {
45            ip,
46            port: None,
47            netmask: None,
48            inbound_enabled: None,
49            outbound_enabled: None,
50            outbound_protocol: None,
51            options_ping_enabled: None,
52        }
53    }
54}
55#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
57pub enum OutboundProtocol {
58    #[serde(rename = "tls/srtp")]
59    TlsSlashSrtp,
60    #[serde(rename = "tcp")]
61    Tcp,
62    #[serde(rename = "tls")]
63    Tls,
64    #[serde(rename = "udp")]
65    Udp,
66}
67
68impl Default for OutboundProtocol {
69    fn default() -> OutboundProtocol {
70        Self::TlsSlashSrtp
71    }
72}