/**
 * The VirtualSwitch model module.
 * @module Ntnx/VirtualSwitch
 * @version 4.0.1
 * @class VirtualSwitch
 * @extends NetworkingBaseModel
 *
 * @param { string } name User-visible Virtual Switch name
 *
 * @param { BondModeType } bondMode
 *
 * @param { Cluster[] } clusters Cluster configuration list
 */
export default class VirtualSwitch extends NetworkingBaseModel {
    /**
     * Constructs a new <code>VirtualSwitch</code>.
     * Schema to configure a virtual switch
     * @alias module:Ntnx/VirtualSwitch
     * @extends module:Ntnx/NetworkingBaseModel
     *
     * @param { string } name User-visible Virtual Switch name
     *
     * @param { BondModeType } bondMode
     *
     * @param { Cluster[] } clusters Cluster configuration list
    */
    constructor(name: string, bondMode: BondModeType, clusters: Cluster[]);
    name: string;
    bondMode: string;
    clusters: Cluster[];
    /**
     * Returns User-visible Virtual Switch name
     * @return {string}
     */
    getName(): string;
    /**
     * Sets User-visible Virtual Switch name
     * @param {string} name User-visible Virtual Switch name
     */
    setName(name: string): void;
    /**
     * Returns Input body to configure a Virtual Switch
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets Input body to configure a Virtual Switch
     * @param {string} description Input body to configure a Virtual Switch
     */
    setDescription(description: string): void;
    description: string;
    /**
     * Returns Indicates whether it is a default Virtual Switch which cannot be deleted
     * @return {boolean}
     */
    getIsDefault(): boolean;
    /**
     * Sets Indicates whether it is a default Virtual Switch which cannot be deleted
     * @param {boolean} isDefault Indicates whether it is a default Virtual Switch which cannot be deleted
     */
    setIsDefault(isDefault: boolean): void;
    isDefault: boolean;
    /**
     * Returns When true, the node is not put in maintenance mode during the create/update operation.
     * @return {boolean}
     */
    getIsQuickMode(): boolean;
    /**
     * Sets When true, the node is not put in maintenance mode during the create/update operation.
     * @param {boolean} isQuickMode When true, the node is not put in maintenance mode during the create/update operation.
     */
    setIsQuickMode(isQuickMode: boolean): void;
    isQuickMode: boolean;
    /**
     * Returns When true, virtual switch configuration is not deployed on every node.
     * @return {boolean}
     */
    getHasDeploymentError(): boolean;
    /**
     * Sets When true, virtual switch configuration is not deployed on every node.
     * @param {boolean} hasDeploymentError When true, virtual switch configuration is not deployed on every node.
     */
    setHasDeploymentError(hasDeploymentError: boolean): void;
    hasDeploymentError: boolean;
    /**
     * Returns MTU
     * @return {Number}
     */
    getMtu(): number;
    /**
     * Sets MTU
     * @param {Number} mtu MTU
     */
    setMtu(mtu: number): void;
    mtu: number;
    /**
     * @return {BondModeType}
     */
    getBondMode(): BondModeType;
    /**
     * @param {BondModeType} bondMode
     */
    setBondMode(bondMode: BondModeType): void;
    /**
     * Returns Cluster configuration list
     * @return {Cluster[]}
     */
    getClusters(): Cluster[];
    /**
     * Sets Cluster configuration list
     * @param {Cluster[]} clusters Cluster configuration list
     */
    setClusters(clusters: Cluster[]): void;
    /**
     * @return {IgmpSpec}
     */
    getIgmpSpec(): IgmpSpec;
    /**
     * @param {IgmpSpec} igmpSpec
     */
    setIgmpSpec(igmpSpec: IgmpSpec): void;
    igmpSpec: IgmpSpec;
    /**
     * @return {OwnerType}
     */
    getOwnerType(): OwnerType;
    /**
     * @param {OwnerType} ownerType
     */
    setOwnerType(ownerType: OwnerType): void;
    ownerType: string;
    /**
     * Returns Indicates whether the virtual switch's update is being processed
     * @return {boolean}
     */
    getHasUpdateInProgress(): boolean;
    /**
     * Sets Indicates whether the virtual switch's update is being processed
     * @param {boolean} hasUpdateInProgress Indicates whether the virtual switch's update is being processed
     */
    setHasUpdateInProgress(hasUpdateInProgress: boolean): void;
    hasUpdateInProgress: boolean;
    /**
     * Returns Indicates whether the virtual switch's delete is being processed
     * @return {boolean}
     */
    getHasDeleteInProgress(): boolean;
    /**
     * Sets Indicates whether the virtual switch's delete is being processed
     * @param {boolean} hasDeleteInProgress Indicates whether the virtual switch's delete is being processed
     */
    setHasDeleteInProgress(hasDeleteInProgress: boolean): void;
    hasDeleteInProgress: boolean;
    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;
        };
        hasDeleteInProgress?: boolean;
        hasUpdateInProgress?: boolean;
        ownerType?: string;
        igmpSpec?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            snoopingTimeout?: number;
            querierSpec?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                vlanIdList?: integer[];
                isQuerierEnabled?: boolean;
            };
            isSnoopingEnabled?: boolean;
        };
        clusters?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            gatewayIpAddress?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                prefixLength?: number;
                value?: string;
            };
            hosts?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                routeTable?: number;
                ipAddress?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    ip?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                hostNics?: string[];
                internalBridgeName?: string;
                extId?: string;
            }[];
            extId?: string;
        }[];
        bondMode?: string;
        mtu?: number;
        hasDeploymentError?: boolean;
        isQuickMode?: boolean;
        isDefault?: boolean;
        description?: string;
        name?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import Cluster from "./Cluster";
import BondModeType from "./BondModeType";
import IgmpSpec from "./IgmpSpec";
import OwnerType from "./OwnerType";
