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 ClusterSdnUpdateZonesRequest {

    /// Advertise IP prefixes (Type-5 routes) instead of MAC/IP pairs (Type-2 routes).
    #[serde(rename = "advertise-subnets", skip_serializing_if = "Option::is_none")]
    pub advertise_subnets: Option<models::PveBoolean>,

    /// The bridge for which VLANs should be managed.
    #[serde(rename = "bridge", skip_serializing_if = "Option::is_none")]
    pub bridge: Option<String>,

    /// Disable auto mac learning.
    #[serde(rename = "bridge-disable-mac-learning", skip_serializing_if = "Option::is_none")]
    pub bridge_disable_mac_learning: Option<models::PveBoolean>,

    /// Controller for this zone.
    #[serde(rename = "controller", skip_serializing_if = "Option::is_none")]
    pub controller: Option<String>,

    /// A list of settings you want to delete.
    #[serde(rename = "delete", skip_serializing_if = "Option::is_none")]
    pub delete: Option<String>,

    /// Type of the DHCP backend for this zone
    #[serde(rename = "dhcp", skip_serializing_if = "Option::is_none")]
    pub dhcp: Option<models::PveDhcpEnum>,

    /// Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.
    #[serde(rename = "digest", skip_serializing_if = "Option::is_none")]
    pub digest: Option<String>,

    /// Suppress IPv4 ARP && IPv6 Neighbour Discovery messages.
    #[serde(rename = "disable-arp-nd-suppression", skip_serializing_if = "Option::is_none")]
    pub disable_arp_nd_suppression: Option<models::PveBoolean>,

    /// dns api server
    #[serde(rename = "dns", skip_serializing_if = "Option::is_none")]
    pub dns: Option<String>,

    /// dns domain zone  ex: mydomain.com
    #[serde(rename = "dnszone", skip_serializing_if = "Option::is_none")]
    pub dnszone: Option<String>,

    /// Faucet dataplane id
    #[serde(rename = "dp-id", skip_serializing_if = "Option::is_none")]
    pub dp_id: Option<i64>,

    /// List of cluster node names.
    #[serde(rename = "exitnodes", skip_serializing_if = "Option::is_none")]
    pub exitnodes: Option<String>,

    /// Allow exitnodes to connect to EVPN guests.
    #[serde(rename = "exitnodes-local-routing", skip_serializing_if = "Option::is_none")]
    pub exitnodes_local_routing: Option<models::PveBoolean>,

    /// Force traffic through this exitnode first.
    #[serde(rename = "exitnodes-primary", skip_serializing_if = "Option::is_none")]
    pub exitnodes_primary: Option<String>,

    /// SDN fabric to use as underlay for this VXLAN zone.
    #[serde(rename = "fabric", skip_serializing_if = "Option::is_none")]
    pub fabric: Option<String>,

    /// use a specific ipam
    #[serde(rename = "ipam", skip_serializing_if = "Option::is_none")]
    pub ipam: Option<String>,

    /// the token for unlocking the global SDN configuration
    #[serde(rename = "lock-token", skip_serializing_if = "Option::is_none")]
    pub lock_token: Option<String>,

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

    /// MTU of the zone, will be used for the created VNet bridges.
    #[serde(rename = "mtu", skip_serializing_if = "Option::is_none")]
    pub mtu: Option<i64>,

    /// List of cluster node names.
    #[serde(rename = "nodes", skip_serializing_if = "Option::is_none")]
    pub nodes: Option<String>,

    /// Comma-separated list of peers, that are part of the VXLAN zone. Usually the IPs of the nodes.
    #[serde(rename = "peers", skip_serializing_if = "Option::is_none")]
    pub peers: Option<String>,

    /// reverse dns api server
    #[serde(rename = "reversedns", skip_serializing_if = "Option::is_none")]
    pub reversedns: Option<String>,

    /// List of Route Targets that should be imported into the VRF of the zone.
    #[serde(rename = "rt-import", skip_serializing_if = "Option::is_none")]
    pub rt_import: Option<String>,

    /// Additional controllers.
    #[serde(rename = "secondary-controllers", skip_serializing_if = "Option::is_none")]
    pub secondary_controllers: Option<Vec<String>>,

    /// Service-VLAN Tag (outer VLAN)
    #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
    pub tag: Option<i64>,

    /// Which VLAN protocol should be used for the creation of the QinQ zone.
    #[serde(rename = "vlan-protocol", skip_serializing_if = "Option::is_none")]
    pub vlan_protocol: Option<models::PveVlanProtocolEnum>,

    /// VNI for the zone VRF.
    #[serde(rename = "vrf-vxlan", skip_serializing_if = "Option::is_none")]
    pub vrf_vxlan: Option<i32>,

    /// UDP port that should be used for the VXLAN tunnel (default 4789).
    #[serde(rename = "vxlan-port", skip_serializing_if = "Option::is_none")]
    pub vxlan_port: Option<i32>,


}

impl ClusterSdnUpdateZonesRequest {
    pub fn new() -> ClusterSdnUpdateZonesRequest {
        ClusterSdnUpdateZonesRequest {
            
            advertise_subnets: None,
            
            bridge: None,
            
            bridge_disable_mac_learning: None,
            
            controller: None,
            
            delete: None,
            
            dhcp: None,
            
            digest: None,
            
            disable_arp_nd_suppression: None,
            
            dns: None,
            
            dnszone: None,
            
            dp_id: None,
            
            exitnodes: None,
            
            exitnodes_local_routing: None,
            
            exitnodes_primary: None,
            
            fabric: None,
            
            ipam: None,
            
            lock_token: None,
            
            mac: None,
            
            mtu: None,
            
            nodes: None,
            
            peers: None,
            
            reversedns: None,
            
            rt_import: None,
            
            secondary_controllers: None,
            
            tag: None,
            
            vlan_protocol: None,
            
            vrf_vxlan: None,
            
            vxlan_port: None,
            
        }
    }
}