/** * 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 a Shield event. This is provided as part of an * AttackDetail.

See Also:

AWS * API Reference

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

The type of Shield event that was observed. NETWORK indicates * layer 3 and layer 4 events and APPLICATION indicates layer 7 * events.

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 AttackLayer& GetAttackLayer() const{ return m_attackLayer; } /** *

The type of Shield event that was observed. NETWORK indicates * layer 3 and layer 4 events and APPLICATION indicates layer 7 * events.

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 AttackLayerHasBeenSet() const { return m_attackLayerHasBeenSet; } /** *

The type of Shield event that was observed. NETWORK indicates * layer 3 and layer 4 events and APPLICATION indicates layer 7 * events.

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 SetAttackLayer(const AttackLayer& value) { m_attackLayerHasBeenSet = true; m_attackLayer = value; } /** *

The type of Shield event that was observed. NETWORK indicates * layer 3 and layer 4 events and APPLICATION indicates layer 7 * events.

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 SetAttackLayer(AttackLayer&& value) { m_attackLayerHasBeenSet = true; m_attackLayer = std::move(value); } /** *

The type of Shield event that was observed. NETWORK indicates * layer 3 and layer 4 events and APPLICATION indicates layer 7 * events.

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 AttackProperty& WithAttackLayer(const AttackLayer& value) { SetAttackLayer(value); return *this;} /** *

The type of Shield event that was observed. NETWORK indicates * layer 3 and layer 4 events and APPLICATION indicates layer 7 * events.

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 AttackProperty& WithAttackLayer(AttackLayer&& value) { SetAttackLayer(std::move(value)); return *this;} /** *

Defines the Shield event property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback events.

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

Defines the Shield event property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback events.

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

Defines the Shield event property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback events.

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

Defines the Shield event property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback events.

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

Defines the Shield event property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback events.

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

Defines the Shield event property information that is provided. The * WORDPRESS_PINGBACK_REFLECTOR and * WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress * reflective pingback events.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

Contributor objects for the top five contributors to a Shield event. A * contributor is a source of traffic that Shield Advanced identifies as * responsible for some or all of an event.

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

The unit used for the Contributor Value property. *

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

The unit used for the Contributor Value property. *

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

The unit used for the Contributor Value property. *

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

The unit used for the Contributor Value property. *

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

The unit used for the Contributor Value property. *

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

The unit used for the Contributor Value property. *

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

The total contributions made to this Shield event by all contributors.

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

The total contributions made to this Shield event by all contributors.

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

The total contributions made to this Shield event by all contributors.

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

The total contributions made to this Shield event by all contributors.

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