1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct Circuit {
15 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
16 pub id: Option<i32>,
17 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
18 pub url: Option<String>,
19 #[serde(rename = "display_url", skip_serializing_if = "Option::is_none")]
20 pub display_url: Option<String>,
21 #[serde(rename = "display", skip_serializing_if = "Option::is_none")]
22 pub display: Option<String>,
23 #[serde(rename = "cid")]
25 pub cid: String,
26 #[serde(rename = "provider")]
27 pub provider: Box<crate::models::BriefProvider>,
28 #[serde(
29 rename = "provider_account",
30 default,
31 with = "::serde_with::rust::double_option",
32 skip_serializing_if = "Option::is_none"
33 )]
34 pub provider_account: Option<Option<Box<crate::models::BriefProviderAccount>>>,
35 #[serde(rename = "type")]
36 pub r#type: Box<crate::models::BriefCircuitType>,
37 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
38 pub status: Option<Box<crate::models::CircuitStatus>>,
39 #[serde(
40 rename = "tenant",
41 default,
42 with = "::serde_with::rust::double_option",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
46 #[serde(
47 rename = "install_date",
48 default,
49 with = "::serde_with::rust::double_option",
50 skip_serializing_if = "Option::is_none"
51 )]
52 pub install_date: Option<Option<String>>,
53 #[serde(
54 rename = "termination_date",
55 default,
56 with = "::serde_with::rust::double_option",
57 skip_serializing_if = "Option::is_none"
58 )]
59 pub termination_date: Option<Option<String>>,
60 #[serde(
62 rename = "commit_rate",
63 default,
64 with = "::serde_with::rust::double_option",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub commit_rate: Option<Option<i32>>,
68 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
69 pub description: Option<String>,
70 #[serde(
71 rename = "distance",
72 default,
73 with = "::serde_with::rust::double_option",
74 skip_serializing_if = "Option::is_none"
75 )]
76 pub distance: Option<Option<f64>>,
77 #[serde(
78 rename = "distance_unit",
79 default,
80 with = "::serde_with::rust::double_option",
81 skip_serializing_if = "Option::is_none"
82 )]
83 pub distance_unit: Option<Option<Box<crate::models::CircuitDistanceUnit>>>,
84 #[serde(
85 rename = "termination_a",
86 default,
87 with = "::serde_with::rust::double_option",
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub termination_a: Option<Option<Box<crate::models::CircuitCircuitTermination>>>,
91 #[serde(
92 rename = "termination_z",
93 default,
94 with = "::serde_with::rust::double_option",
95 skip_serializing_if = "Option::is_none"
96 )]
97 pub termination_z: Option<Option<Box<crate::models::CircuitCircuitTermination>>>,
98 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
99 pub comments: Option<String>,
100 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
101 pub tags: Option<Vec<crate::models::NestedTag>>,
102 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
103 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
104 #[serde(
105 rename = "created",
106 default,
107 with = "::serde_with::rust::double_option",
108 skip_serializing_if = "Option::is_none"
109 )]
110 pub created: Option<Option<String>>,
111 #[serde(
112 rename = "last_updated",
113 default,
114 with = "::serde_with::rust::double_option",
115 skip_serializing_if = "Option::is_none"
116 )]
117 pub last_updated: Option<Option<String>>,
118 #[serde(rename = "assignments", skip_serializing_if = "Option::is_none")]
119 pub assignments: Option<Vec<crate::models::BriefCircuitGroupAssignmentSerializer>>,
120}
121
122impl Circuit {
123 pub fn new(
125 cid: String,
126 provider: crate::models::BriefProvider,
127 r#type: crate::models::BriefCircuitType,
128 ) -> Circuit {
129 Circuit {
130 id: None,
131 url: None,
132 display_url: None,
133 display: None,
134 cid,
135 provider: Box::new(provider),
136 provider_account: None,
137 r#type: Box::new(r#type),
138 status: None,
139 tenant: None,
140 install_date: None,
141 termination_date: None,
142 commit_rate: None,
143 description: None,
144 distance: None,
145 distance_unit: None,
146 termination_a: None,
147 termination_z: None,
148 comments: None,
149 tags: None,
150 custom_fields: None,
151 created: None,
152 last_updated: None,
153 assignments: None,
154 }
155 }
156}