netbox_openapi/models/
power_feed.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/// PowerFeed : Adds support for custom fields and tags.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PowerFeed {
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 = "power_panel")]
24    pub power_panel: Box<crate::models::BriefPowerPanel>,
25    #[serde(
26        rename = "rack",
27        default,
28        with = "::serde_with::rust::double_option",
29        skip_serializing_if = "Option::is_none"
30    )]
31    pub rack: Option<Option<Box<crate::models::BriefRack>>>,
32    #[serde(rename = "name")]
33    pub name: String,
34    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
35    pub status: Option<Box<crate::models::PowerFeedStatus>>,
36    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
37    pub r#type: Option<Box<crate::models::PowerFeedType>>,
38    #[serde(rename = "supply", skip_serializing_if = "Option::is_none")]
39    pub supply: Option<Box<crate::models::PowerFeedSupply>>,
40    #[serde(rename = "phase", skip_serializing_if = "Option::is_none")]
41    pub phase: Option<Box<crate::models::PowerFeedPhase>>,
42    #[serde(rename = "voltage", skip_serializing_if = "Option::is_none")]
43    pub voltage: Option<i32>,
44    #[serde(rename = "amperage", skip_serializing_if = "Option::is_none")]
45    pub amperage: Option<i32>,
46    /// Maximum permissible draw (percentage)
47    #[serde(rename = "max_utilization", skip_serializing_if = "Option::is_none")]
48    pub max_utilization: Option<i32>,
49    /// Treat as if a cable is connected
50    #[serde(rename = "mark_connected", skip_serializing_if = "Option::is_none")]
51    pub mark_connected: Option<bool>,
52    #[serde(
53        rename = "cable",
54        default,
55        with = "::serde_with::rust::double_option",
56        skip_serializing_if = "Option::is_none"
57    )]
58    pub cable: Option<Option<Box<crate::models::BriefCable>>>,
59    #[serde(rename = "cable_end", skip_serializing_if = "Option::is_none")]
60    pub cable_end: Option<String>,
61    #[serde(rename = "link_peers", skip_serializing_if = "Option::is_none")]
62    pub link_peers: Option<Vec<serde_json::Value>>,
63    /// Return the type of the peer link terminations, or None.
64    #[serde(
65        rename = "link_peers_type",
66        default,
67        with = "::serde_with::rust::double_option",
68        skip_serializing_if = "Option::is_none"
69    )]
70    pub link_peers_type: Option<Option<String>>,
71    #[serde(
72        rename = "connected_endpoints",
73        default,
74        with = "::serde_with::rust::double_option",
75        skip_serializing_if = "Option::is_none"
76    )]
77    pub connected_endpoints: Option<Option<Vec<serde_json::Value>>>,
78    #[serde(
79        rename = "connected_endpoints_type",
80        default,
81        with = "::serde_with::rust::double_option",
82        skip_serializing_if = "Option::is_none"
83    )]
84    pub connected_endpoints_type: Option<Option<String>>,
85    #[serde(
86        rename = "connected_endpoints_reachable",
87        skip_serializing_if = "Option::is_none"
88    )]
89    pub connected_endpoints_reachable: Option<bool>,
90    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
91    pub description: Option<String>,
92    #[serde(
93        rename = "tenant",
94        default,
95        with = "::serde_with::rust::double_option",
96        skip_serializing_if = "Option::is_none"
97    )]
98    pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
99    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
100    pub comments: Option<String>,
101    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
102    pub tags: Option<Vec<crate::models::NestedTag>>,
103    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
104    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
105    #[serde(
106        rename = "created",
107        default,
108        with = "::serde_with::rust::double_option",
109        skip_serializing_if = "Option::is_none"
110    )]
111    pub created: Option<Option<String>>,
112    #[serde(
113        rename = "last_updated",
114        default,
115        with = "::serde_with::rust::double_option",
116        skip_serializing_if = "Option::is_none"
117    )]
118    pub last_updated: Option<Option<String>>,
119    #[serde(rename = "_occupied", skip_serializing_if = "Option::is_none")]
120    pub _occupied: Option<bool>,
121}
122
123impl PowerFeed {
124    /// Adds support for custom fields and tags.
125    pub fn new(power_panel: crate::models::BriefPowerPanel, name: String) -> PowerFeed {
126        PowerFeed {
127            id: None,
128            url: None,
129            display_url: None,
130            display: None,
131            power_panel: Box::new(power_panel),
132            rack: None,
133            name,
134            status: None,
135            r#type: None,
136            supply: None,
137            phase: None,
138            voltage: None,
139            amperage: None,
140            max_utilization: None,
141            mark_connected: None,
142            cable: None,
143            cable_end: None,
144            link_peers: None,
145            link_peers_type: None,
146            connected_endpoints: None,
147            connected_endpoints_type: None,
148            connected_endpoints_reachable: None,
149            description: None,
150            tenant: None,
151            comments: None,
152            tags: None,
153            custom_fields: None,
154            created: None,
155            last_updated: None,
156            _occupied: None,
157        }
158    }
159}