#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[cfg(feature = "derive_builder")]
use derive_builder::Builder;
#[derive(Default, Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "derive_builder", derive(Builder))]
#[cfg_attr(feature = "serde", serde(rename_all = "kebab-case"))]
pub struct AuthConfig {
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub key_managment: Option<KeyManagmentMode>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub password: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub method: Option<AuthMethod>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub identity: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub anonymous_identity: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub ca_certificate: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub client_certificate: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub client_key: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub client_key_password: Option<String>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub phase2_auth: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum AuthMethod {
#[cfg_attr(feature = "serde", serde(rename = "tls"))]
Tls,
#[cfg_attr(feature = "serde", serde(rename = "peap"))]
Peap,
#[cfg_attr(feature = "serde", serde(rename = "ttls"))]
Ttls,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum KeyManagmentMode {
#[cfg_attr(feature = "serde", serde(rename = "none"))]
None,
#[cfg_attr(feature = "serde", serde(rename = "psk"))]
Psk,
#[cfg_attr(feature = "serde", serde(rename = "eap"))]
Eap,
#[cfg_attr(feature = "serde", serde(rename = "802.1x"))]
EightZeroTwoDotOneX,
}