import * as pulumi from "@pulumi/pulumi";
/**
 * Use this data source to get an available public NAT gateway within HuaweiCloud.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const gatewayName = config.requireObject("gatewayName");
 * const test = huaweicloud.Nat.getGateway({
 *     name: gatewayName,
 * });
 * ```
 */
export declare function getGateway(args?: GetGatewayArgs, opts?: pulumi.InvokeOptions): Promise<GetGatewayResult>;
/**
 * A collection of arguments for invoking getGateway.
 */
export interface GetGatewayArgs {
    /**
     * Specifies the description of the NAT gateway. The value contains 0 to 255
     * characters, and angle brackets (<)
     * and (>) are not allowed.
     */
    description?: string;
    /**
     * Specifies the enterprise project ID of the NAT gateway.
     */
    enterpriseProjectId?: string;
    /**
     * Specifies the ID of the NAT gateway.
     */
    id?: string;
    /**
     * @deprecated use subnet_id instead
     */
    internalNetworkId?: string;
    /**
     * Specifies the public NAT gateway name.
     * The valid length is limited from `1` to `64`, only letters, digits, hyphens (-) and underscores (_) are allowed.
     */
    name?: string;
    /**
     * Specifies the region in which to create the NAT gateway resource. If omitted, the
     * provider-level region will be used.
     */
    region?: string;
    /**
     * @deprecated use vpc_id instead
     */
    routerId?: string;
    /**
     * The public NAT gateway type. The valid values are as follows:
     * + **1**: Small type, which supports up to `10,000` SNAT connections.
     * + **2**: Medium type, which supports up to `50,000` SNAT connections.
     * + **3**: Large type, which supports up to `200,000` SNAT connections.
     * + **4**: Extra-large type, which supports up to `1,000,000` SNAT connections.
     */
    spec?: string;
    /**
     * Specifies the status of the NAT gateway.
     */
    status?: string;
    /**
     * Specifies the subnet ID of the downstream interface (the next hop of the DVR) of the
     * public NAT gateway.
     */
    subnetId?: string;
    /**
     * Specifies the ID of the VPC this public NAT gateway belongs to.
     */
    vpcId?: string;
}
/**
 * A collection of values returned by getGateway.
 */
export interface GetGatewayResult {
    readonly description: string;
    readonly enterpriseProjectId: string;
    readonly id: string;
    /**
     * @deprecated use subnet_id instead
     */
    readonly internalNetworkId?: string;
    readonly name: string;
    readonly region: string;
    /**
     * @deprecated use vpc_id instead
     */
    readonly routerId?: string;
    readonly spec: string;
    readonly status: string;
    readonly subnetId: string;
    readonly vpcId: string;
}
export declare function getGatewayOutput(args?: GetGatewayOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetGatewayResult>;
/**
 * A collection of arguments for invoking getGateway.
 */
export interface GetGatewayOutputArgs {
    /**
     * Specifies the description of the NAT gateway. The value contains 0 to 255
     * characters, and angle brackets (<)
     * and (>) are not allowed.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project ID of the NAT gateway.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the NAT gateway.
     */
    id?: pulumi.Input<string>;
    /**
     * @deprecated use subnet_id instead
     */
    internalNetworkId?: pulumi.Input<string>;
    /**
     * Specifies the public NAT gateway name.
     * The valid length is limited from `1` to `64`, only letters, digits, hyphens (-) and underscores (_) are allowed.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the region in which to create the NAT gateway resource. If omitted, the
     * provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * @deprecated use vpc_id instead
     */
    routerId?: pulumi.Input<string>;
    /**
     * The public NAT gateway type. The valid values are as follows:
     * + **1**: Small type, which supports up to `10,000` SNAT connections.
     * + **2**: Medium type, which supports up to `50,000` SNAT connections.
     * + **3**: Large type, which supports up to `200,000` SNAT connections.
     * + **4**: Extra-large type, which supports up to `1,000,000` SNAT connections.
     */
    spec?: pulumi.Input<string>;
    /**
     * Specifies the status of the NAT gateway.
     */
    status?: pulumi.Input<string>;
    /**
     * Specifies the subnet ID of the downstream interface (the next hop of the DVR) of the
     * public NAT gateway.
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the VPC this public NAT gateway belongs to.
     */
    vpcId?: pulumi.Input<string>;
}
