import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Get information on a DigitalOcean Firewall.
 *
 * ## Example Usage
 *
 * Get the firewall:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as digitalocean from "@pulumi/digitalocean";
 *
 * const example = digitalocean.getFirewall({
 *     firewallId: "1df48973-6eef-4214-854f-fa7726e7e583",
 * });
 * export const exampleFirewallName = example.then(example => example.name);
 * ```
 */
export declare function getFirewall(args: GetFirewallArgs, opts?: pulumi.InvokeOptions): Promise<GetFirewallResult>;
/**
 * A collection of arguments for invoking getFirewall.
 */
export interface GetFirewallArgs {
    /**
     * The list of the IDs of the Droplets assigned to
     * the Firewall.
     */
    dropletIds?: number[];
    /**
     * The ID of the firewall to retrieve information
     * about.
     */
    firewallId: string;
    inboundRules?: inputs.GetFirewallInboundRule[];
    outboundRules?: inputs.GetFirewallOutboundRule[];
    /**
     * The names of the Tags assigned to the Firewall.
     */
    tags?: string[];
}
/**
 * A collection of values returned by getFirewall.
 */
export interface GetFirewallResult {
    /**
     * A time value given in ISO8601 combined date and time format
     * that represents when the Firewall was created.
     */
    readonly createdAt: string;
    /**
     * The list of the IDs of the Droplets assigned to
     * the Firewall.
     */
    readonly dropletIds: number[];
    readonly firewallId: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly inboundRules: outputs.GetFirewallInboundRule[];
    /**
     * The name of the Firewall.
     */
    readonly name: string;
    readonly outboundRules: outputs.GetFirewallOutboundRule[];
    /**
     * A set of object containing the fields, `dropletId`,
     * `removing`, and `status`.  It is provided to detail exactly which Droplets
     * are having their security policies updated.  When empty, all changes
     * have been successfully applied.
     */
    readonly pendingChanges: outputs.GetFirewallPendingChange[];
    /**
     * A status string indicating the current state of the Firewall.
     * This can be "waiting", "succeeded", or "failed".
     */
    readonly status: string;
    /**
     * The names of the Tags assigned to the Firewall.
     */
    readonly tags: string[];
}
/**
 * Get information on a DigitalOcean Firewall.
 *
 * ## Example Usage
 *
 * Get the firewall:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as digitalocean from "@pulumi/digitalocean";
 *
 * const example = digitalocean.getFirewall({
 *     firewallId: "1df48973-6eef-4214-854f-fa7726e7e583",
 * });
 * export const exampleFirewallName = example.then(example => example.name);
 * ```
 */
export declare function getFirewallOutput(args: GetFirewallOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetFirewallResult>;
/**
 * A collection of arguments for invoking getFirewall.
 */
export interface GetFirewallOutputArgs {
    /**
     * The list of the IDs of the Droplets assigned to
     * the Firewall.
     */
    dropletIds?: pulumi.Input<pulumi.Input<number>[]>;
    /**
     * The ID of the firewall to retrieve information
     * about.
     */
    firewallId: pulumi.Input<string>;
    inboundRules?: pulumi.Input<pulumi.Input<inputs.GetFirewallInboundRuleArgs>[]>;
    outboundRules?: pulumi.Input<pulumi.Input<inputs.GetFirewallOutboundRuleArgs>[]>;
    /**
     * The names of the Tags assigned to the Firewall.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
}
