// SPDX-License-Identifier: Apache-2.0

mod active_connection;
mod connection;
mod convert;
#[cfg(feature = "query_apply")]
mod dbus;
mod device;
#[cfg(feature = "query_apply")]
mod dns;
mod error;
#[cfg(feature = "query_apply")]
mod lldp;
#[cfg(feature = "query_apply")]
mod nm_api;

#[cfg(feature = "gen_conf")]
mod gen_conf;
#[cfg(feature = "query_apply")]
mod query_apply;

pub use self::active_connection::{
    NmActiveConnection, NM_ACTIVATION_STATE_FLAG_EXTERNAL,
};
pub use self::connection::{
    NmConnection, NmConnectionMultiConnect, NmIfaceType, NmIpRoute,
    NmIpRouteRule, NmIpRouteRuleAction, NmRange, NmSetting8021X, NmSettingBond,
    NmSettingBondPort, NmSettingBridge, NmSettingBridgePort,
    NmSettingBridgeVlanRange, NmSettingConnection, NmSettingEthtool,
    NmSettingInfiniBand, NmSettingIp, NmSettingIpMethod, NmSettingIpVlan,
    NmSettingLoopback, NmSettingMacSec, NmSettingMacVlan, NmSettingOvsBridge,
    NmSettingOvsDpdk, NmSettingOvsExtIds, NmSettingOvsIface,
    NmSettingOvsOtherConfig, NmSettingOvsPatch, NmSettingOvsPort,
    NmSettingSriov, NmSettingSriovVf, NmSettingSriovVfVlan, NmSettingUser,
    NmSettingVeth, NmSettingVlan, NmSettingVlanFlag, NmSettingVpn,
    NmSettingVrf, NmSettingVxlan, NmSettingWired, NmSettingsConnectionFlag,
    NmVlanProtocol,
};
pub use self::device::{NmDevice, NmDeviceState, NmDeviceStateReason};
#[cfg(feature = "query_apply")]
pub use self::dns::{NmDnsEntry, NmGlobalDnsConfig};
pub use self::error::{
    ErrorKind, NmConnectionError, NmDeviceError, NmError, NmManagerError,
    NmSettingError,
};
#[cfg(feature = "query_apply")]
pub use self::lldp::{
    NmLldpNeighbor, NmLldpNeighbor8021Ppvid, NmLldpNeighbor8021Vlan,
    NmLldpNeighbor8023MacPhyConf, NmLldpNeighbor8023PowerViaMdi,
    NmLldpNeighborMgmtAddr,
};
#[cfg(feature = "query_apply")]
pub use self::nm_api::{NmApi, NmVersion, NmVersionInfo};

pub(crate) use self::convert::ToDbusValue;
#[cfg(feature = "gen_conf")]
pub(crate) use self::gen_conf::ToKeyfile;
