/**
 * The BgpSession model module.
 * @module Ntnx/BgpSession
 * @version 4.0.1
 * @class BgpSession
 * @extends NetworkingBaseModel
 *
 * @param { string } name BGP session name.
 *
 * @param { string } localGatewayReference Local BGP gateway reference.
 *
 * @param { string } remoteGatewayReference Remote BGP gateway reference.
 */
export default class BgpSession extends NetworkingBaseModel {
    /**
     * Constructs a new <code>BgpSession</code>.
     * BGP session.
     * @alias module:Ntnx/BgpSession
     * @extends module:Ntnx/NetworkingBaseModel
     *
     * @param { string } name BGP session name.
     *
     * @param { string } localGatewayReference Local BGP gateway reference.
     *
     * @param { string } remoteGatewayReference Remote BGP gateway reference.
    */
    constructor(name: string, localGatewayReference: string, remoteGatewayReference: string);
    name: string;
    localGatewayReference: string;
    remoteGatewayReference: string;
    /**
     * Returns BGP session name.
     * @return {string}
     */
    getName(): string;
    /**
     * Sets BGP session name.
     * @param {string} name BGP session name.
     */
    setName(name: string): void;
    /**
     * Returns BGP session description.
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets BGP session description.
     * @param {string} description BGP session description.
     */
    setDescription(description: string): void;
    description: string;
    /**
     * Returns Local BGP gateway reference.
     * @return {string}
     */
    getLocalGatewayReference(): string;
    /**
     * Sets Local BGP gateway reference.
     * @param {string} localGatewayReference Local BGP gateway reference.
     */
    setLocalGatewayReference(localGatewayReference: string): void;
    /**
     * Returns Remote BGP gateway reference.
     * @return {string}
     */
    getRemoteGatewayReference(): string;
    /**
     * Sets Remote BGP gateway reference.
     * @param {string} remoteGatewayReference Remote BGP gateway reference.
     */
    setRemoteGatewayReference(remoteGatewayReference: string): void;
    /**
     * @return {IPAddress}
     */
    getLocalGatewayInterfaceIpAddress(): IPAddress;
    /**
     * @param {IPAddress} localGatewayInterfaceIpAddress
     */
    setLocalGatewayInterfaceIpAddress(localGatewayInterfaceIpAddress: IPAddress): void;
    localGatewayInterfaceIpAddress: IPAddress;
    /**
     * Returns Priority assigned to routes received over this BGP session.
     * minimum: 300
     * maximum: 1000
     * @return {Number}
     */
    getDynamicRoutePriority(): number;
    /**
     * Sets Priority assigned to routes received over this BGP session.
     * @param {Number} dynamicRoutePriority Priority assigned to routes received over this BGP session.
     */
    setDynamicRoutePriority(dynamicRoutePriority: number): void;
    dynamicRoutePriority: number;
    /**
     * Returns BGP password
     * @return {String}
     */
    getPassword(): string;
    /**
     * Sets BGP password
     * @param {String} password BGP password
     */
    setPassword(password: string): void;
    password: string;
    /**
     * @return {Status}
     */
    getStatus(): Status;
    /**
     * @param {Status} status
     */
    setStatus(status: Status): void;
    status: Status;
    /**
     * @return {Gateway}
     */
    getLocalGateway(): Gateway;
    /**
     * @param {Gateway} localGateway
     */
    setLocalGateway(localGateway: Gateway): void;
    localGateway: Gateway;
    /**
     * @return {Gateway}
     */
    getRemoteGateway(): Gateway;
    /**
     * @param {Gateway} remoteGateway
     */
    setRemoteGateway(remoteGateway: Gateway): void;
    remoteGateway: Gateway;
    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;
        };
        remoteGateway?: {
            $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;
            };
            vm?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                name?: string;
            };
            vpc?: {
                $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;
                };
                externallyRoutablePrefixes?: {
                    $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;
                        };
                    };
                }[];
                externalRoutingDomainReference?: string;
                externalSubnets?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    activeGatewayCount?: number;
                    activeGatewayNodes?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        nodeIpAddress?: {
                            $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;
                            };
                        };
                        nodeId?: string;
                    }[];
                    gatewayNodes?: string[];
                    externalIps?: {
                        $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;
                        };
                    }[];
                    subnetReference?: string;
                }[];
                snatIps?: {
                    $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;
                    };
                }[];
                commonDhcpOptions?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    domainNameServers?: {
                        $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;
                        };
                    }[];
                };
                vpcType?: string;
                description?: string;
                name?: string;
            };
            status?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                state?: string;
                message?: string;
            };
            services?: any;
            gatewayDeviceVendor?: string;
            deployment?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                vcenterDatastoreName?: string;
                interfaces?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    mtu?: number;
                    macAddress?: string;
                    defaultGatewayAddress?: {
                        $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;
                        };
                    };
                    ipAddress?: {
                        $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;
                        };
                    };
                    subnetReference?: string;
                }[];
                managementInterface?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    mtu?: number;
                    defaultGateway?: {
                        $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;
                        };
                    };
                    address?: {
                        $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;
                        };
                    };
                    vlanId?: number;
                    subnetReference?: string;
                };
                clusterReference?: string;
            };
            vmReference?: string;
            supportedSoftwareVersion?: string;
            installedSoftwareVersion?: string;
            cloudNetworkReference?: string;
            vpcReference?: string;
            description?: string;
            name?: string;
        };
        localGateway?: {
            $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;
            };
            vm?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                name?: string;
            };
            vpc?: {
                $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;
                };
                externallyRoutablePrefixes?: {
                    $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;
                        };
                    };
                }[];
                externalRoutingDomainReference?: string;
                externalSubnets?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    activeGatewayCount?: number;
                    activeGatewayNodes?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        nodeIpAddress?: {
                            $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;
                            };
                        };
                        nodeId?: string;
                    }[];
                    gatewayNodes?: string[];
                    externalIps?: {
                        $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;
                        };
                    }[];
                    subnetReference?: string;
                }[];
                snatIps?: {
                    $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;
                    };
                }[];
                commonDhcpOptions?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    domainNameServers?: {
                        $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;
                        };
                    }[];
                };
                vpcType?: string;
                description?: string;
                name?: string;
            };
            status?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                state?: string;
                message?: string;
            };
            services?: any;
            gatewayDeviceVendor?: string;
            deployment?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                vcenterDatastoreName?: string;
                interfaces?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    mtu?: number;
                    macAddress?: string;
                    defaultGatewayAddress?: {
                        $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;
                        };
                    };
                    ipAddress?: {
                        $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;
                        };
                    };
                    subnetReference?: string;
                }[];
                managementInterface?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    mtu?: number;
                    defaultGateway?: {
                        $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;
                        };
                    };
                    address?: {
                        $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;
                        };
                    };
                    vlanId?: number;
                    subnetReference?: string;
                };
                clusterReference?: string;
            };
            vmReference?: string;
            supportedSoftwareVersion?: string;
            installedSoftwareVersion?: string;
            cloudNetworkReference?: string;
            vpcReference?: string;
            description?: string;
            name?: string;
        };
        status?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            state?: string;
            message?: string;
        };
        password?: string;
        dynamicRoutePriority?: number;
        localGatewayInterfaceIpAddress?: {
            $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;
            };
        };
        remoteGatewayReference?: string;
        localGatewayReference?: string;
        description?: string;
        name?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import IPAddress from "../../../common/v1/config/IPAddress";
import Status from "./Status";
import Gateway from "./Gateway";
