netbox_openapi/models/
patched_writable_vlan_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/// PatchedWritableVlanRequest : Adds support for custom fields and tags.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PatchedWritableVlanRequest {
15    #[serde(
16        rename = "site",
17        default,
18        with = "::serde_with::rust::double_option",
19        skip_serializing_if = "Option::is_none"
20    )]
21    pub site: Option<Option<Box<crate::models::PatchedWritableVlanRequestSite>>>,
22    #[serde(
23        rename = "group",
24        default,
25        with = "::serde_with::rust::double_option",
26        skip_serializing_if = "Option::is_none"
27    )]
28    pub group: Option<Option<Box<crate::models::PatchedWritableVlanRequestGroup>>>,
29    /// Numeric VLAN ID (1-4094)
30    #[serde(rename = "vid", skip_serializing_if = "Option::is_none")]
31    pub vid: Option<i32>,
32    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
33    pub name: Option<String>,
34    #[serde(
35        rename = "tenant",
36        default,
37        with = "::serde_with::rust::double_option",
38        skip_serializing_if = "Option::is_none"
39    )]
40    pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
41    /// Operational status of this VLAN  * `active` - Active * `reserved` - Reserved * `deprecated` - Deprecated
42    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
43    pub status: Option<Status>,
44    #[serde(
45        rename = "role",
46        default,
47        with = "::serde_with::rust::double_option",
48        skip_serializing_if = "Option::is_none"
49    )]
50    pub role: Option<Option<Box<crate::models::IpRangeRequestRole>>>,
51    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
52    pub description: Option<String>,
53    /// Customer/service VLAN designation (for Q-in-Q/IEEE 802.1ad)  * `svlan` - Service * `cvlan` - Customer
54    #[serde(
55        rename = "qinq_role",
56        default,
57        with = "::serde_with::rust::double_option",
58        skip_serializing_if = "Option::is_none"
59    )]
60    pub qinq_role: Option<Option<QinqRole>>,
61    #[serde(
62        rename = "qinq_svlan",
63        default,
64        with = "::serde_with::rust::double_option",
65        skip_serializing_if = "Option::is_none"
66    )]
67    pub qinq_svlan: Option<Option<i32>>,
68    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
69    pub comments: Option<String>,
70    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
71    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
72    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
73    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
74}
75
76impl PatchedWritableVlanRequest {
77    /// Adds support for custom fields and tags.
78    pub fn new() -> PatchedWritableVlanRequest {
79        PatchedWritableVlanRequest {
80            site: None,
81            group: None,
82            vid: None,
83            name: None,
84            tenant: None,
85            status: None,
86            role: None,
87            description: None,
88            qinq_role: None,
89            qinq_svlan: None,
90            comments: None,
91            tags: None,
92            custom_fields: None,
93        }
94    }
95}
96
97/// Operational status of this VLAN  * `active` - Active * `reserved` - Reserved * `deprecated` - Deprecated
98#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
99pub enum Status {
100    #[serde(rename = "active")]
101    Active,
102    #[serde(rename = "reserved")]
103    Reserved,
104    #[serde(rename = "deprecated")]
105    Deprecated,
106}
107
108impl Default for Status {
109    fn default() -> Status {
110        Self::Active
111    }
112}
113/// Customer/service VLAN designation (for Q-in-Q/IEEE 802.1ad)  * `svlan` - Service * `cvlan` - Customer
114#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
115pub enum QinqRole {
116    #[serde(rename = "svlan")]
117    Svlan,
118    #[serde(rename = "cvlan")]
119    Cvlan,
120    #[serde(rename = "")]
121    Empty,
122    #[serde(rename = "null")]
123    Null,
124}
125
126impl Default for QinqRole {
127    fn default() -> QinqRole {
128        Self::Svlan
129    }
130}