1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct InventoryItem {
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 = "device")]
24 pub device: Box<crate::models::BriefDevice>,
25 #[serde(
26 rename = "parent",
27 default,
28 with = "::serde_with::rust::double_option",
29 skip_serializing_if = "Option::is_none"
30 )]
31 pub parent: Option<Option<i32>>,
32 #[serde(rename = "name")]
33 pub name: String,
34 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
36 pub label: Option<String>,
37 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
38 pub status: Option<Box<crate::models::InventoryItemStatus>>,
39 #[serde(
40 rename = "role",
41 default,
42 with = "::serde_with::rust::double_option",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub role: Option<Option<Box<crate::models::BriefInventoryItemRole>>>,
46 #[serde(
47 rename = "manufacturer",
48 default,
49 with = "::serde_with::rust::double_option",
50 skip_serializing_if = "Option::is_none"
51 )]
52 pub manufacturer: Option<Option<Box<crate::models::BriefManufacturer>>>,
53 #[serde(rename = "part_id", skip_serializing_if = "Option::is_none")]
55 pub part_id: Option<String>,
56 #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
57 pub serial: Option<String>,
58 #[serde(
60 rename = "asset_tag",
61 default,
62 with = "::serde_with::rust::double_option",
63 skip_serializing_if = "Option::is_none"
64 )]
65 pub asset_tag: Option<Option<String>>,
66 #[serde(rename = "discovered", skip_serializing_if = "Option::is_none")]
68 pub discovered: Option<bool>,
69 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
70 pub description: Option<String>,
71 #[serde(
72 rename = "component_type",
73 default,
74 with = "::serde_with::rust::double_option",
75 skip_serializing_if = "Option::is_none"
76 )]
77 pub component_type: Option<Option<String>>,
78 #[serde(
79 rename = "component_id",
80 default,
81 with = "::serde_with::rust::double_option",
82 skip_serializing_if = "Option::is_none"
83 )]
84 pub component_id: Option<Option<i64>>,
85 #[serde(
86 rename = "component",
87 default,
88 with = "::serde_with::rust::double_option",
89 skip_serializing_if = "Option::is_none"
90 )]
91 pub component: Option<Option<serde_json::Value>>,
92 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
93 pub tags: Option<Vec<crate::models::NestedTag>>,
94 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
95 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
96 #[serde(
97 rename = "created",
98 default,
99 with = "::serde_with::rust::double_option",
100 skip_serializing_if = "Option::is_none"
101 )]
102 pub created: Option<Option<String>>,
103 #[serde(
104 rename = "last_updated",
105 default,
106 with = "::serde_with::rust::double_option",
107 skip_serializing_if = "Option::is_none"
108 )]
109 pub last_updated: Option<Option<String>>,
110 #[serde(rename = "_depth", skip_serializing_if = "Option::is_none")]
111 pub _depth: Option<i32>,
112}
113
114impl InventoryItem {
115 pub fn new(device: crate::models::BriefDevice, name: String) -> InventoryItem {
117 InventoryItem {
118 id: None,
119 url: None,
120 display_url: None,
121 display: None,
122 device: Box::new(device),
123 parent: None,
124 name,
125 label: None,
126 status: None,
127 role: None,
128 manufacturer: None,
129 part_id: None,
130 serial: None,
131 asset_tag: None,
132 discovered: None,
133 description: None,
134 component_type: None,
135 component_id: None,
136 component: None,
137 tags: None,
138 custom_fields: None,
139 created: None,
140 last_updated: None,
141 _depth: None,
142 }
143 }
144}