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}