import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Data source for retrieving security rule information.
 *
 * ## Admin Permission Type
 *
 * * `Rulestack` (for `scope="Local"`)
 * * `Global Rulestack` (for `scope="Global"`)
 *
 * ## Example Usage
 */
export declare function getSecurityRule(args: GetSecurityRuleArgs, opts?: pulumi.InvokeOptions): Promise<GetSecurityRuleResult>;
/**
 * A collection of arguments for invoking getSecurityRule.
 */
export interface GetSecurityRuleArgs {
    /**
     * Retrieve either the candidate or running config. Valid values are `candidate` or `running`. Defaults to `candidate`.
     */
    configType?: string;
    /**
     * The rule priority.
     */
    priority: number;
    /**
     * The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
     */
    ruleList?: string;
    /**
     * The rulestack.
     */
    rulestack: string;
    /**
     * The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
     */
    scope?: string;
}
/**
 * A collection of values returned by getSecurityRule.
 */
export interface GetSecurityRuleResult {
    /**
     * The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.
     */
    readonly action: string;
    /**
     * The list of applications.
     */
    readonly applications: string[];
    /**
     * The audit comment.
     */
    readonly auditComment: string;
    /**
     * The category spec.
     */
    readonly categories: outputs.GetSecurityRuleCategory[];
    /**
     * Retrieve either the candidate or running config. Valid values are `candidate` or `running`. Defaults to `candidate`.
     */
    readonly configType?: string;
    /**
     * Decryption rule type. Valid values are ``or`SSLOutboundInspection`.
     */
    readonly decryptionRuleType: string;
    /**
     * The description.
     */
    readonly description: string;
    /**
     * The destination spec.
     */
    readonly destinations: outputs.GetSecurityRuleDestination[];
    /**
     * Set to false to disable this rule.
     */
    readonly enabled: boolean;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * Enable logging at end.
     */
    readonly logging: boolean;
    /**
     * The name.
     */
    readonly name: string;
    /**
     * Negate the destination definition.
     */
    readonly negateDestination: boolean;
    /**
     * Negate the source definition.
     */
    readonly negateSource: boolean;
    /**
     * The rule priority.
     */
    readonly priority: number;
    /**
     * Protocol port list.
     */
    readonly protPortLists: string[];
    /**
     * The protocol.
     */
    readonly protocol: string;
    /**
     * The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
     */
    readonly ruleList?: string;
    /**
     * The rulestack.
     */
    readonly rulestack: string;
    /**
     * The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
     */
    readonly scope?: string;
    /**
     * The source spec.
     */
    readonly sources: outputs.GetSecurityRuleSource[];
    /**
     * The tags.
     */
    readonly tags: {
        [key: string]: string;
    };
    /**
     * The update token.
     */
    readonly updateToken: string;
}
/**
 * Data source for retrieving security rule information.
 *
 * ## Admin Permission Type
 *
 * * `Rulestack` (for `scope="Local"`)
 * * `Global Rulestack` (for `scope="Global"`)
 *
 * ## Example Usage
 */
export declare function getSecurityRuleOutput(args: GetSecurityRuleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetSecurityRuleResult>;
/**
 * A collection of arguments for invoking getSecurityRule.
 */
export interface GetSecurityRuleOutputArgs {
    /**
     * Retrieve either the candidate or running config. Valid values are `candidate` or `running`. Defaults to `candidate`.
     */
    configType?: pulumi.Input<string | undefined>;
    /**
     * The rule priority.
     */
    priority: pulumi.Input<number>;
    /**
     * The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
     */
    ruleList?: pulumi.Input<string | undefined>;
    /**
     * The rulestack.
     */
    rulestack: pulumi.Input<string>;
    /**
     * The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
     */
    scope?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getSecurityRule.d.ts.map