use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Log {
#[serde(rename = "time")]
pub time: String,
#[serde(rename = "orgId")]
pub org_id: String,
#[serde(rename = "type")]
pub r#type: TypeTrue,
#[serde(rename = "webhookType", skip_serializing_if = "Option::is_none")]
pub webhook_type: Option<String>,
#[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
pub resource: Option<ResourceTrue>,
#[serde(
rename = "requestDurationSeconds",
skip_serializing_if = "Option::is_none"
)]
pub request_duration_seconds: Option<f64>,
#[serde(rename = "requestStartedAt", skip_serializing_if = "Option::is_none")]
pub request_started_at: Option<String>,
#[serde(rename = "requestFinishedAt", skip_serializing_if = "Option::is_none")]
pub request_finished_at: Option<String>,
#[serde(rename = "requestBody", skip_serializing_if = "Option::is_none")]
pub request_body: Option<serde_json::Value>,
#[serde(rename = "requestHttpMethod", skip_serializing_if = "Option::is_none")]
pub request_http_method: Option<RequestHttpMethodTrue>,
#[serde(rename = "requestUrl", skip_serializing_if = "Option::is_none")]
pub request_url: Option<String>,
#[serde(rename = "requestPath", skip_serializing_if = "Option::is_none")]
pub request_path: Option<String>,
#[serde(rename = "requestQuery", skip_serializing_if = "Option::is_none")]
pub request_query: Option<String>,
#[serde(rename = "responseHttpCode", skip_serializing_if = "Option::is_none")]
pub response_http_code: Option<f64>,
#[serde(rename = "requestIpAddress", skip_serializing_if = "Option::is_none")]
pub request_ip_address: Option<String>,
#[serde(rename = "requestOrigin", skip_serializing_if = "Option::is_none")]
pub request_origin: Option<String>,
#[serde(rename = "responseBody", skip_serializing_if = "Option::is_none")]
pub response_body: Option<serde_json::Value>,
#[serde(rename = "requestHeaders", skip_serializing_if = "Option::is_none")]
pub request_headers: Option<serde_json::Value>,
#[serde(rename = "error", skip_serializing_if = "Option::is_none")]
pub error: Option<models::Error>,
#[serde(rename = "assistantId", skip_serializing_if = "Option::is_none")]
pub assistant_id: Option<String>,
#[serde(rename = "phoneNumberId", skip_serializing_if = "Option::is_none")]
pub phone_number_id: Option<String>,
#[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
pub customer_id: Option<String>,
#[serde(rename = "squadId", skip_serializing_if = "Option::is_none")]
pub squad_id: Option<String>,
#[serde(rename = "callId", skip_serializing_if = "Option::is_none")]
pub call_id: Option<String>,
}
impl Log {
pub fn new(time: String, org_id: String, r#type: TypeTrue) -> Log {
Log {
time,
org_id,
r#type,
webhook_type: None,
resource: None,
request_duration_seconds: None,
request_started_at: None,
request_finished_at: None,
request_body: None,
request_http_method: None,
request_url: None,
request_path: None,
request_query: None,
response_http_code: None,
request_ip_address: None,
request_origin: None,
response_body: None,
request_headers: None,
error: None,
assistant_id: None,
phone_number_id: None,
customer_id: None,
squad_id: None,
call_id: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TypeTrue {
#[serde(rename = "API")]
Api,
#[serde(rename = "Webhook")]
Webhook,
#[serde(rename = "Call")]
Call,
#[serde(rename = "Provider")]
Provider,
}
impl Default for TypeTrue {
fn default() -> TypeTrue {
Self::Api
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ResourceTrue {
#[serde(rename = "org")]
Org,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "analytics")]
Analytics,
#[serde(rename = "credential")]
Credential,
#[serde(rename = "phone-number")]
PhoneNumber,
#[serde(rename = "block")]
Block,
#[serde(rename = "voice-library")]
VoiceLibrary,
#[serde(rename = "provider")]
Provider,
#[serde(rename = "tool")]
Tool,
#[serde(rename = "token")]
Token,
#[serde(rename = "template")]
Template,
#[serde(rename = "squad")]
Squad,
#[serde(rename = "call")]
Call,
#[serde(rename = "file")]
File,
#[serde(rename = "metric")]
Metric,
#[serde(rename = "log")]
Log,
}
impl Default for ResourceTrue {
fn default() -> ResourceTrue {
Self::Org
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RequestHttpMethodTrue {
#[serde(rename = "POST")]
Post,
#[serde(rename = "GET")]
Get,
#[serde(rename = "PUT")]
Put,
#[serde(rename = "PATCH")]
Patch,
#[serde(rename = "DELETE")]
Delete,
}
impl Default for RequestHttpMethodTrue {
fn default() -> RequestHttpMethodTrue {
Self::Post
}
}