Skip to main content

netbox_openapi/models/
vm_interface_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.6.8 (4.6)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// VmInterfaceRequest : Adds an `owner` field for models which have a ForeignKey to users.Owner.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct VmInterfaceRequest {
15    #[serde(rename = "virtual_machine")]
16    pub virtual_machine: Box<crate::models::BulkVmInterfaceRequestVirtualMachine>,
17    #[serde(rename = "name")]
18    pub name: String,
19    #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
20    pub enabled: Option<bool>,
21    #[serde(
22        rename = "parent",
23        default,
24        with = "::serde_with::rust::double_option",
25        skip_serializing_if = "Option::is_none"
26    )]
27    pub parent: Option<Option<Box<crate::models::NestedVmInterfaceRequest>>>,
28    #[serde(
29        rename = "bridge",
30        default,
31        with = "::serde_with::rust::double_option",
32        skip_serializing_if = "Option::is_none"
33    )]
34    pub bridge: Option<Option<Box<crate::models::NestedVmInterfaceRequest>>>,
35    #[serde(
36        rename = "mtu",
37        default,
38        with = "::serde_with::rust::double_option",
39        skip_serializing_if = "Option::is_none"
40    )]
41    pub mtu: Option<Option<i32>>,
42    #[serde(
43        rename = "primary_mac_address",
44        default,
45        with = "::serde_with::rust::double_option",
46        skip_serializing_if = "Option::is_none"
47    )]
48    pub primary_mac_address:
49        Option<Option<Box<crate::models::BulkInterfaceRequestPrimaryMacAddress>>>,
50    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
51    pub description: Option<String>,
52    /// * `access` - Access * `tagged` - Tagged * `tagged-all` - Tagged (All) * `q-in-q` - Q-in-Q (802.1ad)
53    #[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
54    pub mode: Option<Mode>,
55    #[serde(
56        rename = "untagged_vlan",
57        default,
58        with = "::serde_with::rust::double_option",
59        skip_serializing_if = "Option::is_none"
60    )]
61    pub untagged_vlan: Option<Option<Box<crate::models::BulkInterfaceRequestUntaggedVlan>>>,
62    #[serde(rename = "tagged_vlans", skip_serializing_if = "Option::is_none")]
63    pub tagged_vlans: Option<Vec<i32>>,
64    #[serde(
65        rename = "qinq_svlan",
66        default,
67        with = "::serde_with::rust::double_option",
68        skip_serializing_if = "Option::is_none"
69    )]
70    pub qinq_svlan: Option<Option<Box<crate::models::BulkInterfaceRequestUntaggedVlan>>>,
71    #[serde(
72        rename = "vlan_translation_policy",
73        default,
74        with = "::serde_with::rust::double_option",
75        skip_serializing_if = "Option::is_none"
76    )]
77    pub vlan_translation_policy:
78        Option<Option<Box<crate::models::BulkInterfaceRequestVlanTranslationPolicy>>>,
79    #[serde(
80        rename = "vrf",
81        default,
82        with = "::serde_with::rust::double_option",
83        skip_serializing_if = "Option::is_none"
84    )]
85    pub vrf: Option<Option<Box<crate::models::BulkIpAddressRequestVrf>>>,
86    #[serde(
87        rename = "owner",
88        default,
89        with = "::serde_with::rust::double_option",
90        skip_serializing_if = "Option::is_none"
91    )]
92    pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
93    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
94    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
95    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
96    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
97}
98
99impl VmInterfaceRequest {
100    /// Adds an `owner` field for models which have a ForeignKey to users.Owner.
101    pub fn new(
102        virtual_machine: crate::models::BulkVmInterfaceRequestVirtualMachine,
103        name: String,
104    ) -> VmInterfaceRequest {
105        VmInterfaceRequest {
106            virtual_machine: Box::new(virtual_machine),
107            name,
108            enabled: None,
109            parent: None,
110            bridge: None,
111            mtu: None,
112            primary_mac_address: None,
113            description: None,
114            mode: None,
115            untagged_vlan: None,
116            tagged_vlans: None,
117            qinq_svlan: None,
118            vlan_translation_policy: None,
119            vrf: None,
120            owner: None,
121            tags: None,
122            custom_fields: None,
123        }
124    }
125}
126
127/// * `access` - Access * `tagged` - Tagged * `tagged-all` - Tagged (All) * `q-in-q` - Q-in-Q (802.1ad)
128#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
129pub enum Mode {
130    #[serde(rename = "access")]
131    Access,
132    #[serde(rename = "tagged")]
133    Tagged,
134    #[serde(rename = "tagged-all")]
135    TaggedAll,
136    #[serde(rename = "q-in-q")]
137    QInQ,
138    #[serde(rename = "")]
139    Empty,
140}
141
142impl Default for Mode {
143    fn default() -> Mode {
144        Self::Access
145    }
146}