/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include A grouping of protected resources that you and Shield Advanced can monitor as
* a collective. This resource grouping improves the accuracy of detection and
* reduces false positives. See Also:
AWS
* API Reference
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.
*/ inline const Aws::String& GetProtectionGroupId() const{ return m_protectionGroupId; } /** *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.
*/ inline bool ProtectionGroupIdHasBeenSet() const { return m_protectionGroupIdHasBeenSet; } /** *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.
*/ inline void SetProtectionGroupId(const Aws::String& value) { m_protectionGroupIdHasBeenSet = true; m_protectionGroupId = value; } /** *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.
*/ inline void SetProtectionGroupId(Aws::String&& value) { m_protectionGroupIdHasBeenSet = true; m_protectionGroupId = std::move(value); } /** *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.
*/ inline void SetProtectionGroupId(const char* value) { m_protectionGroupIdHasBeenSet = true; m_protectionGroupId.assign(value); } /** *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.
*/ inline ProtectionGroup& WithProtectionGroupId(const Aws::String& value) { SetProtectionGroupId(value); return *this;} /** *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.
*/ inline ProtectionGroup& WithProtectionGroupId(Aws::String&& value) { SetProtectionGroupId(std::move(value)); return *this;} /** *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.
*/ inline ProtectionGroup& WithProtectionGroupId(const char* value) { SetProtectionGroupId(value); return *this;} /** *Defines how 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 distributions and origin resources for CloudFront distributions.
*Defines how 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 distributions and origin resources for CloudFront distributions.
*Defines how 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 distributions and origin resources for CloudFront distributions.
*Defines how 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 distributions and origin resources for CloudFront distributions.
*Defines how 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 distributions and origin resources for CloudFront distributions.
*Defines how 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 distributions and origin resources for CloudFront distributions.
*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.
*/ inline const ProtectionGroupPattern& GetPattern() const{ return m_pattern; } /** *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.
*/ inline bool PatternHasBeenSet() const { return m_patternHasBeenSet; } /** *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.
*/ inline void SetPattern(const ProtectionGroupPattern& value) { m_patternHasBeenSet = true; m_pattern = value; } /** *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.
*/ inline void SetPattern(ProtectionGroupPattern&& value) { m_patternHasBeenSet = true; m_pattern = std::move(value); } /** *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.
*/ inline ProtectionGroup& WithPattern(const ProtectionGroupPattern& value) { SetPattern(value); return *this;} /** *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.
*/ inline ProtectionGroup& WithPattern(ProtectionGroupPattern&& value) { SetPattern(std::move(value)); return *this;} /** *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 Pattern
to BY_RESOURCE_TYPE
and you must not set
* it for any other Pattern
setting.
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 Pattern
to BY_RESOURCE_TYPE
and you must not set
* it for any other Pattern
setting.
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 Pattern
to BY_RESOURCE_TYPE
and you must not set
* it for any other Pattern
setting.
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 Pattern
to BY_RESOURCE_TYPE
and you must not set
* it for any other Pattern
setting.
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 Pattern
to BY_RESOURCE_TYPE
and you must not set
* it for any other Pattern
setting.
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 Pattern
to BY_RESOURCE_TYPE
and you must not set
* it for any other Pattern
setting.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARNs (Amazon Resource Names) 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.
The ARN (Amazon Resource Name) of the protection group.
*/ inline const Aws::String& GetProtectionGroupArn() const{ return m_protectionGroupArn; } /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline bool ProtectionGroupArnHasBeenSet() const { return m_protectionGroupArnHasBeenSet; } /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline void SetProtectionGroupArn(const Aws::String& value) { m_protectionGroupArnHasBeenSet = true; m_protectionGroupArn = value; } /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline void SetProtectionGroupArn(Aws::String&& value) { m_protectionGroupArnHasBeenSet = true; m_protectionGroupArn = std::move(value); } /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline void SetProtectionGroupArn(const char* value) { m_protectionGroupArnHasBeenSet = true; m_protectionGroupArn.assign(value); } /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline ProtectionGroup& WithProtectionGroupArn(const Aws::String& value) { SetProtectionGroupArn(value); return *this;} /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline ProtectionGroup& WithProtectionGroupArn(Aws::String&& value) { SetProtectionGroupArn(std::move(value)); return *this;} /** *The ARN (Amazon Resource Name) of the protection group.
*/ inline ProtectionGroup& WithProtectionGroupArn(const char* value) { SetProtectionGroupArn(value); return *this;} private: Aws::String m_protectionGroupId; bool m_protectionGroupIdHasBeenSet = false; ProtectionGroupAggregation m_aggregation; bool m_aggregationHasBeenSet = false; ProtectionGroupPattern m_pattern; bool m_patternHasBeenSet = false; ProtectedResourceType m_resourceType; bool m_resourceTypeHasBeenSet = false; Aws::Vector