import * as pulumi from "@pulumi/pulumi";
/**
 * This resource provides the Network Firewall Policy resource in Oracle Cloud Infrastructure Network Firewall service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/network-firewall/latest/NetworkFirewallPolicy
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/network_firewall
 *
 * Creates a new Network Firewall Policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testNetworkFirewallPolicy = new oci.networkfirewall.NetworkFirewallPolicy("test_network_firewall_policy", {
 *     compartmentId: compartmentId,
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     description: networkFirewallPolicyDescription,
 *     displayName: networkFirewallPolicyDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 * });
 * ```
 *
 * ## Note
 *
 * * We are introducing significant enhancements in network firewall policy. The policy components have been decomposed to support higher limits.
 * * Network firewall policies created using older versions will not be accessible using this version. Older policies will continue to function using older SDKs.
 * * To access the policies using the latest version of terraform, upgrade the older policies to use the latest features using CLI, SDKs, or console. Once upgraded, the policy can't be rolled back to the older version. Refer [here](https://docs.oracle.com/en-us/iaas/Content/network-firewall/upgrade.htm) for further details on this.
 *
 * ## Import
 *
 * NetworkFirewallPolicies can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:NetworkFirewall/networkFirewallPolicy:NetworkFirewallPolicy test_network_firewall_policy "id"
 * ```
 */
export declare class NetworkFirewallPolicy extends pulumi.CustomResource {
    /**
     * Get an existing NetworkFirewallPolicy resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: NetworkFirewallPolicyState, opts?: pulumi.CustomResourceOptions): NetworkFirewallPolicy;
    /**
     * Returns true if the given object is an instance of NetworkFirewallPolicy.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is NetworkFirewallPolicy;
    /**
     * Count of number of Network Firewall attached to the Policy.
     */
    readonly attachedNetworkFirewallCount: pulumi.Output<number>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the NetworkFirewall Policy.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) 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: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) The description of the network firewall policy. This field can be used to add additional info.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * (Updatable) A user-friendly optional name for the firewall policy. Avoid entering confidential information.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * (Updatable) 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"}`
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * The current state of the Network Firewall Policy.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The time instant at which the Network Firewall Policy was created in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time instant at which the Network Firewall Policy was updated in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a NetworkFirewallPolicy resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: NetworkFirewallPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering NetworkFirewallPolicy resources.
 */
export interface NetworkFirewallPolicyState {
    /**
     * Count of number of Network Firewall attached to the Policy.
     */
    attachedNetworkFirewallCount?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the NetworkFirewall Policy.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) 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"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The description of the network firewall policy. This field can be used to add additional info.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly optional name for the firewall policy. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) 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"}`
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * The current state of the Network Firewall Policy.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The time instant at which the Network Firewall Policy was created in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time instant at which the Network Firewall Policy was updated in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a NetworkFirewallPolicy resource.
 */
export interface NetworkFirewallPolicyArgs {
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the NetworkFirewall Policy.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) 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"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The description of the network firewall policy. This field can be used to add additional info.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly optional name for the firewall policy. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) 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"}`
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=networkFirewallPolicy.d.ts.map