import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ProtectionGroupAttributes = {
    ProtectionGroupArn: Attribute<string>;
};
export type ProtectionGroup = AwsResource<'AWS::Shield::ProtectionGroup', ProtectionGroupProperties, ProtectionGroupAttributes>;
/**
  Creates a grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protectiongroup.html">the AWS Docs</a>
*/
export declare function protectionGroup(protectionGroupProps: ProtectionGroupProperties): ProtectionGroup;
/**
  Creates a grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-protectiongroup.html">the AWS Docs</a>
*/
export interface ProtectionGroupProperties {
    /** <p> */
    aggregation: Value<string>;
    /** <code>Pattern</code>  <a name="cfn-shield-protectiongroup-pattern"></a>
  The criteria to use to choose the protected resources for inclusion in the group. You can include all resources that have protections, provide a list of resource ARNs (Amazon Resource Names), or include all resources of a specified resource type.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>ALL | ARBITRARY | BY_RESOURCE_TYPE</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    pattern: Value<'ALL' | 'ARBITRARY' | 'BY_RESOURCE_TYPE'>;
    /** <code>ProtectionGroupId</code>  <a name="cfn-shield-protectiongroup-protectiongroupid"></a>
  The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>36</code><br />
  
  Pattern: <code>[a-zA-Z0-9\\-]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    protectionGroupId: Value<string>;
    /** <code>ResourceType</code>  <a name="cfn-shield-protectiongroup-resourcetype"></a>
  The resource type to include in the protection group. All protected resources of this type are included in the protection group. You must set this when you set <code>Pattern</code> to <code>BY_RESOURCE_TYPE</code> and you must not set it for any other <code>Pattern</code> setting.<br />
  
  Required: No<br />
  
  Allowed values: <code>APPLICATION_LOAD_BALANCER | CLASSIC_LOAD_BALANCER | CLOUDFRONT_DISTRIBUTION | ELASTIC_IP_ALLOCATION | GLOBAL_ACCELERATOR | ROUTE_53_HOSTED_ZONE</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    resourceType?: Value<'APPLICATION_LOAD_BALANCER' | 'CLASSIC_LOAD_BALANCER' | 'CLOUDFRONT_DISTRIBUTION' | 'ELASTIC_IP_ALLOCATION' | 'GLOBAL_ACCELERATOR' | 'ROUTE_53_HOSTED_ZONE'>;
    /** <code>Members</code>  <a name="cfn-shield-protectiongroup-members"></a>
  The ARNs (Amazon Resource Names) of the resources to include in the protection group. You must set this when you set <code>Pattern</code> to <code>ARBITRARY</code> and you must not set it for any other <code>Pattern</code> setting.<br />
  
  Required: No<br />
  
  Maximum: <code>10000</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    members?: Value<Value<string>[]>;
    /** <code>Tags</code>  <a name="cfn-shield-protectiongroup-tags"></a>
  Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as “environment”) and the tag value represents a specific value within that category (such as “test,” “development,” or “production”). You can add up to 50 tags to each AWS resource.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
