import * as pulumi from "@pulumi/pulumi";
/**
 * Gets information about a Public Gateway PAT rule. For further information, please see the
 * [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-pat-rules-list-pat-rules).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumi/scaleway";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const sg01 = new scaleway.instance.SecurityGroup("sg01", {
 *     inboundDefaultPolicy: "drop",
 *     outboundDefaultPolicy: "accept",
 *     inboundRules: [{
 *         action: "accept",
 *         port: 22,
 *         protocol: "TCP",
 *     }],
 * });
 * const srv01 = new scaleway.instance.Server("srv01", {
 *     name: "my-server",
 *     type: "PLAY2-NANO",
 *     image: "ubuntu_jammy",
 *     securityGroupId: sg01.id,
 * });
 * const pn01 = new scaleway.network.PrivateNetwork("pn01", {name: "my-pn"});
 * const pnic01 = new scaleway.instance.PrivateNic("pnic01", {
 *     serverId: srv01.id,
 *     privateNetworkId: pn01.id,
 * });
 * const dhcp01 = new scaleway.network.PublicGatewayDhcp("dhcp01", {subnet: "192.168.0.0/24"});
 * const ip01 = new scaleway.network.PublicGatewayIp("ip01", {});
 * const pg01 = new scaleway.network.PublicGateway("pg01", {
 *     name: "my-pg",
 *     type: "VPC-GW-S",
 *     ipId: ip01.id,
 * });
 * const gn01 = new scaleway.network.GatewayNetwork("gn01", {
 *     gatewayId: pg01.id,
 *     privateNetworkId: pn01.id,
 *     dhcpId: dhcp01.id,
 *     cleanupDhcp: true,
 *     enableMasquerade: true,
 * });
 * const rsv01 = new scaleway.network.PublicGatewayDhcpReservation("rsv01", {
 *     gatewayNetworkId: gn01.id,
 *     macAddress: pnic01.macAddress,
 *     ipAddress: "192.168.0.7",
 * });
 * const pat01 = new scaleway.network.PublicGatewayPatRule("pat01", {
 *     gatewayId: pg01.id,
 *     privateIp: rsv01.ipAddress,
 *     privatePort: 22,
 *     publicPort: 2202,
 *     protocol: "tcp",
 * });
 * const main = scaleway.network.getPublicGatewayPatRuleOutput({
 *     patRuleId: pat01.id,
 * });
 * ```
 */
export declare function getPublicGatewayPatRule(args: GetPublicGatewayPatRuleArgs, opts?: pulumi.InvokeOptions): Promise<GetPublicGatewayPatRuleResult>;
/**
 * A collection of arguments for invoking getPublicGatewayPatRule.
 */
export interface GetPublicGatewayPatRuleArgs {
    /**
     * The ID of the PAT rule to retrieve
     */
    patRuleId: string;
    /**
     * `zone`) The zone in which
     * the rule exists.
     */
    zone?: string;
}
/**
 * A collection of values returned by getPublicGatewayPatRule.
 */
export interface GetPublicGatewayPatRuleResult {
    readonly createdAt: string;
    /**
     * The ID of the Public Gateway.
     */
    readonly gatewayId: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly organizationId: string;
    readonly patRuleId: string;
    /**
     * The private IP address to forward data to.
     */
    readonly privateIp: string;
    /**
     * The private port to translate to.
     */
    readonly privatePort: number;
    /**
     * The protocol the rule should apply to. Possible values are `both`, `tcp` and `udp`.
     */
    readonly protocol: string;
    /**
     * The public port to listen on.
     */
    readonly publicPort: number;
    readonly updatedAt: string;
    readonly zone?: string;
}
/**
 * Gets information about a Public Gateway PAT rule. For further information, please see the
 * [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-pat-rules-list-pat-rules).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumi/scaleway";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const sg01 = new scaleway.instance.SecurityGroup("sg01", {
 *     inboundDefaultPolicy: "drop",
 *     outboundDefaultPolicy: "accept",
 *     inboundRules: [{
 *         action: "accept",
 *         port: 22,
 *         protocol: "TCP",
 *     }],
 * });
 * const srv01 = new scaleway.instance.Server("srv01", {
 *     name: "my-server",
 *     type: "PLAY2-NANO",
 *     image: "ubuntu_jammy",
 *     securityGroupId: sg01.id,
 * });
 * const pn01 = new scaleway.network.PrivateNetwork("pn01", {name: "my-pn"});
 * const pnic01 = new scaleway.instance.PrivateNic("pnic01", {
 *     serverId: srv01.id,
 *     privateNetworkId: pn01.id,
 * });
 * const dhcp01 = new scaleway.network.PublicGatewayDhcp("dhcp01", {subnet: "192.168.0.0/24"});
 * const ip01 = new scaleway.network.PublicGatewayIp("ip01", {});
 * const pg01 = new scaleway.network.PublicGateway("pg01", {
 *     name: "my-pg",
 *     type: "VPC-GW-S",
 *     ipId: ip01.id,
 * });
 * const gn01 = new scaleway.network.GatewayNetwork("gn01", {
 *     gatewayId: pg01.id,
 *     privateNetworkId: pn01.id,
 *     dhcpId: dhcp01.id,
 *     cleanupDhcp: true,
 *     enableMasquerade: true,
 * });
 * const rsv01 = new scaleway.network.PublicGatewayDhcpReservation("rsv01", {
 *     gatewayNetworkId: gn01.id,
 *     macAddress: pnic01.macAddress,
 *     ipAddress: "192.168.0.7",
 * });
 * const pat01 = new scaleway.network.PublicGatewayPatRule("pat01", {
 *     gatewayId: pg01.id,
 *     privateIp: rsv01.ipAddress,
 *     privatePort: 22,
 *     publicPort: 2202,
 *     protocol: "tcp",
 * });
 * const main = scaleway.network.getPublicGatewayPatRuleOutput({
 *     patRuleId: pat01.id,
 * });
 * ```
 */
export declare function getPublicGatewayPatRuleOutput(args: GetPublicGatewayPatRuleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPublicGatewayPatRuleResult>;
/**
 * A collection of arguments for invoking getPublicGatewayPatRule.
 */
export interface GetPublicGatewayPatRuleOutputArgs {
    /**
     * The ID of the PAT rule to retrieve
     */
    patRuleId: pulumi.Input<string>;
    /**
     * `zone`) The zone in which
     * the rule exists.
     */
    zone?: pulumi.Input<string>;
}
