netbox_openapi/models/
writable_site_request.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct WritableSiteRequest {
15 #[serde(rename = "name")]
17 pub name: String,
18 #[serde(rename = "slug")]
19 pub slug: String,
20 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
22 pub status: Option<Status>,
23 #[serde(
24 rename = "region",
25 default,
26 with = "::serde_with::rust::double_option",
27 skip_serializing_if = "Option::is_none"
28 )]
29 pub region: Option<Option<Box<crate::models::PatchedWritableSiteRequestRegion>>>,
30 #[serde(
31 rename = "group",
32 default,
33 with = "::serde_with::rust::double_option",
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub group: Option<Option<Box<crate::models::PatchedWritableSiteRequestGroup>>>,
37 #[serde(
38 rename = "tenant",
39 default,
40 with = "::serde_with::rust::double_option",
41 skip_serializing_if = "Option::is_none"
42 )]
43 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
44 #[serde(rename = "facility", skip_serializing_if = "Option::is_none")]
46 pub facility: Option<String>,
47 #[serde(
48 rename = "time_zone",
49 default,
50 with = "::serde_with::rust::double_option",
51 skip_serializing_if = "Option::is_none"
52 )]
53 pub time_zone: Option<Option<String>>,
54 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
55 pub description: Option<String>,
56 #[serde(rename = "physical_address", skip_serializing_if = "Option::is_none")]
58 pub physical_address: Option<String>,
59 #[serde(rename = "shipping_address", skip_serializing_if = "Option::is_none")]
61 pub shipping_address: Option<String>,
62 #[serde(
64 rename = "latitude",
65 default,
66 with = "::serde_with::rust::double_option",
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub latitude: Option<Option<f64>>,
70 #[serde(
72 rename = "longitude",
73 default,
74 with = "::serde_with::rust::double_option",
75 skip_serializing_if = "Option::is_none"
76 )]
77 pub longitude: Option<Option<f64>>,
78 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
79 pub comments: Option<String>,
80 #[serde(rename = "asns", skip_serializing_if = "Option::is_none")]
81 pub asns: Option<Vec<i32>>,
82 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
83 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
84 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
85 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
86}
87
88impl WritableSiteRequest {
89 pub fn new(name: String, slug: String) -> WritableSiteRequest {
91 WritableSiteRequest {
92 name,
93 slug,
94 status: None,
95 region: None,
96 group: None,
97 tenant: None,
98 facility: None,
99 time_zone: None,
100 description: None,
101 physical_address: None,
102 shipping_address: None,
103 latitude: None,
104 longitude: None,
105 comments: None,
106 asns: None,
107 tags: None,
108 custom_fields: None,
109 }
110 }
111}
112
113#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
115pub enum Status {
116 #[serde(rename = "planned")]
117 Planned,
118 #[serde(rename = "staging")]
119 Staging,
120 #[serde(rename = "active")]
121 Active,
122 #[serde(rename = "decommissioning")]
123 Decommissioning,
124 #[serde(rename = "retired")]
125 Retired,
126}
127
128impl Default for Status {
129 fn default() -> Status {
130 Self::Planned
131 }
132}