1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct Site {
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 = "name")]
25 pub name: String,
26 #[serde(rename = "slug")]
27 pub slug: String,
28 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
29 pub status: Option<Box<crate::models::LocationStatus>>,
30 #[serde(
31 rename = "region",
32 default,
33 with = "::serde_with::rust::double_option",
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub region: Option<Option<Box<crate::models::BriefRegion>>>,
37 #[serde(
38 rename = "group",
39 default,
40 with = "::serde_with::rust::double_option",
41 skip_serializing_if = "Option::is_none"
42 )]
43 pub group: Option<Option<Box<crate::models::BriefSiteGroup>>>,
44 #[serde(
45 rename = "tenant",
46 default,
47 with = "::serde_with::rust::double_option",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
51 #[serde(rename = "facility", skip_serializing_if = "Option::is_none")]
53 pub facility: Option<String>,
54 #[serde(
55 rename = "time_zone",
56 default,
57 with = "::serde_with::rust::double_option",
58 skip_serializing_if = "Option::is_none"
59 )]
60 pub time_zone: Option<Option<String>>,
61 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
62 pub description: Option<String>,
63 #[serde(rename = "physical_address", skip_serializing_if = "Option::is_none")]
65 pub physical_address: Option<String>,
66 #[serde(rename = "shipping_address", skip_serializing_if = "Option::is_none")]
68 pub shipping_address: Option<String>,
69 #[serde(
71 rename = "latitude",
72 default,
73 with = "::serde_with::rust::double_option",
74 skip_serializing_if = "Option::is_none"
75 )]
76 pub latitude: Option<Option<f64>>,
77 #[serde(
79 rename = "longitude",
80 default,
81 with = "::serde_with::rust::double_option",
82 skip_serializing_if = "Option::is_none"
83 )]
84 pub longitude: Option<Option<f64>>,
85 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
86 pub comments: Option<String>,
87 #[serde(rename = "asns", skip_serializing_if = "Option::is_none")]
88 pub asns: Option<Vec<crate::models::Asn>>,
89 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
90 pub tags: Option<Vec<crate::models::NestedTag>>,
91 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
92 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
93 #[serde(
94 rename = "created",
95 default,
96 with = "::serde_with::rust::double_option",
97 skip_serializing_if = "Option::is_none"
98 )]
99 pub created: Option<Option<String>>,
100 #[serde(
101 rename = "last_updated",
102 default,
103 with = "::serde_with::rust::double_option",
104 skip_serializing_if = "Option::is_none"
105 )]
106 pub last_updated: Option<Option<String>>,
107 #[serde(rename = "circuit_count", skip_serializing_if = "Option::is_none")]
108 pub circuit_count: Option<i64>,
109 #[serde(rename = "device_count", skip_serializing_if = "Option::is_none")]
110 pub device_count: Option<i64>,
111 #[serde(rename = "prefix_count", skip_serializing_if = "Option::is_none")]
112 pub prefix_count: Option<i64>,
113 #[serde(rename = "rack_count", skip_serializing_if = "Option::is_none")]
114 pub rack_count: Option<i64>,
115 #[serde(
116 rename = "virtualmachine_count",
117 skip_serializing_if = "Option::is_none"
118 )]
119 pub virtualmachine_count: Option<i64>,
120 #[serde(rename = "vlan_count", skip_serializing_if = "Option::is_none")]
121 pub vlan_count: Option<i64>,
122}
123
124impl Site {
125 pub fn new(name: String, slug: String) -> Site {
127 Site {
128 id: None,
129 url: None,
130 display_url: None,
131 display: None,
132 name,
133 slug,
134 status: None,
135 region: None,
136 group: None,
137 tenant: None,
138 facility: None,
139 time_zone: None,
140 description: None,
141 physical_address: None,
142 shipping_address: None,
143 latitude: None,
144 longitude: None,
145 comments: None,
146 asns: None,
147 tags: None,
148 custom_fields: None,
149 created: None,
150 last_updated: None,
151 circuit_count: None,
152 device_count: None,
153 prefix_count: None,
154 rack_count: None,
155 virtualmachine_count: None,
156 vlan_count: None,
157 }
158 }
159}