import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Palo Alto Local Rulestack Rule.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "rg-example",
 *     location: "West Europe",
 * });
 * const exampleLocalRulestack = new azure.paloalto.LocalRulestack("example", {
 *     name: "lrs-example",
 *     resourceGroupName: example.name,
 *     location: example.location,
 * });
 * const exampleLocalRulestackRule = new azure.paloalto.LocalRulestackRule("example", {
 *     name: "example-rule",
 *     rulestackId: exampleLocalRulestack.id,
 *     priority: 1000,
 *     action: "Allow",
 *     protocol: "application-default",
 *     applications: ["any"],
 *     source: {
 *         cidrs: ["10.0.0.0/8"],
 *     },
 *     destination: {
 *         cidrs: ["192.168.16.0/24"],
 *     },
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `PaloAltoNetworks.Cloudngfw` - 2025-10-08
 *
 * ## Import
 *
 * Palo Alto Local Rulestack Rules can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:paloalto/localRulestackRule:LocalRulestackRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/PaloAltoNetworks.Cloudngfw/localRulestacks/myLocalRulestack/localRules/myRule1
 * ```
 */
export declare class LocalRulestackRule extends pulumi.CustomResource {
    /**
     * Get an existing LocalRulestackRule 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?: LocalRulestackRuleState, opts?: pulumi.CustomResourceOptions): LocalRulestackRule;
    /**
     * Returns true if the given object is an instance of LocalRulestackRule.  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 LocalRulestackRule;
    /**
     * The action to take on the rule being triggered. Possible values are `Allow`, `DenyResetBoth`, `DenyResetServer` and `DenySilent`.
     */
    readonly action: pulumi.Output<string>;
    /**
     * Specifies a list of Applications.
     */
    readonly applications: pulumi.Output<string[]>;
    /**
     * The comment for Audit purposes.
     */
    readonly auditComment: pulumi.Output<string | undefined>;
    /**
     * A `category` block as defined below.
     */
    readonly category: pulumi.Output<outputs.paloalto.LocalRulestackRuleCategory | undefined>;
    /**
     * The type of Decryption to perform on the rule. Possible values include `SSLInboundInspection`, `SSLOutboundInspection`, and `None`. Defaults to `None`.
     */
    readonly decryptionRuleType: pulumi.Output<string | undefined>;
    /**
     * The description for the rule.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * One or more `destination` blocks as defined below.
     */
    readonly destination: pulumi.Output<outputs.paloalto.LocalRulestackRuleDestination>;
    /**
     * Should this Rule be enabled? Defaults to `true`.
     */
    readonly enabled: pulumi.Output<boolean | undefined>;
    /**
     * The ID of the certificate for inbound inspection. Only valid when `decryptionRuleType` is set to `SSLInboundInspection`.
     */
    readonly inspectionCertificateId: pulumi.Output<string | undefined>;
    /**
     * Should Logging be enabled? Defaults to `false`.
     */
    readonly loggingEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The name which should be used for this Palo Alto Local Rulestack Rule.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Should the inverse of the Destination configuration be used. Defaults to `false`.
     */
    readonly negateDestination: pulumi.Output<boolean | undefined>;
    /**
     * Should the inverse of the Source configuration be used. Defaults to `false`.
     */
    readonly negateSource: pulumi.Output<boolean | undefined>;
    /**
     * The Priority of this rule. Rules are executed in numerical order. Possible values are between 1 and 1000000. Changing this forces a new Palo Alto Local Rulestack Rule to be created.
     *
     * > **Note:** This is the primary identifier of a rule, as such it is not possible to change the Priority of a rule once created.
     */
    readonly priority: pulumi.Output<number>;
    /**
     * The Protocol and port to use in the form `[protocol]:[portNumber]` e.g. `TCP:8080` or `UDP:53`. Conflicts with `protocolPorts`.
     *
     * > **Note:** In 4.0 or later versions, the default of `protocol` will no longer be set by provider, exactly one of `protocol` and `protocolPorts` must be specified. You need to explicitly specify `protocol="application-default"` to keep the the current default of the `protocol`.
     */
    readonly protocol: pulumi.Output<string | undefined>;
    /**
     * Specifies a list of Protocol:Port entries. E.g. `[ "TCP:80", "UDP:5431" ]`. Conflicts with `protocol`.
     */
    readonly protocolPorts: pulumi.Output<string[] | undefined>;
    /**
     * The ID of the Local Rulestack in which to create this Rule. Changing this forces a new Palo Alto Local Rulestack Rule to be created.
     */
    readonly rulestackId: pulumi.Output<string>;
    /**
     * One or more `source` blocks as defined below.
     */
    readonly source: pulumi.Output<outputs.paloalto.LocalRulestackRuleSource>;
    /**
     * A mapping of tags which should be assigned to the Palo Alto Local Rulestack Rule.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Create a LocalRulestackRule 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: LocalRulestackRuleArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering LocalRulestackRule resources.
 */
export interface LocalRulestackRuleState {
    /**
     * The action to take on the rule being triggered. Possible values are `Allow`, `DenyResetBoth`, `DenyResetServer` and `DenySilent`.
     */
    action?: pulumi.Input<string | undefined>;
    /**
     * Specifies a list of Applications.
     */
    applications?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The comment for Audit purposes.
     */
    auditComment?: pulumi.Input<string | undefined>;
    /**
     * A `category` block as defined below.
     */
    category?: pulumi.Input<inputs.paloalto.LocalRulestackRuleCategory | undefined>;
    /**
     * The type of Decryption to perform on the rule. Possible values include `SSLInboundInspection`, `SSLOutboundInspection`, and `None`. Defaults to `None`.
     */
    decryptionRuleType?: pulumi.Input<string | undefined>;
    /**
     * The description for the rule.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * One or more `destination` blocks as defined below.
     */
    destination?: pulumi.Input<inputs.paloalto.LocalRulestackRuleDestination | undefined>;
    /**
     * Should this Rule be enabled? Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * The ID of the certificate for inbound inspection. Only valid when `decryptionRuleType` is set to `SSLInboundInspection`.
     */
    inspectionCertificateId?: pulumi.Input<string | undefined>;
    /**
     * Should Logging be enabled? Defaults to `false`.
     */
    loggingEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The name which should be used for this Palo Alto Local Rulestack Rule.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Should the inverse of the Destination configuration be used. Defaults to `false`.
     */
    negateDestination?: pulumi.Input<boolean | undefined>;
    /**
     * Should the inverse of the Source configuration be used. Defaults to `false`.
     */
    negateSource?: pulumi.Input<boolean | undefined>;
    /**
     * The Priority of this rule. Rules are executed in numerical order. Possible values are between 1 and 1000000. Changing this forces a new Palo Alto Local Rulestack Rule to be created.
     *
     * > **Note:** This is the primary identifier of a rule, as such it is not possible to change the Priority of a rule once created.
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * The Protocol and port to use in the form `[protocol]:[portNumber]` e.g. `TCP:8080` or `UDP:53`. Conflicts with `protocolPorts`.
     *
     * > **Note:** In 4.0 or later versions, the default of `protocol` will no longer be set by provider, exactly one of `protocol` and `protocolPorts` must be specified. You need to explicitly specify `protocol="application-default"` to keep the the current default of the `protocol`.
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * Specifies a list of Protocol:Port entries. E.g. `[ "TCP:80", "UDP:5431" ]`. Conflicts with `protocol`.
     */
    protocolPorts?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The ID of the Local Rulestack in which to create this Rule. Changing this forces a new Palo Alto Local Rulestack Rule to be created.
     */
    rulestackId?: pulumi.Input<string | undefined>;
    /**
     * One or more `source` blocks as defined below.
     */
    source?: pulumi.Input<inputs.paloalto.LocalRulestackRuleSource | undefined>;
    /**
     * A mapping of tags which should be assigned to the Palo Alto Local Rulestack Rule.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
/**
 * The set of arguments for constructing a LocalRulestackRule resource.
 */
export interface LocalRulestackRuleArgs {
    /**
     * The action to take on the rule being triggered. Possible values are `Allow`, `DenyResetBoth`, `DenyResetServer` and `DenySilent`.
     */
    action: pulumi.Input<string>;
    /**
     * Specifies a list of Applications.
     */
    applications: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The comment for Audit purposes.
     */
    auditComment?: pulumi.Input<string | undefined>;
    /**
     * A `category` block as defined below.
     */
    category?: pulumi.Input<inputs.paloalto.LocalRulestackRuleCategory | undefined>;
    /**
     * The type of Decryption to perform on the rule. Possible values include `SSLInboundInspection`, `SSLOutboundInspection`, and `None`. Defaults to `None`.
     */
    decryptionRuleType?: pulumi.Input<string | undefined>;
    /**
     * The description for the rule.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * One or more `destination` blocks as defined below.
     */
    destination: pulumi.Input<inputs.paloalto.LocalRulestackRuleDestination>;
    /**
     * Should this Rule be enabled? Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * The ID of the certificate for inbound inspection. Only valid when `decryptionRuleType` is set to `SSLInboundInspection`.
     */
    inspectionCertificateId?: pulumi.Input<string | undefined>;
    /**
     * Should Logging be enabled? Defaults to `false`.
     */
    loggingEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The name which should be used for this Palo Alto Local Rulestack Rule.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Should the inverse of the Destination configuration be used. Defaults to `false`.
     */
    negateDestination?: pulumi.Input<boolean | undefined>;
    /**
     * Should the inverse of the Source configuration be used. Defaults to `false`.
     */
    negateSource?: pulumi.Input<boolean | undefined>;
    /**
     * The Priority of this rule. Rules are executed in numerical order. Possible values are between 1 and 1000000. Changing this forces a new Palo Alto Local Rulestack Rule to be created.
     *
     * > **Note:** This is the primary identifier of a rule, as such it is not possible to change the Priority of a rule once created.
     */
    priority: pulumi.Input<number>;
    /**
     * The Protocol and port to use in the form `[protocol]:[portNumber]` e.g. `TCP:8080` or `UDP:53`. Conflicts with `protocolPorts`.
     *
     * > **Note:** In 4.0 or later versions, the default of `protocol` will no longer be set by provider, exactly one of `protocol` and `protocolPorts` must be specified. You need to explicitly specify `protocol="application-default"` to keep the the current default of the `protocol`.
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * Specifies a list of Protocol:Port entries. E.g. `[ "TCP:80", "UDP:5431" ]`. Conflicts with `protocol`.
     */
    protocolPorts?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The ID of the Local Rulestack in which to create this Rule. Changing this forces a new Palo Alto Local Rulestack Rule to be created.
     */
    rulestackId: pulumi.Input<string>;
    /**
     * One or more `source` blocks as defined below.
     */
    source: pulumi.Input<inputs.paloalto.LocalRulestackRuleSource>;
    /**
     * A mapping of tags which should be assigned to the Palo Alto Local Rulestack Rule.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=localRulestackRule.d.ts.map