/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The details of a DDoS attack.See Also:
AWS
* API Reference
The unique identifier (ID) of the attack.
*/ inline const Aws::String& GetAttackId() const{ return m_attackId; } /** *The unique identifier (ID) of the attack.
*/ inline bool AttackIdHasBeenSet() const { return m_attackIdHasBeenSet; } /** *The unique identifier (ID) of the attack.
*/ inline void SetAttackId(const Aws::String& value) { m_attackIdHasBeenSet = true; m_attackId = value; } /** *The unique identifier (ID) of the attack.
*/ inline void SetAttackId(Aws::String&& value) { m_attackIdHasBeenSet = true; m_attackId = std::move(value); } /** *The unique identifier (ID) of the attack.
*/ inline void SetAttackId(const char* value) { m_attackIdHasBeenSet = true; m_attackId.assign(value); } /** *The unique identifier (ID) of the attack.
*/ inline AttackDetail& WithAttackId(const Aws::String& value) { SetAttackId(value); return *this;} /** *The unique identifier (ID) of the attack.
*/ inline AttackDetail& WithAttackId(Aws::String&& value) { SetAttackId(std::move(value)); return *this;} /** *The unique identifier (ID) of the attack.
*/ inline AttackDetail& WithAttackId(const char* value) { SetAttackId(value); return *this;} /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; } /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); } /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); } /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline AttackDetail& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;} /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline AttackDetail& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;} /** *The ARN (Amazon Resource Name) of the resource that was attacked.
*/ inline AttackDetail& WithResourceArn(const char* value) { SetResourceArn(value); return *this;} /** *If applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline const Aws::VectorIf applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline bool SubResourcesHasBeenSet() const { return m_subResourcesHasBeenSet; } /** *If applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline void SetSubResources(const Aws::VectorIf applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline void SetSubResources(Aws::VectorIf applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline AttackDetail& WithSubResources(const Aws::VectorIf applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline AttackDetail& WithSubResources(Aws::VectorIf applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline AttackDetail& AddSubResources(const SubResourceSummary& value) { m_subResourcesHasBeenSet = true; m_subResources.push_back(value); return *this; } /** *If applicable, additional detail about the resource being attacked, for * example, IP address or URL.
*/ inline AttackDetail& AddSubResources(SubResourceSummary&& value) { m_subResourcesHasBeenSet = true; m_subResources.push_back(std::move(value)); return *this; } /** *The time the attack started, in Unix time in seconds.
*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *The time the attack started, in Unix time in seconds.
*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *The time the attack started, in Unix time in seconds.
*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *The time the attack started, in Unix time in seconds.
*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *The time the attack started, in Unix time in seconds.
*/ inline AttackDetail& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *The time the attack started, in Unix time in seconds.
*/ inline AttackDetail& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *The time the attack ended, in Unix time in seconds.
*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } /** *The time the attack ended, in Unix time in seconds.
*/ inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *The time the attack ended, in Unix time in seconds.
*/ inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *The time the attack ended, in Unix time in seconds.
*/ inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *The time the attack ended, in Unix time in seconds.
*/ inline AttackDetail& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *The time the attack ended, in Unix time in seconds.
*/ inline AttackDetail& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} /** *List of counters that describe the attack for the specified time period.
*/ inline const Aws::VectorList of counters that describe the attack for the specified time period.
*/ inline bool AttackCountersHasBeenSet() const { return m_attackCountersHasBeenSet; } /** *List of counters that describe the attack for the specified time period.
*/ inline void SetAttackCounters(const Aws::VectorList of counters that describe the attack for the specified time period.
*/ inline void SetAttackCounters(Aws::VectorList of counters that describe the attack for the specified time period.
*/ inline AttackDetail& WithAttackCounters(const Aws::VectorList of counters that describe the attack for the specified time period.
*/ inline AttackDetail& WithAttackCounters(Aws::VectorList of counters that describe the attack for the specified time period.
*/ inline AttackDetail& AddAttackCounters(const SummarizedCounter& value) { m_attackCountersHasBeenSet = true; m_attackCounters.push_back(value); return *this; } /** *List of counters that describe the attack for the specified time period.
*/ inline AttackDetail& AddAttackCounters(SummarizedCounter&& value) { m_attackCountersHasBeenSet = true; m_attackCounters.push_back(std::move(value)); return *this; } /** *The array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline const Aws::VectorThe array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline bool AttackPropertiesHasBeenSet() const { return m_attackPropertiesHasBeenSet; } /** *The array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline void SetAttackProperties(const Aws::VectorThe array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline void SetAttackProperties(Aws::VectorThe array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline AttackDetail& WithAttackProperties(const Aws::VectorThe array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline AttackDetail& WithAttackProperties(Aws::VectorThe array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline AttackDetail& AddAttackProperties(const AttackProperty& value) { m_attackPropertiesHasBeenSet = true; m_attackProperties.push_back(value); return *this; } /** *The array of objects that provide details of the Shield event.
For * infrastructure layer events (L3 and L4 events), you can view metrics for top * contributors in Amazon CloudWatch metrics. For more information, see Shield * metrics and alarms in the WAF Developer Guide.
*/ inline AttackDetail& AddAttackProperties(AttackProperty&& value) { m_attackPropertiesHasBeenSet = true; m_attackProperties.push_back(std::move(value)); return *this; } /** *List of mitigation actions taken for the attack.
*/ inline const Aws::VectorList of mitigation actions taken for the attack.
*/ inline bool MitigationsHasBeenSet() const { return m_mitigationsHasBeenSet; } /** *List of mitigation actions taken for the attack.
*/ inline void SetMitigations(const Aws::VectorList of mitigation actions taken for the attack.
*/ inline void SetMitigations(Aws::VectorList of mitigation actions taken for the attack.
*/ inline AttackDetail& WithMitigations(const Aws::VectorList of mitigation actions taken for the attack.
*/ inline AttackDetail& WithMitigations(Aws::VectorList of mitigation actions taken for the attack.
*/ inline AttackDetail& AddMitigations(const Mitigation& value) { m_mitigationsHasBeenSet = true; m_mitigations.push_back(value); return *this; } /** *List of mitigation actions taken for the attack.
*/ inline AttackDetail& AddMitigations(Mitigation&& value) { m_mitigationsHasBeenSet = true; m_mitigations.push_back(std::move(value)); return *this; } private: Aws::String m_attackId; bool m_attackIdHasBeenSet = false; Aws::String m_resourceArn; bool m_resourceArnHasBeenSet = false; Aws::Vector