use serde::{Deserialize, Serialize};
use crate::types::realtime::{RealtimeSessionConfiguration, Session};
#[derive(Debug, Serialize, Clone)]
pub struct RealtimeCallCreateRequest {
pub sdp: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub session: Option<RealtimeSessionConfiguration>,
}
#[derive(Debug, Clone)]
pub struct RealtimeCallCreateResponse {
pub sdp: String,
pub location: Option<String>,
}
#[derive(Debug, Serialize, Clone)]
pub struct RealtimeCallAcceptRequest {
pub session: RealtimeSessionConfiguration,
}
#[derive(Debug, Serialize, Clone)]
pub struct RealtimeCallReferRequest {
pub target_uri: String,
}
#[derive(Debug, Serialize, Clone, Default)]
pub struct RealtimeCallRejectRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub status_code: Option<u16>,
}
#[derive(Debug, Serialize, Clone)]
pub struct RealtimeCreateClientSecretRequest {
pub session: Session,
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_after: Option<ClientSecretExpiration>,
}
#[derive(Debug, Serialize, Clone)]
pub struct ClientSecretExpiration {
#[serde(skip_serializing_if = "Option::is_none")]
pub anchor: Option<String>,
pub seconds: u32,
}
#[derive(Debug, Deserialize, Clone)]
pub struct RealtimeCreateClientSecretResponse {
pub value: String,
pub expires_at: u64,
pub session: Session,
}