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

Information about the volume of attacks during the time period, included in * an AttackStatisticsDataItem. If the accompanying AttackCount * in the statistics object is zero, this setting might be empty.

See * Also:

AWS * API Reference

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

A statistics object that uses bits per second as the unit. This is included * for network level attacks.

*/ inline const AttackVolumeStatistics& GetBitsPerSecond() const{ return m_bitsPerSecond; } /** *

A statistics object that uses bits per second as the unit. This is included * for network level attacks.

*/ inline bool BitsPerSecondHasBeenSet() const { return m_bitsPerSecondHasBeenSet; } /** *

A statistics object that uses bits per second as the unit. This is included * for network level attacks.

*/ inline void SetBitsPerSecond(const AttackVolumeStatistics& value) { m_bitsPerSecondHasBeenSet = true; m_bitsPerSecond = value; } /** *

A statistics object that uses bits per second as the unit. This is included * for network level attacks.

*/ inline void SetBitsPerSecond(AttackVolumeStatistics&& value) { m_bitsPerSecondHasBeenSet = true; m_bitsPerSecond = std::move(value); } /** *

A statistics object that uses bits per second as the unit. This is included * for network level attacks.

*/ inline AttackVolume& WithBitsPerSecond(const AttackVolumeStatistics& value) { SetBitsPerSecond(value); return *this;} /** *

A statistics object that uses bits per second as the unit. This is included * for network level attacks.

*/ inline AttackVolume& WithBitsPerSecond(AttackVolumeStatistics&& value) { SetBitsPerSecond(std::move(value)); return *this;} /** *

A statistics object that uses packets per second as the unit. This is * included for network level attacks.

*/ inline const AttackVolumeStatistics& GetPacketsPerSecond() const{ return m_packetsPerSecond; } /** *

A statistics object that uses packets per second as the unit. This is * included for network level attacks.

*/ inline bool PacketsPerSecondHasBeenSet() const { return m_packetsPerSecondHasBeenSet; } /** *

A statistics object that uses packets per second as the unit. This is * included for network level attacks.

*/ inline void SetPacketsPerSecond(const AttackVolumeStatistics& value) { m_packetsPerSecondHasBeenSet = true; m_packetsPerSecond = value; } /** *

A statistics object that uses packets per second as the unit. This is * included for network level attacks.

*/ inline void SetPacketsPerSecond(AttackVolumeStatistics&& value) { m_packetsPerSecondHasBeenSet = true; m_packetsPerSecond = std::move(value); } /** *

A statistics object that uses packets per second as the unit. This is * included for network level attacks.

*/ inline AttackVolume& WithPacketsPerSecond(const AttackVolumeStatistics& value) { SetPacketsPerSecond(value); return *this;} /** *

A statistics object that uses packets per second as the unit. This is * included for network level attacks.

*/ inline AttackVolume& WithPacketsPerSecond(AttackVolumeStatistics&& value) { SetPacketsPerSecond(std::move(value)); return *this;} /** *

A statistics object that uses requests per second as the unit. This is * included for application level attacks, and is only available for accounts that * are subscribed to Shield Advanced.

*/ inline const AttackVolumeStatistics& GetRequestsPerSecond() const{ return m_requestsPerSecond; } /** *

A statistics object that uses requests per second as the unit. This is * included for application level attacks, and is only available for accounts that * are subscribed to Shield Advanced.

*/ inline bool RequestsPerSecondHasBeenSet() const { return m_requestsPerSecondHasBeenSet; } /** *

A statistics object that uses requests per second as the unit. This is * included for application level attacks, and is only available for accounts that * are subscribed to Shield Advanced.

*/ inline void SetRequestsPerSecond(const AttackVolumeStatistics& value) { m_requestsPerSecondHasBeenSet = true; m_requestsPerSecond = value; } /** *

A statistics object that uses requests per second as the unit. This is * included for application level attacks, and is only available for accounts that * are subscribed to Shield Advanced.

*/ inline void SetRequestsPerSecond(AttackVolumeStatistics&& value) { m_requestsPerSecondHasBeenSet = true; m_requestsPerSecond = std::move(value); } /** *

A statistics object that uses requests per second as the unit. This is * included for application level attacks, and is only available for accounts that * are subscribed to Shield Advanced.

*/ inline AttackVolume& WithRequestsPerSecond(const AttackVolumeStatistics& value) { SetRequestsPerSecond(value); return *this;} /** *

A statistics object that uses requests per second as the unit. This is * included for application level attacks, and is only available for accounts that * are subscribed to Shield Advanced.

*/ inline AttackVolume& WithRequestsPerSecond(AttackVolumeStatistics&& value) { SetRequestsPerSecond(std::move(value)); return *this;} private: AttackVolumeStatistics m_bitsPerSecond; bool m_bitsPerSecondHasBeenSet; AttackVolumeStatistics m_packetsPerSecond; bool m_packetsPerSecondHasBeenSet; AttackVolumeStatistics m_requestsPerSecond; bool m_requestsPerSecondHasBeenSet; }; } // namespace Model } // namespace Shield } // namespace Aws