/**
 * The VpnConnection model module.
 * @module Ntnx/VpnConnection
 * @version 4.0.1
 * @class VpnConnection
 * @extends NetworkingBaseModel
 *
 * @param { string } name VPN connection name
 *
 * @param { string } localGatewayReference The local VPN gateway reference
 *
 * @param { string } remoteGatewayReference The remote VPN gateway reference
 *
 * @param { IpsecConfig } ipsecConfig
 *
 * @param { GatewayRole } localGatewayRole
 */
export default class VpnConnection extends NetworkingBaseModel {
    /**
     * Constructs a new <code>VpnConnection</code>.
     * VPN connection
     * @alias module:Ntnx/VpnConnection
     * @extends module:Ntnx/NetworkingBaseModel
     *
     * @param { string } name VPN connection name
     *
     * @param { string } localGatewayReference The local VPN gateway reference
     *
     * @param { string } remoteGatewayReference The remote VPN gateway reference
     *
     * @param { IpsecConfig } ipsecConfig
     *
     * @param { GatewayRole } localGatewayRole
    */
    constructor(name: string, localGatewayReference: string, remoteGatewayReference: string, ipsecConfig: IpsecConfig, localGatewayRole: GatewayRole);
    name: string;
    localGatewayReference: string;
    remoteGatewayReference: string;
    ipsecConfig: IpsecConfig;
    localGatewayRole: string;
    /**
     * Returns VPN connection name
     * @return {string}
     */
    getName(): string;
    /**
     * Sets VPN connection name
     * @param {string} name VPN connection name
     */
    setName(name: string): void;
    /**
     * Returns VPN connection description
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets VPN connection description
     * @param {string} description VPN connection description
     */
    setDescription(description: string): void;
    description: string;
    /**
     * Returns The local VPN gateway reference
     * @return {string}
     */
    getLocalGatewayReference(): string;
    /**
     * Sets The local VPN gateway reference
     * @param {string} localGatewayReference The local VPN gateway reference
     */
    setLocalGatewayReference(localGatewayReference: string): void;
    /**
     * Returns The remote VPN gateway reference
     * @return {string}
     */
    getRemoteGatewayReference(): string;
    /**
     * Sets The remote VPN gateway reference
     * @param {string} remoteGatewayReference The remote VPN gateway reference
     */
    setRemoteGatewayReference(remoteGatewayReference: string): void;
    /**
     * @return {IpsecConfig}
     */
    getIpsecConfig(): IpsecConfig;
    /**
     * @param {IpsecConfig} ipsecConfig
     */
    setIpsecConfig(ipsecConfig: IpsecConfig): void;
    /**
     * @return {DpdConfig}
     */
    getDpdConfig(): DpdConfig;
    /**
     * @param {DpdConfig} dpdConfig
     */
    setDpdConfig(dpdConfig: DpdConfig): void;
    dpdConfig: DpdConfig;
    /**
     * @return {QosConfig}
     */
    getQosConfig(): QosConfig;
    /**
     * @param {QosConfig} qosConfig
     */
    setQosConfig(qosConfig: QosConfig): void;
    qosConfig: QosConfig;
    /**
     * @return {GatewayRole}
     */
    getLocalGatewayRole(): GatewayRole;
    /**
     * @param {GatewayRole} localGatewayRole
     */
    setLocalGatewayRole(localGatewayRole: GatewayRole): void;
    /**
     * Returns Priority assigned to routes received on this connection over eBGP. A higher priority value indicates that the routes are more preferred
     * minimum: 10
     * maximum: 1000
     * @return {Number}
     */
    getDynamicRoutePriority(): number;
    /**
     * Sets Priority assigned to routes received on this connection over eBGP. A higher priority value indicates that the routes are more preferred
     * @param {Number} dynamicRoutePriority Priority assigned to routes received on this connection over eBGP. A higher priority value indicates that the routes are more preferred
     */
    setDynamicRoutePriority(dynamicRoutePriority: number): void;
    dynamicRoutePriority: number;
    /**
     * Returns IP prefixes advertised to the remote gateway over BGP.
     * @return {IPSubnet[]}
     */
    getAdvertisedPrefixes(): IPSubnet[];
    /**
     * Sets IP prefixes advertised to the remote gateway over BGP.
     * @param {IPSubnet[]} advertisedPrefixes IP prefixes advertised to the remote gateway over BGP.
     */
    setAdvertisedPrefixes(advertisedPrefixes: IPSubnet[]): void;
    advertisedPrefixes: IPSubnet[];
    /**
     * Returns IP prefixes learned from the remote gateway over BGP.
     * @return {IPSubnet[]}
     */
    getLearnedPrefixes(): IPSubnet[];
    /**
     * Sets IP prefixes learned from the remote gateway over BGP.
     * @param {IPSubnet[]} learnedPrefixes IP prefixes learned from the remote gateway over BGP.
     */
    setLearnedPrefixes(learnedPrefixes: IPSubnet[]): void;
    learnedPrefixes: IPSubnet[];
    /**
     * @return {Status}
     */
    getIpsecTunnelStatus(): Status;
    /**
     * @param {Status} ipsecTunnelStatus
     */
    setIpsecTunnelStatus(ipsecTunnelStatus: Status): void;
    ipsecTunnelStatus: Status;
    /**
     * @return {Status}
     */
    getEbgpStatus(): Status;
    /**
     * @param {Status} ebgpStatus
     */
    setEbgpStatus(ebgpStatus: Status): void;
    ebgpStatus: Status;
    toJson(forMutation: any): {
        $reserved: any;
        $objectType: string;
        $unknownFields: any;
        tenantId?: string;
        links?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            rel?: string;
            href?: string;
        }[];
        extId?: string;
        metadata?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            categoryIds?: string[];
            projectName?: string;
            projectReferenceId?: string;
            ownerUserName?: string;
            ownerReferenceId?: string;
        };
        ebgpStatus?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            state?: string;
            message?: string;
        };
        ipsecTunnelStatus?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            state?: string;
            message?: string;
        };
        learnedPrefixes?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            ipv6?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                prefixLength?: number;
                ip?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            };
            ipv4?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                prefixLength?: number;
                ip?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            };
        }[];
        advertisedPrefixes?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            ipv6?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                prefixLength?: number;
                ip?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            };
            ipv4?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                prefixLength?: number;
                ip?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            };
        }[];
        dynamicRoutePriority?: number;
        localGatewayRole?: string;
        qosConfig?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            egressLimitMbps?: number;
            ingressLimitMbps?: number;
        };
        dpdConfig?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            timeoutSecs?: number;
            intervalSecs?: number;
            operation?: string;
        };
        ipsecConfig?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            ipsecAuthenticationAlgorithm?: string;
            ipsecEncryptionAlgorithm?: string;
            ikeAuthenticationAlgorithm?: string;
            ikeEncryptionAlgorithm?: string;
            espPfsDhGroupNumber?: number;
            ipsecLifetimeSecs?: number;
            ikeLifetimeSecs?: number;
            remoteAuthenticationId?: string;
            localAuthenticationId?: string;
            remoteVtiIp?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                ipv6?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
                ipv4?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            };
            localVtiIp?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                ipv6?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
                ipv4?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            };
            preSharedKey?: string;
        };
        remoteGatewayReference?: string;
        localGatewayReference?: string;
        description?: string;
        name?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import IpsecConfig from "./IpsecConfig";
import DpdConfig from "./DpdConfig";
import QosConfig from "./QosConfig";
import GatewayRole from "./GatewayRole";
import IPSubnet from "./IPSubnet";
import Status from "./Status";
