netbox_openapi/models/
patched_writable_site_request.rs

1/*
2 * NetBox REST API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 4.4.2-Docker-3.4.1 (4.4)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// PatchedWritableSiteRequest : Adds support for custom fields and tags.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PatchedWritableSiteRequest {
15    /// Full name of the site
16    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
17    pub name: Option<String>,
18    #[serde(rename = "slug", skip_serializing_if = "Option::is_none")]
19    pub slug: Option<String>,
20    /// * `planned` - Planned * `staging` - Staging * `active` - Active * `decommissioning` - Decommissioning * `retired` - Retired
21    #[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    /// Local facility ID or description
45    #[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    /// Physical location of the building
57    #[serde(rename = "physical_address", skip_serializing_if = "Option::is_none")]
58    pub physical_address: Option<String>,
59    /// If different from the physical address
60    #[serde(rename = "shipping_address", skip_serializing_if = "Option::is_none")]
61    pub shipping_address: Option<String>,
62    /// GPS coordinate in decimal format (xx.yyyyyy)
63    #[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    /// GPS coordinate in decimal format (xx.yyyyyy)
71    #[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 PatchedWritableSiteRequest {
89    /// Adds support for custom fields and tags.
90    pub fn new() -> PatchedWritableSiteRequest {
91        PatchedWritableSiteRequest {
92            name: None,
93            slug: None,
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/// * `planned` - Planned * `staging` - Staging * `active` - Active * `decommissioning` - Decommissioning * `retired` - Retired
114#[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}