import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, AWS Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses.
 */
export declare class Protection extends pulumi.CustomResource {
    /**
     * Get an existing Protection 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Protection;
    /**
     * Returns true if the given object is an instance of Protection.  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 Protection;
    /**
     * The automatic application layer DDoS mitigation settings for the protection. This configuration determines whether Shield Advanced automatically manages rules in the web ACL in order to respond to application layer events that Shield Advanced determines to be DDoS attacks.
     *
     * If you use CloudFormation to manage the web ACLs that you use with Shield Advanced automatic mitigation, see the additional guidance about web ACL management in the `AWS::WAFv2::WebACL` resource description.
     */
    readonly applicationLayerAutomaticResponseConfiguration: pulumi.Output<outputs.shield.ProtectionApplicationLayerAutomaticResponseConfiguration | undefined>;
    /**
     * The Amazon Resource Names (ARNs) of the health check to associate with the protection.
     */
    readonly healthCheckArns: pulumi.Output<string[] | undefined>;
    /**
     * Friendly name for the Protection.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The ARN (Amazon Resource Name) of the protection.
     */
    readonly protectionArn: pulumi.Output<string>;
    /**
     * The unique identifier (ID) of the protection.
     */
    readonly protectionId: pulumi.Output<string>;
    /**
     * The ARN (Amazon Resource Name) of the resource to be protected.
     */
    readonly resourceArn: pulumi.Output<string>;
    /**
     * One or more tag key-value pairs for the Protection object.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a Protection 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: ProtectionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Protection resource.
 */
export interface ProtectionArgs {
    /**
     * The automatic application layer DDoS mitigation settings for the protection. This configuration determines whether Shield Advanced automatically manages rules in the web ACL in order to respond to application layer events that Shield Advanced determines to be DDoS attacks.
     *
     * If you use CloudFormation to manage the web ACLs that you use with Shield Advanced automatic mitigation, see the additional guidance about web ACL management in the `AWS::WAFv2::WebACL` resource description.
     */
    applicationLayerAutomaticResponseConfiguration?: pulumi.Input<inputs.shield.ProtectionApplicationLayerAutomaticResponseConfigurationArgs>;
    /**
     * The Amazon Resource Names (ARNs) of the health check to associate with the protection.
     */
    healthCheckArns?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Friendly name for the Protection.
     */
    name?: pulumi.Input<string>;
    /**
     * The ARN (Amazon Resource Name) of the resource to be protected.
     */
    resourceArn: pulumi.Input<string>;
    /**
     * One or more tag key-value pairs for the Protection object.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
