/**
 * The FlowGateway model module.
 * @module Ntnx/FlowGateway
 * @version 4.0.1
 * @class FlowGateway
 * @extends NetworkingBaseModel
 *
 * @param { string } chassisUuid Chassis UUID of the Atlas Flow Gateway.
 *
 * @param { AzureExternalSubnetBinding[] } azureExternalSubnetBindingList List of bindings of the Atlas Flow Gateway external subnet with the Azure external subnet.
 */
export default class FlowGateway extends NetworkingBaseModel {
    /**
     * Constructs a new <code>FlowGateway</code>.
     * @alias module:Ntnx/FlowGateway
     * @extends module:Ntnx/NetworkingBaseModel
     *
     * @param { string } chassisUuid Chassis UUID of the Atlas Flow Gateway.
     *
     * @param { AzureExternalSubnetBinding[] } azureExternalSubnetBindingList List of bindings of the Atlas Flow Gateway external subnet with the Azure external subnet.
    */
    constructor(chassisUuid: string, azureExternalSubnetBindingList: AzureExternalSubnetBinding[]);
    chassisUuid: string;
    azureExternalSubnetBindingList: AzureExternalSubnetBinding[];
    /**
     * Returns Chassis UUID of the Atlas Flow Gateway.
     * @return {string}
     */
    getChassisUuid(): string;
    /**
     * Sets Chassis UUID of the Atlas Flow Gateway.
     * @param {string} chassisUuid Chassis UUID of the Atlas Flow Gateway.
     */
    setChassisUuid(chassisUuid: string): void;
    /**
     * Returns List of bindings of the Atlas Flow Gateway external subnet with the Azure external subnet.
     * @return {AzureExternalSubnetBinding[]}
     */
    getAzureExternalSubnetBindingList(): AzureExternalSubnetBinding[];
    /**
     * Sets List of bindings of the Atlas Flow Gateway external subnet with the Azure external subnet.
     * @param {AzureExternalSubnetBinding[]} azureExternalSubnetBindingList List of bindings of the Atlas Flow Gateway external subnet with the Azure external subnet.
     */
    setAzureExternalSubnetBindingList(azureExternalSubnetBindingList: AzureExternalSubnetBinding[]): void;
    /**
     * @return {FlowGatewayStatus}
     */
    getGatewayStatus(): FlowGatewayStatus;
    /**
     * @param {FlowGatewayStatus} gatewayStatus
     */
    setGatewayStatus(gatewayStatus: FlowGatewayStatus): void;
    gatewayStatus: FlowGatewayStatus;
    /**
     * Returns Version of the OVN controller
     * @return {string}
     */
    getOvnControllerVersion(): string;
    /**
     * Sets Version of the OVN controller
     * @param {string} ovnControllerVersion Version of the OVN controller
     */
    setOvnControllerVersion(ovnControllerVersion: string): void;
    ovnControllerVersion: string;
    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;
        };
        ovnControllerVersion?: string;
        gatewayStatus?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any; /**
            * Converts a given snake_case string to camelCase.
            * @param {string} snakeStr - The input string in snake_case format.
            * @returns {string} - The converted string in camelCase format.
            */
            state?: string;
            detail?: string;
        };
        azureExternalSubnetBindingList?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            resourceGroupId?: string;
            eniId?: string;
            eniPrimaryIp?: {
                $reserved: any; /**
                * Converts a given snake_case string to camelCase.
                * @param {string} snakeStr - The input string in snake_case format.
                * @returns {string} - The converted string in camelCase format.
                */
                $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;
                };
            };
            peerToPeerNetworkPrefix?: {
                $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;
                    };
                };
            };
            azureExternalNetworkPrefix?: {
                $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;
                    };
                };
            };
            routerPortMac?: string;
        }[];
        chassisUuid?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import AzureExternalSubnetBinding from "./AzureExternalSubnetBinding";
import FlowGatewayStatus from "./FlowGatewayStatus";
