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

    /// The local ASN of the controller. BGP & EVPN only.
    #[serde(rename = "asn", skip_serializing_if = "Option::is_none")]
    pub asn: Option<i32>,

    /// Whether to use eBGP or iBGP. Auto mode chooses depending on BGP controller or falls back to iBGP.
    #[serde(rename = "bgp-mode", skip_serializing_if = "Option::is_none")]
    pub bgp_mode: Option<models::PveBgpModeEnum>,

    /// Consider different AS paths of equal length for multipath computation. BGP only.
    #[serde(rename = "bgp-multipath-as-relax", skip_serializing_if = "Option::is_none")]
    pub bgp_multipath_as_relax: Option<models::PveBoolean>,

    /// Name of the controller.
    #[serde(rename = "controller")]
    pub controller: String,

    /// Digest of the controller section.
    #[serde(rename = "digest", skip_serializing_if = "Option::is_none")]
    pub digest: Option<String>,

    /// Enable eBGP (remote-as external). BGP only.
    #[serde(rename = "ebgp", skip_serializing_if = "Option::is_none")]
    pub ebgp: Option<models::PveBoolean>,

    /// Set maximum amount of hops for eBGP peers. Needs ebgp set to 1. BGP only.
    #[serde(rename = "ebgp-multihop", skip_serializing_if = "Option::is_none")]
    pub ebgp_multihop: Option<i64>,

    /// Name of the IS-IS domain. IS-IS only.
    #[serde(rename = "isis-domain", skip_serializing_if = "Option::is_none")]
    pub isis_domain: Option<String>,

    /// Comma-separated list of interfaces where IS-IS should be active. IS-IS only.
    #[serde(rename = "isis-ifaces", skip_serializing_if = "Option::is_none")]
    pub isis_ifaces: Option<String>,

    /// Network Entity title for this node in the IS-IS network. IS-IS only.
    #[serde(rename = "isis-net", skip_serializing_if = "Option::is_none")]
    pub isis_net: Option<String>,

    /// Name of the loopback/dummy interface that provides the Router-IP. BGP only.
    #[serde(rename = "loopback", skip_serializing_if = "Option::is_none")]
    pub loopback: Option<String>,

    /// Node(s) where this controller is active.
    #[serde(rename = "node", skip_serializing_if = "Option::is_none")]
    pub node: Option<String>,

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

    /// Name of the peer group for this EVPN controller
    #[serde(rename = "peer-group-name", skip_serializing_if = "Option::is_none")]
    pub peer_group_name: Option<String>,

    /// Comma-separated list of the peers IP addresses.
    #[serde(rename = "peers", skip_serializing_if = "Option::is_none")]
    pub peers: Option<String>,

    #[serde(rename = "pending", skip_serializing_if = "Option::is_none")]
    pub pending: Option<Box<models::ClusterSdnGetControllersResponseDataInnerPending>>,

    /// State of the SDN configuration object.
    #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
    pub state: Option<models::PveClusterSdnStateEnum>,

    /// Type of the controller
    #[serde(rename = "type")]
    pub r#type: models::PveClusterSdnTypeEnum,


}

impl ClusterSdnGetControllersResponseDataInner {
    pub fn new(controller: String, r#type: models::PveClusterSdnTypeEnum) -> ClusterSdnGetControllersResponseDataInner {
        ClusterSdnGetControllersResponseDataInner {
            
            asn: None,
            
            bgp_mode: None,
            
            bgp_multipath_as_relax: None,
            
            controller,
            
            digest: None,
            
            ebgp: None,
            
            ebgp_multihop: None,
            
            isis_domain: None,
            
            isis_ifaces: None,
            
            isis_net: None,
            
            loopback: None,
            
            node: None,
            
            nodes: None,
            
            peer_group_name: None,
            
            peers: None,
            
            pending: None,
            
            state: None,
            
            r#type,
            
        }
    }
}