netbox_openapi/models/
ipam_prefixes_create_request.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct IpamPrefixesCreateRequest {
13 #[serde(rename = "prefix")]
14 pub prefix: String,
15 #[serde(
16 rename = "vrf",
17 default,
18 with = "::serde_with::rust::double_option",
19 skip_serializing_if = "Option::is_none"
20 )]
21 pub vrf: Option<Option<Box<crate::models::IpAddressRequestVrf>>>,
22 #[serde(
23 rename = "scope_type",
24 default,
25 with = "::serde_with::rust::double_option",
26 skip_serializing_if = "Option::is_none"
27 )]
28 pub scope_type: Option<Option<String>>,
29 #[serde(
30 rename = "scope_id",
31 default,
32 with = "::serde_with::rust::double_option",
33 skip_serializing_if = "Option::is_none"
34 )]
35 pub scope_id: Option<Option<i32>>,
36 #[serde(
37 rename = "tenant",
38 default,
39 with = "::serde_with::rust::double_option",
40 skip_serializing_if = "Option::is_none"
41 )]
42 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
43 #[serde(
44 rename = "vlan",
45 default,
46 with = "::serde_with::rust::double_option",
47 skip_serializing_if = "Option::is_none"
48 )]
49 pub vlan: Option<Option<Box<crate::models::InterfaceRequestUntaggedVlan>>>,
50 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
52 pub status: Option<Status>,
53 #[serde(
54 rename = "role",
55 default,
56 with = "::serde_with::rust::double_option",
57 skip_serializing_if = "Option::is_none"
58 )]
59 pub role: Option<Option<Box<crate::models::AsnRequestRole>>>,
60 #[serde(rename = "is_pool", skip_serializing_if = "Option::is_none")]
62 pub is_pool: Option<bool>,
63 #[serde(rename = "mark_utilized", skip_serializing_if = "Option::is_none")]
65 pub mark_utilized: Option<bool>,
66 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
67 pub description: Option<String>,
68 #[serde(
69 rename = "owner",
70 default,
71 with = "::serde_with::rust::double_option",
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
75 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
76 pub comments: Option<String>,
77 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
78 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
79 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
80 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
81}
82
83impl IpamPrefixesCreateRequest {
84 pub fn new(prefix: String) -> IpamPrefixesCreateRequest {
85 IpamPrefixesCreateRequest {
86 prefix,
87 vrf: None,
88 scope_type: None,
89 scope_id: None,
90 tenant: None,
91 vlan: None,
92 status: None,
93 role: None,
94 is_pool: None,
95 mark_utilized: None,
96 description: None,
97 owner: None,
98 comments: None,
99 tags: None,
100 custom_fields: None,
101 }
102 }
103}
104
105#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
107pub enum Status {
108 #[serde(rename = "container")]
109 Container,
110 #[serde(rename = "active")]
111 Active,
112 #[serde(rename = "reserved")]
113 Reserved,
114 #[serde(rename = "deprecated")]
115 Deprecated,
116}
117
118impl Default for Status {
119 fn default() -> Status {
120 Self::Container
121 }
122}