import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Network Firewall resource in Oracle Cloud Infrastructure Network Firewall service.
 *
 * Gets a NetworkFirewall by identifier
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testNetworkFirewall = oci.networkfirewall.getNetworkFirewall({
 *     networkFirewallId: testNetworkFirewallOciNetworkFirewallNetworkFirewall.id,
 * });
 * ```
 */
export declare function getNetworkFirewall(args: GetNetworkFirewallArgs, opts?: pulumi.InvokeOptions): Promise<GetNetworkFirewallResult>;
/**
 * A collection of arguments for invoking getNetworkFirewall.
 */
export interface GetNetworkFirewallArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Network Firewall resource.
     */
    networkFirewallId: string;
}
/**
 * A collection of values returned by getNetworkFirewall.
 */
export interface GetNetworkFirewallResult {
    /**
     * Availability Domain where Network Firewall instance is created. To get a list of availability domains for a tenancy, use the [ListAvailabilityDomains](https://docs.cloud.oracle.com/iaas/api/#/en/identity/20160918/AvailabilityDomain/ListAvailabilityDomains) operation. Example: `kIdk:PHX-AD-1`
     */
    readonly availabilityDomain: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the Network Firewall.
     */
    readonly compartmentId: string;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: {
        [key: string]: string;
    };
    /**
     * A user-friendly name for the Network Firewall. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    readonly displayName: string;
    /**
     * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: {
        [key: string]: string;
    };
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Network Firewall resource.
     */
    readonly id: string;
    /**
     * IPv4 address for the Network Firewall.
     */
    readonly ipv4address: string;
    /**
     * IPv6 address for the Network Firewall.
     */
    readonly ipv6address: string;
    /**
     * A message describing the current state in more detail. For example, it can be used to provide actionable information for a resource in 'FAILED' state.
     */
    readonly lifecycleDetails: string;
    /**
     * Response to a request to configure Network Address Translation (NAT) on a firewall. To perform NAT on traffic passing the private NAT IPs to the firewall, the attached network firewall policy must also have NAT rules and NAT configuration must be enabled. If NAT configuration is enabled and the attached firewall policy does not contain NAT rule then NAT IPs will get allocated but NAT will not be performed on any traffic.
     */
    readonly natConfigurations: outputs.NetworkFirewall.GetNetworkFirewallNatConfiguration[];
    readonly networkFirewallId: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Network Firewall Policy.
     */
    readonly networkFirewallPolicyId: string;
    /**
     * An array of network security groups [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) associated with the Network Firewall.
     */
    readonly networkSecurityGroupIds: string[];
    /**
     * The shape of a firewall to determine the bandwidth that the firewall allows.
     */
    readonly shape: string;
    /**
     * The current state of the Network Firewall.
     */
    readonly state: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet associated with the Network Firewall.
     */
    readonly subnetId: string;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: {
        [key: string]: string;
    };
    /**
     * The time at which the Network Firewall was created in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeCreated: string;
    /**
     * The time at which the Network Firewall was updated in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeUpdated: string;
}
/**
 * This data source provides details about a specific Network Firewall resource in Oracle Cloud Infrastructure Network Firewall service.
 *
 * Gets a NetworkFirewall by identifier
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testNetworkFirewall = oci.networkfirewall.getNetworkFirewall({
 *     networkFirewallId: testNetworkFirewallOciNetworkFirewallNetworkFirewall.id,
 * });
 * ```
 */
export declare function getNetworkFirewallOutput(args: GetNetworkFirewallOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetNetworkFirewallResult>;
/**
 * A collection of arguments for invoking getNetworkFirewall.
 */
export interface GetNetworkFirewallOutputArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Network Firewall resource.
     */
    networkFirewallId: pulumi.Input<string>;
}
//# sourceMappingURL=getNetworkFirewall.d.ts.map