asterisk_ari/apis/asterisk/
models.rs

1use chrono::{DateTime, Utc};
2use serde::Deserialize;
3
4/// AsteriskInfo : Asterisk system information
5#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
6pub struct AsteriskInfo {
7    /// Info about how Asterisk was built,
8    pub build: Option<BuildInfo>,
9    /// Info about the system running Asterisk,
10    pub system: Option<SystemInfo>,
11    /// Info about Asterisk configuration,
12    pub config: Option<ConfigInfo>,
13    /// Info about Asterisk status
14    pub status: Option<StatusInfo>,
15}
16
17/// AsteriskPing : Asterisk ping information
18#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
19pub struct AsteriskPing {
20    /// Asterisk id info
21    pub asterisk_id: String,
22    /// Always string value is pong
23    pub ping: String,
24    /// The timestamp string of request received time
25    pub timestamp: DateTime<Utc>,
26}
27
28/// BuildInfo : Info about how Asterisk was built
29#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
30pub struct BuildInfo {
31    /// OS Asterisk was built on.
32    pub os: String,
33    /// Kernel version Asterisk was built on.
34    pub kernel: String,
35    /// Compile time options, or empty string if default.
36    pub options: String,
37    /// Machine architecture (x86_64, i686, ppc, etc.)
38    pub machine: String,
39    /// Date and time when Asterisk was built.
40    pub date: String,
41    /// Username that build Asterisk
42    pub user: String,
43}
44
45/// ConfigInfo : Info about Asterisk configuration
46#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
47pub struct ConfigInfo {
48    /// Asterisk system name.
49    pub name: String,
50    /// Default language for media playback.
51    pub default_language: String,
52    /// Maximum number of simultaneous channels.,
53    pub max_channels: Option<u32>,
54    /// Maximum number of open file handles (files, sockets).,
55    pub max_open_files: Option<u32>,
56    /// Maximum load avg on system.,
57    pub max_load: Option<f32>,
58    /// Effective user/group id for running Asterisk.
59    pub set_id: Option<SetId>,
60}
61
62/// SetId : Effective user/group id
63#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
64pub struct SetId {
65    /// Effective user id.
66    pub user: String,
67    /// Effective group id.
68    pub group: String,
69}
70
71/// StatusInfo : Info about Asterisk status
72#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
73pub struct StatusInfo {
74    /// Time when Asterisk was started.
75    pub startup_time: DateTime<Utc>,
76    /// Time when Asterisk was last reloaded.
77    pub last_reload_time: DateTime<Utc>,
78}
79
80/// SystemInfo : Info about Asterisk
81#[derive(Clone, Default, Debug, PartialEq, Deserialize)]
82pub struct SystemInfo {
83    /// Asterisk version.
84    pub version: String,
85
86    pub entity_id: String,
87}