/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Shield { namespace Model { /** *

Details of the described attack.

See Also:

AWS * API Reference

*/ class AWS_SHIELD_API AttackProperty { public: AttackProperty(); AttackProperty(Aws::Utils::Json::JsonView jsonValue); AttackProperty& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The type of distributed denial of service (DDoS) event that was observed. * NETWORK indicates layer 3 and layer 4 events and * APPLICATION indicates layer 7 events.

*/ inline const AttackLayer& GetAttackLayer() const{ return m_attackLayer; } /** *

The type of distributed denial of service (DDoS) event that was observed. * NETWORK indicates layer 3 and layer 4 events and * APPLICATION indicates layer 7 events.

*/ inline bool AttackLayerHasBeenSet() const { return m_attackLayerHasBeenSet; } /** *

The type of distributed denial of service (DDoS) event that was observed. * NETWORK indicates layer 3 and layer 4 events and * APPLICATION indicates layer 7 events.

*/ inline void SetAttackLayer(const AttackLayer& value) { m_attackLayerHasBeenSet = true; m_attackLayer = value; } /** *

The type of distributed denial of service (DDoS) event that was observed. * NETWORK indicates layer 3 and layer 4 events and * APPLICATION indicates layer 7 events.

*/ inline void SetAttackLayer(AttackLayer&& value) { m_attackLayerHasBeenSet = true; m_attackLayer = std::move(value); } /** *

The type of distributed denial of service (DDoS) event that was observed. * NETWORK indicates layer 3 and layer 4 events and * APPLICATION indicates layer 7 events.

*/ inline AttackProperty& WithAttackLayer(const AttackLayer& value) { SetAttackLayer(value); return *this;} /** *

The type of distributed denial of service (DDoS) event that was observed. * NETWORK indicates layer 3 and layer 4 events and * APPLICATION indicates layer 7 events.

*/ inline AttackProperty& WithAttackLayer(AttackLayer&& value) { SetAttackLayer(std::move(value)); return *this;} /** *

Defines the DDoS attack property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback DDoS attacks.

*/ inline const AttackPropertyIdentifier& GetAttackPropertyIdentifier() const{ return m_attackPropertyIdentifier; } /** *

Defines the DDoS attack property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback DDoS attacks.

*/ inline bool AttackPropertyIdentifierHasBeenSet() const { return m_attackPropertyIdentifierHasBeenSet; } /** *

Defines the DDoS attack property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback DDoS attacks.

*/ inline void SetAttackPropertyIdentifier(const AttackPropertyIdentifier& value) { m_attackPropertyIdentifierHasBeenSet = true; m_attackPropertyIdentifier = value; } /** *

Defines the DDoS attack property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback DDoS attacks.

*/ inline void SetAttackPropertyIdentifier(AttackPropertyIdentifier&& value) { m_attackPropertyIdentifierHasBeenSet = true; m_attackPropertyIdentifier = std::move(value); } /** *

Defines the DDoS attack property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback DDoS attacks.

*/ inline AttackProperty& WithAttackPropertyIdentifier(const AttackPropertyIdentifier& value) { SetAttackPropertyIdentifier(value); return *this;} /** *

Defines the DDoS attack property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback DDoS attacks.

*/ inline AttackProperty& WithAttackPropertyIdentifier(AttackPropertyIdentifier&& value) { SetAttackPropertyIdentifier(std::move(value)); return *this;} /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline const Aws::Vector& GetTopContributors() const{ return m_topContributors; } /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline bool TopContributorsHasBeenSet() const { return m_topContributorsHasBeenSet; } /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline void SetTopContributors(const Aws::Vector& value) { m_topContributorsHasBeenSet = true; m_topContributors = value; } /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline void SetTopContributors(Aws::Vector&& value) { m_topContributorsHasBeenSet = true; m_topContributors = std::move(value); } /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline AttackProperty& WithTopContributors(const Aws::Vector& value) { SetTopContributors(value); return *this;} /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline AttackProperty& WithTopContributors(Aws::Vector&& value) { SetTopContributors(std::move(value)); return *this;} /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline AttackProperty& AddTopContributors(const Contributor& value) { m_topContributorsHasBeenSet = true; m_topContributors.push_back(value); return *this; } /** *

The array of Contributor objects that includes the top five * contributors to an attack.

*/ inline AttackProperty& AddTopContributors(Contributor&& value) { m_topContributorsHasBeenSet = true; m_topContributors.push_back(std::move(value)); return *this; } /** *

The unit of the Value of the contributions.

*/ inline const Unit& GetUnit() const{ return m_unit; } /** *

The unit of the Value of the contributions.

*/ inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; } /** *

The unit of the Value of the contributions.

*/ inline void SetUnit(const Unit& value) { m_unitHasBeenSet = true; m_unit = value; } /** *

The unit of the Value of the contributions.

*/ inline void SetUnit(Unit&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); } /** *

The unit of the Value of the contributions.

*/ inline AttackProperty& WithUnit(const Unit& value) { SetUnit(value); return *this;} /** *

The unit of the Value of the contributions.

*/ inline AttackProperty& WithUnit(Unit&& value) { SetUnit(std::move(value)); return *this;} /** *

The total contributions made to this attack by all contributors, not just the * five listed in the TopContributors list.

*/ inline long long GetTotal() const{ return m_total; } /** *

The total contributions made to this attack by all contributors, not just the * five listed in the TopContributors list.

*/ inline bool TotalHasBeenSet() const { return m_totalHasBeenSet; } /** *

The total contributions made to this attack by all contributors, not just the * five listed in the TopContributors list.

*/ inline void SetTotal(long long value) { m_totalHasBeenSet = true; m_total = value; } /** *

The total contributions made to this attack by all contributors, not just the * five listed in the TopContributors list.

*/ inline AttackProperty& WithTotal(long long value) { SetTotal(value); return *this;} private: AttackLayer m_attackLayer; bool m_attackLayerHasBeenSet; AttackPropertyIdentifier m_attackPropertyIdentifier; bool m_attackPropertyIdentifierHasBeenSet; Aws::Vector m_topContributors; bool m_topContributorsHasBeenSet; Unit m_unit; bool m_unitHasBeenSet; long long m_total; bool m_totalHasBeenSet; }; } // namespace Model } // namespace Shield } // namespace Aws