1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct CircuitsCircuitsCreateRequest {
13 #[serde(rename = "cid")]
15 pub cid: String,
16 #[serde(rename = "provider")]
17 pub provider: Box<crate::models::BriefCircuitRequestProvider>,
18 #[serde(
19 rename = "provider_account",
20 default,
21 with = "::serde_with::rust::double_option",
22 skip_serializing_if = "Option::is_none"
23 )]
24 pub provider_account: Option<Option<Box<crate::models::CircuitRequestProviderAccount>>>,
25 #[serde(rename = "type")]
26 pub r#type: Box<crate::models::CircuitRequestType>,
27 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
29 pub status: Option<Status>,
30 #[serde(
31 rename = "tenant",
32 default,
33 with = "::serde_with::rust::double_option",
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
37 #[serde(
38 rename = "install_date",
39 default,
40 with = "::serde_with::rust::double_option",
41 skip_serializing_if = "Option::is_none"
42 )]
43 pub install_date: Option<Option<String>>,
44 #[serde(
45 rename = "termination_date",
46 default,
47 with = "::serde_with::rust::double_option",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub termination_date: Option<Option<String>>,
51 #[serde(
53 rename = "commit_rate",
54 default,
55 with = "::serde_with::rust::double_option",
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub commit_rate: Option<Option<i32>>,
59 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
60 pub description: Option<String>,
61 #[serde(
62 rename = "distance",
63 default,
64 with = "::serde_with::rust::double_option",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub distance: Option<Option<f64>>,
68 #[serde(
70 rename = "distance_unit",
71 default,
72 with = "::serde_with::rust::double_option",
73 skip_serializing_if = "Option::is_none"
74 )]
75 pub distance_unit: Option<Option<DistanceUnit>>,
76 #[serde(
77 rename = "owner",
78 default,
79 with = "::serde_with::rust::double_option",
80 skip_serializing_if = "Option::is_none"
81 )]
82 pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
83 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
84 pub comments: Option<String>,
85 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
86 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
87 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
88 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
89 #[serde(rename = "assignments", skip_serializing_if = "Option::is_none")]
90 pub assignments: Option<Vec<crate::models::BriefCircuitGroupAssignmentSerializerRequest>>,
91}
92
93impl CircuitsCircuitsCreateRequest {
94 pub fn new(
95 cid: String,
96 provider: crate::models::BriefCircuitRequestProvider,
97 r#type: crate::models::CircuitRequestType,
98 ) -> CircuitsCircuitsCreateRequest {
99 CircuitsCircuitsCreateRequest {
100 cid,
101 provider: Box::new(provider),
102 provider_account: None,
103 r#type: Box::new(r#type),
104 status: None,
105 tenant: None,
106 install_date: None,
107 termination_date: None,
108 commit_rate: None,
109 description: None,
110 distance: None,
111 distance_unit: None,
112 owner: None,
113 comments: None,
114 tags: None,
115 custom_fields: None,
116 assignments: None,
117 }
118 }
119}
120
121#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
123pub enum Status {
124 #[serde(rename = "planned")]
125 Planned,
126 #[serde(rename = "provisioning")]
127 Provisioning,
128 #[serde(rename = "active")]
129 Active,
130 #[serde(rename = "offline")]
131 Offline,
132 #[serde(rename = "deprovisioning")]
133 Deprovisioning,
134 #[serde(rename = "decommissioned")]
135 Decommissioned,
136}
137
138impl Default for Status {
139 fn default() -> Status {
140 Self::Planned
141 }
142}
143#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
145pub enum DistanceUnit {
146 #[serde(rename = "km")]
147 Km,
148 #[serde(rename = "m")]
149 M,
150 #[serde(rename = "mi")]
151 Mi,
152 #[serde(rename = "ft")]
153 Ft,
154 #[serde(rename = "")]
155 Empty,
156 #[serde(rename = "null")]
157 Null,
158}
159
160impl Default for DistanceUnit {
161 fn default() -> DistanceUnit {
162 Self::Km
163 }
164}