linode_api/endpoints/v4/linode_instances/
linode_create.rs1use serde::{Deserialize, Serialize};
2use serde_json::{Map, Value};
3
4use crate::objects::v4::linode_instances::Linode;
5
6#[derive(Deserialize, Serialize, Debug, Clone, Default)]
8pub struct RequestBody {
9 pub region: String,
10 pub r#type: String,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub label: Option<String>,
13 #[serde(flatten, skip_serializing_if = "Map::is_empty")]
14 pub _extra: Map<String, Value>,
15}
16
17wrapping_macro::wrapping! {
19 #[derive(Deserialize, Serialize, Debug, Clone)]
20 pub struct ResponseBody(pub Linode);
21}
22
23#[cfg(test)]
24mod tests {
25 use super::*;
26
27 use crate::objects::v4::linode_instances::LinodeStatus;
28
29 #[test]
30 fn test_de_response_body() {
31 match serde_json::from_str::<ResponseBody>(include_str!(
32 "../../../../tests/response_body_files/linode_instances/linode_create.json"
33 )) {
34 Ok(json) => {
35 assert_eq!(json.status, LinodeStatus::Running);
36 }
37 x => panic!("{x:?}"),
38 }
39 }
40}