/**
 * The LoadBalancerSession model module.
 * @module Ntnx/LoadBalancerSession
 * @version 4.0.1
 * @class LoadBalancerSession
 * @extends NetworkingBaseModel
 *
 * @param { string } name Name of the load balancer session.
 *
 * @param { string } description Description of the load balancer session.
 *
 * @param { string } vpcReference UUID of the Virtual Private Cloud this load balancer session belongs to.
 *
 * @param { Listener } listener
 *
 * @param { Target } targetsConfig
 *
 * @param { HealthCheck } healthCheckConfig
 */
export default class LoadBalancerSession extends NetworkingBaseModel {
    /**
     * Constructs a new <code>LoadBalancerSession</code>.
     * @alias module:Ntnx/LoadBalancerSession
     * @extends module:Ntnx/NetworkingBaseModel
     *
     * @param { string } name Name of the load balancer session.
     *
     * @param { string } description Description of the load balancer session.
     *
     * @param { string } vpcReference UUID of the Virtual Private Cloud this load balancer session belongs to.
     *
     * @param { Listener } listener
     *
     * @param { Target } targetsConfig
     *
     * @param { HealthCheck } healthCheckConfig
    */
    constructor(name: string, description: string, vpcReference: string, listener: Listener, targetsConfig: Target, healthCheckConfig: HealthCheck);
    name: string;
    description: string;
    vpcReference: string;
    listener: Listener;
    targetsConfig: Target;
    healthCheckConfig: HealthCheck;
    /**
     * Returns Name of the load balancer session.
     * @return {string}
     */
    getName(): string;
    /**
     * Sets Name of the load balancer session.
     * @param {string} name Name of the load balancer session.
     */
    setName(name: string): void;
    /**
     * Returns Description of the load balancer session.
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets Description of the load balancer session.
     * @param {string} description Description of the load balancer session.
     */
    setDescription(description: string): void;
    /**
     * @return {LoadBalancerSessionType}
     */
    getType(): LoadBalancerSessionType;
    /**
     * @param {LoadBalancerSessionType} type
     */
    setType(type: LoadBalancerSessionType): void;
    type: string;
    /**
     * Returns UUID of the Virtual Private Cloud this load balancer session belongs to.
     * @return {string}
     */
    getVpcReference(): string;
    /**
     * Sets UUID of the Virtual Private Cloud this load balancer session belongs to.
     * @param {string} vpcReference UUID of the Virtual Private Cloud this load balancer session belongs to.
     */
    setVpcReference(vpcReference: string): void;
    /**
     * @return {Listener}
     */
    getListener(): Listener;
    /**
     * @param {Listener} listener
     */
    setListener(listener: Listener): void;
    /**
     * @return {Algorithm}
     */
    getAlgorithm(): Algorithm;
    /**
     * @param {Algorithm} algorithm
     */
    setAlgorithm(algorithm: Algorithm): void;
    algorithm: string;
    /**
     * @return {Target}
     */
    getTargetsConfig(): Target;
    /**
     * @param {Target} targetsConfig
     */
    setTargetsConfig(targetsConfig: Target): void;
    /**
     * @return {HealthCheck}
     */
    getHealthCheckConfig(): HealthCheck;
    /**
     * @param {HealthCheck} healthCheckConfig
     */
    setHealthCheckConfig(healthCheckConfig: HealthCheck): void;
    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;
            /**
             * @return {Target}
             */
            $unknownFields: any;
            categoryIds?: string[];
            projectName?: string;
            projectReferenceId?: string;
            ownerUserName?: string;
            ownerReferenceId?: string;
        };
        healthCheckConfig?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            failureThreshold?: number;
            successThreshold?: number;
            timeoutSecs?: number;
            intervalSecs?: number;
        };
        targetsConfig?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            nicTargets?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                health?: string;
                vmReference?: string;
                port?: number;
                virtualNicReference?: string;
            }[];
        };
        algorithm?: string;
        listener?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            portRanges?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                endPort?: number;
                startPort?: number;
            }[];
            protocol?: string;
            virtualIP?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                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;
                    };
                };
                assignmentType?: string;
                subnetReference?: string;
            };
        };
        vpcReference?: string;
        type?: string;
        description?: string;
        name?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import Listener from "./Listener";
import Target from "./Target";
import HealthCheck from "./HealthCheck";
import LoadBalancerSessionType from "./LoadBalancerSessionType";
import Algorithm from "./Algorithm";
