1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/shield/Shield_EXPORTS.h> 8 #include <aws/shield/model/AttackVolumeStatistics.h> 9 #include <utility> 10 11 namespace Aws 12 { 13 namespace Utils 14 { 15 namespace Json 16 { 17 class JsonValue; 18 class JsonView; 19 } // namespace Json 20 } // namespace Utils 21 namespace Shield 22 { 23 namespace Model 24 { 25 26 /** 27 * <p>Information about the volume of attacks during the time period, included in 28 * an <a>AttackStatisticsDataItem</a>. If the accompanying <code>AttackCount</code> 29 * in the statistics object is zero, this setting might be empty.</p><p><h3>See 30 * Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackVolume">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_SHIELD_API AttackVolume 35 { 36 public: 37 AttackVolume(); 38 AttackVolume(Aws::Utils::Json::JsonView jsonValue); 39 AttackVolume& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * <p>A statistics object that uses bits per second as the unit. This is included 45 * for network level attacks. </p> 46 */ GetBitsPerSecond()47 inline const AttackVolumeStatistics& GetBitsPerSecond() const{ return m_bitsPerSecond; } 48 49 /** 50 * <p>A statistics object that uses bits per second as the unit. This is included 51 * for network level attacks. </p> 52 */ BitsPerSecondHasBeenSet()53 inline bool BitsPerSecondHasBeenSet() const { return m_bitsPerSecondHasBeenSet; } 54 55 /** 56 * <p>A statistics object that uses bits per second as the unit. This is included 57 * for network level attacks. </p> 58 */ SetBitsPerSecond(const AttackVolumeStatistics & value)59 inline void SetBitsPerSecond(const AttackVolumeStatistics& value) { m_bitsPerSecondHasBeenSet = true; m_bitsPerSecond = value; } 60 61 /** 62 * <p>A statistics object that uses bits per second as the unit. This is included 63 * for network level attacks. </p> 64 */ SetBitsPerSecond(AttackVolumeStatistics && value)65 inline void SetBitsPerSecond(AttackVolumeStatistics&& value) { m_bitsPerSecondHasBeenSet = true; m_bitsPerSecond = std::move(value); } 66 67 /** 68 * <p>A statistics object that uses bits per second as the unit. This is included 69 * for network level attacks. </p> 70 */ WithBitsPerSecond(const AttackVolumeStatistics & value)71 inline AttackVolume& WithBitsPerSecond(const AttackVolumeStatistics& value) { SetBitsPerSecond(value); return *this;} 72 73 /** 74 * <p>A statistics object that uses bits per second as the unit. This is included 75 * for network level attacks. </p> 76 */ WithBitsPerSecond(AttackVolumeStatistics && value)77 inline AttackVolume& WithBitsPerSecond(AttackVolumeStatistics&& value) { SetBitsPerSecond(std::move(value)); return *this;} 78 79 80 /** 81 * <p>A statistics object that uses packets per second as the unit. This is 82 * included for network level attacks. </p> 83 */ GetPacketsPerSecond()84 inline const AttackVolumeStatistics& GetPacketsPerSecond() const{ return m_packetsPerSecond; } 85 86 /** 87 * <p>A statistics object that uses packets per second as the unit. This is 88 * included for network level attacks. </p> 89 */ PacketsPerSecondHasBeenSet()90 inline bool PacketsPerSecondHasBeenSet() const { return m_packetsPerSecondHasBeenSet; } 91 92 /** 93 * <p>A statistics object that uses packets per second as the unit. This is 94 * included for network level attacks. </p> 95 */ SetPacketsPerSecond(const AttackVolumeStatistics & value)96 inline void SetPacketsPerSecond(const AttackVolumeStatistics& value) { m_packetsPerSecondHasBeenSet = true; m_packetsPerSecond = value; } 97 98 /** 99 * <p>A statistics object that uses packets per second as the unit. This is 100 * included for network level attacks. </p> 101 */ SetPacketsPerSecond(AttackVolumeStatistics && value)102 inline void SetPacketsPerSecond(AttackVolumeStatistics&& value) { m_packetsPerSecondHasBeenSet = true; m_packetsPerSecond = std::move(value); } 103 104 /** 105 * <p>A statistics object that uses packets per second as the unit. This is 106 * included for network level attacks. </p> 107 */ WithPacketsPerSecond(const AttackVolumeStatistics & value)108 inline AttackVolume& WithPacketsPerSecond(const AttackVolumeStatistics& value) { SetPacketsPerSecond(value); return *this;} 109 110 /** 111 * <p>A statistics object that uses packets per second as the unit. This is 112 * included for network level attacks. </p> 113 */ WithPacketsPerSecond(AttackVolumeStatistics && value)114 inline AttackVolume& WithPacketsPerSecond(AttackVolumeStatistics&& value) { SetPacketsPerSecond(std::move(value)); return *this;} 115 116 117 /** 118 * <p>A statistics object that uses requests per second as the unit. This is 119 * included for application level attacks, and is only available for accounts that 120 * are subscribed to Shield Advanced.</p> 121 */ GetRequestsPerSecond()122 inline const AttackVolumeStatistics& GetRequestsPerSecond() const{ return m_requestsPerSecond; } 123 124 /** 125 * <p>A statistics object that uses requests per second as the unit. This is 126 * included for application level attacks, and is only available for accounts that 127 * are subscribed to Shield Advanced.</p> 128 */ RequestsPerSecondHasBeenSet()129 inline bool RequestsPerSecondHasBeenSet() const { return m_requestsPerSecondHasBeenSet; } 130 131 /** 132 * <p>A statistics object that uses requests per second as the unit. This is 133 * included for application level attacks, and is only available for accounts that 134 * are subscribed to Shield Advanced.</p> 135 */ SetRequestsPerSecond(const AttackVolumeStatistics & value)136 inline void SetRequestsPerSecond(const AttackVolumeStatistics& value) { m_requestsPerSecondHasBeenSet = true; m_requestsPerSecond = value; } 137 138 /** 139 * <p>A statistics object that uses requests per second as the unit. This is 140 * included for application level attacks, and is only available for accounts that 141 * are subscribed to Shield Advanced.</p> 142 */ SetRequestsPerSecond(AttackVolumeStatistics && value)143 inline void SetRequestsPerSecond(AttackVolumeStatistics&& value) { m_requestsPerSecondHasBeenSet = true; m_requestsPerSecond = std::move(value); } 144 145 /** 146 * <p>A statistics object that uses requests per second as the unit. This is 147 * included for application level attacks, and is only available for accounts that 148 * are subscribed to Shield Advanced.</p> 149 */ WithRequestsPerSecond(const AttackVolumeStatistics & value)150 inline AttackVolume& WithRequestsPerSecond(const AttackVolumeStatistics& value) { SetRequestsPerSecond(value); return *this;} 151 152 /** 153 * <p>A statistics object that uses requests per second as the unit. This is 154 * included for application level attacks, and is only available for accounts that 155 * are subscribed to Shield Advanced.</p> 156 */ WithRequestsPerSecond(AttackVolumeStatistics && value)157 inline AttackVolume& WithRequestsPerSecond(AttackVolumeStatistics&& value) { SetRequestsPerSecond(std::move(value)); return *this;} 158 159 private: 160 161 AttackVolumeStatistics m_bitsPerSecond; 162 bool m_bitsPerSecondHasBeenSet; 163 164 AttackVolumeStatistics m_packetsPerSecond; 165 bool m_packetsPerSecondHasBeenSet; 166 167 AttackVolumeStatistics m_requestsPerSecond; 168 bool m_requestsPerSecondHasBeenSet; 169 }; 170 171 } // namespace Model 172 } // namespace Shield 173 } // namespace Aws 174