clientapi-pve 2026.5.24

Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
Documentation
/*
 * Proxmox Virtual Environment API
 *
 * Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
 *
 * The version of the OpenAPI document: 9.x
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct NodesNetworkCreateNetworkRequest {

    /// IP address.
    #[serde(rename = "address", skip_serializing_if = "Option::is_none")]
    pub address: Option<String>,

    /// IP address.
    #[serde(rename = "address6", skip_serializing_if = "Option::is_none")]
    pub address6: Option<String>,

    /// Automatically start interface on boot.
    #[serde(rename = "autostart", skip_serializing_if = "Option::is_none")]
    pub autostart: Option<models::PveBoolean>,

    /// Specify the primary interface for active-backup bond.
    #[serde(rename = "bond-primary", skip_serializing_if = "Option::is_none")]
    pub bond_primary: Option<String>,

    /// Bonding mode.
    #[serde(rename = "bond_mode", skip_serializing_if = "Option::is_none")]
    pub bond_mode: Option<models::PveBondModeEnum>,

    /// Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.
    #[serde(rename = "bond_xmit_hash_policy", skip_serializing_if = "Option::is_none")]
    pub bond_xmit_hash_policy: Option<models::PveBondXmitHashPolicyEnum>,

    /// Specify the interfaces you want to add to your bridge.
    #[serde(rename = "bridge_ports", skip_serializing_if = "Option::is_none")]
    pub bridge_ports: Option<String>,

    /// Specify the allowed VLANs. For example: '2 4 100-200'. Only used if the bridge is VLAN aware.
    #[serde(rename = "bridge_vids", skip_serializing_if = "Option::is_none")]
    pub bridge_vids: Option<String>,

    /// Enable bridge vlan support.
    #[serde(rename = "bridge_vlan_aware", skip_serializing_if = "Option::is_none")]
    pub bridge_vlan_aware: Option<models::PveBoolean>,

    /// IPv4 CIDR.
    #[serde(rename = "cidr", skip_serializing_if = "Option::is_none")]
    pub cidr: Option<String>,

    /// IPv6 CIDR.
    #[serde(rename = "cidr6", skip_serializing_if = "Option::is_none")]
    pub cidr6: Option<String>,

    /// Comments
    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
    pub comments: Option<String>,

    /// Comments
    #[serde(rename = "comments6", skip_serializing_if = "Option::is_none")]
    pub comments6: Option<String>,

    /// Default gateway address.
    #[serde(rename = "gateway", skip_serializing_if = "Option::is_none")]
    pub gateway: Option<String>,

    /// Default ipv6 gateway address.
    #[serde(rename = "gateway6", skip_serializing_if = "Option::is_none")]
    pub gateway6: Option<String>,

    /// Network interface name.
    #[serde(rename = "iface")]
    pub iface: String,

    /// MTU.
    #[serde(rename = "mtu", skip_serializing_if = "Option::is_none")]
    pub mtu: Option<i32>,

    /// Network mask.
    #[serde(rename = "netmask", skip_serializing_if = "Option::is_none")]
    pub netmask: Option<String>,

    /// Network mask.
    #[serde(rename = "netmask6", skip_serializing_if = "Option::is_none")]
    pub netmask6: Option<i32>,

    /// Specify the interfaces used by the bonding device.
    #[serde(rename = "ovs_bonds", skip_serializing_if = "Option::is_none")]
    pub ovs_bonds: Option<String>,

    /// The OVS bridge associated with a OVS port. This is required when you create an OVS port.
    #[serde(rename = "ovs_bridge", skip_serializing_if = "Option::is_none")]
    pub ovs_bridge: Option<String>,

    /// OVS interface options.
    #[serde(rename = "ovs_options", skip_serializing_if = "Option::is_none")]
    pub ovs_options: Option<String>,

    /// Specify the interfaces you want to add to your bridge.
    #[serde(rename = "ovs_ports", skip_serializing_if = "Option::is_none")]
    pub ovs_ports: Option<String>,

    /// Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)
    #[serde(rename = "ovs_tag", skip_serializing_if = "Option::is_none")]
    pub ovs_tag: Option<i32>,

    /// Specify the interfaces used by the bonding device.
    #[serde(rename = "slaves", skip_serializing_if = "Option::is_none")]
    pub slaves: Option<String>,

    /// Network interface type
    #[serde(rename = "type")]
    pub r#type: models::PveNodesNetworkTypeTypeEnum,

    /// vlan-id for a custom named vlan interface (ifupdown2 only).
    #[serde(rename = "vlan-id", skip_serializing_if = "Option::is_none")]
    pub vlan_id: Option<i32>,

    /// Specify the raw interface for the vlan interface.
    #[serde(rename = "vlan-raw-device", skip_serializing_if = "Option::is_none")]
    pub vlan_raw_device: Option<String>,


}

impl NodesNetworkCreateNetworkRequest {
    pub fn new(iface: String, r#type: models::PveNodesNetworkTypeTypeEnum) -> NodesNetworkCreateNetworkRequest {
        NodesNetworkCreateNetworkRequest {
            
            address: None,
            
            address6: None,
            
            autostart: None,
            
            bond_primary: None,
            
            bond_mode: None,
            
            bond_xmit_hash_policy: None,
            
            bridge_ports: None,
            
            bridge_vids: None,
            
            bridge_vlan_aware: None,
            
            cidr: None,
            
            cidr6: None,
            
            comments: None,
            
            comments6: None,
            
            gateway: None,
            
            gateway6: None,
            
            iface,
            
            mtu: None,
            
            netmask: None,
            
            netmask6: None,
            
            ovs_bonds: None,
            
            ovs_bridge: None,
            
            ovs_options: None,
            
            ovs_ports: None,
            
            ovs_tag: None,
            
            slaves: None,
            
            r#type,
            
            vlan_id: None,
            
            vlan_raw_device: None,
            
        }
    }
}