@pulumi/aws-native
Version:
The Pulumi AWS Cloud Control Provider enables you to build, deploy, and manage [any AWS resource that's supported by the AWS Cloud Control API](https://github.com/pulumi/pulumi-aws-native/blob/master/provider/cmd/pulumi-gen-aws-native/supported-types.txt)
151 lines (150 loc) • 8.35 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
* 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.
*
* ## Example Usage
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const protectionGroup = new aws_native.shield.ProtectionGroup("protectionGroup", {
* protectionGroupId: "ProtectionGroupForAllResources",
* aggregation: aws_native.shield.ProtectionGroupAggregation.Sum,
* pattern: aws_native.shield.ProtectionGroupPattern.All,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const protectionGroup = new aws_native.shield.ProtectionGroup("protectionGroup", {
* protectionGroupId: "ProtectionGroupForAllResources",
* aggregation: aws_native.shield.ProtectionGroupAggregation.Sum,
* pattern: aws_native.shield.ProtectionGroupPattern.All,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const protectionGroup = new aws_native.shield.ProtectionGroup("protectionGroup", {
* protectionGroupId: "ProtectionGroupForAllEIPResources",
* aggregation: aws_native.shield.ProtectionGroupAggregation.Sum,
* pattern: aws_native.shield.ProtectionGroupPattern.ByResourceType,
* resourceType: aws_native.shield.ProtectionGroupResourceType.ElasticIpAllocation,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const protectionGroup = new aws_native.shield.ProtectionGroup("protectionGroup", {
* protectionGroupId: "ProtectionGroupForAllEIPResources",
* aggregation: aws_native.shield.ProtectionGroupAggregation.Sum,
* pattern: aws_native.shield.ProtectionGroupPattern.ByResourceType,
* resourceType: aws_native.shield.ProtectionGroupResourceType.ElasticIpAllocation,
* });
*
* ```
*/
export declare class ProtectionGroup extends pulumi.CustomResource {
/**
* Get an existing ProtectionGroup 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): ProtectionGroup;
/**
* Returns true if the given object is an instance of ProtectionGroup. 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 ProtectionGroup;
/**
* Defines how AWS Shield combines resource data for the group in order to detect, mitigate, and report events.
* * Sum - Use the total traffic across the group. This is a good choice for most cases. Examples include Elastic IP addresses for EC2 instances that scale manually or automatically.
* * Mean - Use the average of the traffic across the group. This is a good choice for resources that share traffic uniformly. Examples include accelerators and load balancers.
* * Max - Use the highest traffic from each resource. This is useful for resources that don't share traffic and for resources that share that traffic in a non-uniform way. Examples include Amazon CloudFront and origin resources for CloudFront distributions.
*/
readonly aggregation: pulumi.Output<enums.shield.ProtectionGroupAggregation>;
/**
* The Amazon Resource Names (ARNs) of the resources to include in the protection group. You must set this when you set `Pattern` to `ARBITRARY` and you must not set it for any other `Pattern` setting.
*/
readonly members: pulumi.Output<string[] | undefined>;
/**
* 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 Amazon Resource Names (ARNs), or include all resources of a specified resource type.
*/
readonly pattern: pulumi.Output<enums.shield.ProtectionGroupPattern>;
/**
* The ARN (Amazon Resource Name) of the protection group.
*/
readonly protectionGroupArn: pulumi.Output<string>;
/**
* 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.
*/
readonly protectionGroupId: pulumi.Output<string>;
/**
* The resource type to include in the protection group. All protected resources of this type are included in the protection group. Newly protected resources of this type are automatically added to the group. You must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you must not set it for any other `Pattern` setting.
*/
readonly resourceType: pulumi.Output<enums.shield.ProtectionGroupResourceType | undefined>;
/**
* One or more tag key-value pairs for the Protection object.
*/
readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
/**
* Create a ProtectionGroup 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: ProtectionGroupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* The set of arguments for constructing a ProtectionGroup resource.
*/
export interface ProtectionGroupArgs {
/**
* Defines how AWS Shield combines resource data for the group in order to detect, mitigate, and report events.
* * Sum - Use the total traffic across the group. This is a good choice for most cases. Examples include Elastic IP addresses for EC2 instances that scale manually or automatically.
* * Mean - Use the average of the traffic across the group. This is a good choice for resources that share traffic uniformly. Examples include accelerators and load balancers.
* * Max - Use the highest traffic from each resource. This is useful for resources that don't share traffic and for resources that share that traffic in a non-uniform way. Examples include Amazon CloudFront and origin resources for CloudFront distributions.
*/
aggregation: pulumi.Input<enums.shield.ProtectionGroupAggregation>;
/**
* The Amazon Resource Names (ARNs) of the resources to include in the protection group. You must set this when you set `Pattern` to `ARBITRARY` and you must not set it for any other `Pattern` setting.
*/
members?: pulumi.Input<pulumi.Input<string>[]>;
/**
* 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 Amazon Resource Names (ARNs), or include all resources of a specified resource type.
*/
pattern: pulumi.Input<enums.shield.ProtectionGroupPattern>;
/**
* 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.
*/
protectionGroupId: pulumi.Input<string>;
/**
* The resource type to include in the protection group. All protected resources of this type are included in the protection group. Newly protected resources of this type are automatically added to the group. You must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you must not set it for any other `Pattern` setting.
*/
resourceType?: pulumi.Input<enums.shield.ProtectionGroupResourceType>;
/**
* One or more tag key-value pairs for the Protection object.
*/
tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}