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/storagegateway/StorageGateway_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSVector.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 StorageGateway 22 { 23 namespace Model 24 { 25 26 /** 27 * <p> Describes a bandwidth rate limit interval for a gateway. A bandwidth rate 28 * limit schedule consists of one or more bandwidth rate limit intervals. A 29 * bandwidth rate limit interval defines a period of time on one or more days of 30 * the week, during which bandwidth rate limits are specified for uploading, 31 * downloading, or both. </p><p><h3>See Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/BandwidthRateLimitInterval">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_STORAGEGATEWAY_API BandwidthRateLimitInterval 36 { 37 public: 38 BandwidthRateLimitInterval(); 39 BandwidthRateLimitInterval(Aws::Utils::Json::JsonView jsonValue); 40 BandwidthRateLimitInterval& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * <p> The hour of the day to start the bandwidth rate limit interval. </p> 46 */ GetStartHourOfDay()47 inline int GetStartHourOfDay() const{ return m_startHourOfDay; } 48 49 /** 50 * <p> The hour of the day to start the bandwidth rate limit interval. </p> 51 */ StartHourOfDayHasBeenSet()52 inline bool StartHourOfDayHasBeenSet() const { return m_startHourOfDayHasBeenSet; } 53 54 /** 55 * <p> The hour of the day to start the bandwidth rate limit interval. </p> 56 */ SetStartHourOfDay(int value)57 inline void SetStartHourOfDay(int value) { m_startHourOfDayHasBeenSet = true; m_startHourOfDay = value; } 58 59 /** 60 * <p> The hour of the day to start the bandwidth rate limit interval. </p> 61 */ WithStartHourOfDay(int value)62 inline BandwidthRateLimitInterval& WithStartHourOfDay(int value) { SetStartHourOfDay(value); return *this;} 63 64 65 /** 66 * <p> The minute of the hour to start the bandwidth rate limit interval. The 67 * interval begins at the start of that minute. To begin an interval exactly at the 68 * start of the hour, use the value <code>0</code>. </p> 69 */ GetStartMinuteOfHour()70 inline int GetStartMinuteOfHour() const{ return m_startMinuteOfHour; } 71 72 /** 73 * <p> The minute of the hour to start the bandwidth rate limit interval. The 74 * interval begins at the start of that minute. To begin an interval exactly at the 75 * start of the hour, use the value <code>0</code>. </p> 76 */ StartMinuteOfHourHasBeenSet()77 inline bool StartMinuteOfHourHasBeenSet() const { return m_startMinuteOfHourHasBeenSet; } 78 79 /** 80 * <p> The minute of the hour to start the bandwidth rate limit interval. The 81 * interval begins at the start of that minute. To begin an interval exactly at the 82 * start of the hour, use the value <code>0</code>. </p> 83 */ SetStartMinuteOfHour(int value)84 inline void SetStartMinuteOfHour(int value) { m_startMinuteOfHourHasBeenSet = true; m_startMinuteOfHour = value; } 85 86 /** 87 * <p> The minute of the hour to start the bandwidth rate limit interval. The 88 * interval begins at the start of that minute. To begin an interval exactly at the 89 * start of the hour, use the value <code>0</code>. </p> 90 */ WithStartMinuteOfHour(int value)91 inline BandwidthRateLimitInterval& WithStartMinuteOfHour(int value) { SetStartMinuteOfHour(value); return *this;} 92 93 94 /** 95 * <p> The hour of the day to end the bandwidth rate limit interval. </p> 96 */ GetEndHourOfDay()97 inline int GetEndHourOfDay() const{ return m_endHourOfDay; } 98 99 /** 100 * <p> The hour of the day to end the bandwidth rate limit interval. </p> 101 */ EndHourOfDayHasBeenSet()102 inline bool EndHourOfDayHasBeenSet() const { return m_endHourOfDayHasBeenSet; } 103 104 /** 105 * <p> The hour of the day to end the bandwidth rate limit interval. </p> 106 */ SetEndHourOfDay(int value)107 inline void SetEndHourOfDay(int value) { m_endHourOfDayHasBeenSet = true; m_endHourOfDay = value; } 108 109 /** 110 * <p> The hour of the day to end the bandwidth rate limit interval. </p> 111 */ WithEndHourOfDay(int value)112 inline BandwidthRateLimitInterval& WithEndHourOfDay(int value) { SetEndHourOfDay(value); return *this;} 113 114 115 /** 116 * <p> The minute of the hour to end the bandwidth rate limit interval. </p> 117 * <p> The bandwidth rate limit interval ends at the end of the minute. 118 * To end an interval at the end of an hour, use the value <code>59</code>. </p> 119 * 120 */ GetEndMinuteOfHour()121 inline int GetEndMinuteOfHour() const{ return m_endMinuteOfHour; } 122 123 /** 124 * <p> The minute of the hour to end the bandwidth rate limit interval. </p> 125 * <p> The bandwidth rate limit interval ends at the end of the minute. 126 * To end an interval at the end of an hour, use the value <code>59</code>. </p> 127 * 128 */ EndMinuteOfHourHasBeenSet()129 inline bool EndMinuteOfHourHasBeenSet() const { return m_endMinuteOfHourHasBeenSet; } 130 131 /** 132 * <p> The minute of the hour to end the bandwidth rate limit interval. </p> 133 * <p> The bandwidth rate limit interval ends at the end of the minute. 134 * To end an interval at the end of an hour, use the value <code>59</code>. </p> 135 * 136 */ SetEndMinuteOfHour(int value)137 inline void SetEndMinuteOfHour(int value) { m_endMinuteOfHourHasBeenSet = true; m_endMinuteOfHour = value; } 138 139 /** 140 * <p> The minute of the hour to end the bandwidth rate limit interval. </p> 141 * <p> The bandwidth rate limit interval ends at the end of the minute. 142 * To end an interval at the end of an hour, use the value <code>59</code>. </p> 143 * 144 */ WithEndMinuteOfHour(int value)145 inline BandwidthRateLimitInterval& WithEndMinuteOfHour(int value) { SetEndMinuteOfHour(value); return *this;} 146 147 148 /** 149 * <p> The days of the week component of the bandwidth rate limit interval, 150 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 151 * represents Saturday. </p> 152 */ GetDaysOfWeek()153 inline const Aws::Vector<int>& GetDaysOfWeek() const{ return m_daysOfWeek; } 154 155 /** 156 * <p> The days of the week component of the bandwidth rate limit interval, 157 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 158 * represents Saturday. </p> 159 */ DaysOfWeekHasBeenSet()160 inline bool DaysOfWeekHasBeenSet() const { return m_daysOfWeekHasBeenSet; } 161 162 /** 163 * <p> The days of the week component of the bandwidth rate limit interval, 164 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 165 * represents Saturday. </p> 166 */ SetDaysOfWeek(const Aws::Vector<int> & value)167 inline void SetDaysOfWeek(const Aws::Vector<int>& value) { m_daysOfWeekHasBeenSet = true; m_daysOfWeek = value; } 168 169 /** 170 * <p> The days of the week component of the bandwidth rate limit interval, 171 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 172 * represents Saturday. </p> 173 */ SetDaysOfWeek(Aws::Vector<int> && value)174 inline void SetDaysOfWeek(Aws::Vector<int>&& value) { m_daysOfWeekHasBeenSet = true; m_daysOfWeek = std::move(value); } 175 176 /** 177 * <p> The days of the week component of the bandwidth rate limit interval, 178 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 179 * represents Saturday. </p> 180 */ WithDaysOfWeek(const Aws::Vector<int> & value)181 inline BandwidthRateLimitInterval& WithDaysOfWeek(const Aws::Vector<int>& value) { SetDaysOfWeek(value); return *this;} 182 183 /** 184 * <p> The days of the week component of the bandwidth rate limit interval, 185 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 186 * represents Saturday. </p> 187 */ WithDaysOfWeek(Aws::Vector<int> && value)188 inline BandwidthRateLimitInterval& WithDaysOfWeek(Aws::Vector<int>&& value) { SetDaysOfWeek(std::move(value)); return *this;} 189 190 /** 191 * <p> The days of the week component of the bandwidth rate limit interval, 192 * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 193 * represents Saturday. </p> 194 */ AddDaysOfWeek(int value)195 inline BandwidthRateLimitInterval& AddDaysOfWeek(int value) { m_daysOfWeekHasBeenSet = true; m_daysOfWeek.push_back(value); return *this; } 196 197 198 /** 199 * <p> The average upload rate limit component of the bandwidth rate limit 200 * interval, in bits per second. This field does not appear in the response if the 201 * upload rate limit is not set. </p> 202 */ GetAverageUploadRateLimitInBitsPerSec()203 inline long long GetAverageUploadRateLimitInBitsPerSec() const{ return m_averageUploadRateLimitInBitsPerSec; } 204 205 /** 206 * <p> The average upload rate limit component of the bandwidth rate limit 207 * interval, in bits per second. This field does not appear in the response if the 208 * upload rate limit is not set. </p> 209 */ AverageUploadRateLimitInBitsPerSecHasBeenSet()210 inline bool AverageUploadRateLimitInBitsPerSecHasBeenSet() const { return m_averageUploadRateLimitInBitsPerSecHasBeenSet; } 211 212 /** 213 * <p> The average upload rate limit component of the bandwidth rate limit 214 * interval, in bits per second. This field does not appear in the response if the 215 * upload rate limit is not set. </p> 216 */ SetAverageUploadRateLimitInBitsPerSec(long long value)217 inline void SetAverageUploadRateLimitInBitsPerSec(long long value) { m_averageUploadRateLimitInBitsPerSecHasBeenSet = true; m_averageUploadRateLimitInBitsPerSec = value; } 218 219 /** 220 * <p> The average upload rate limit component of the bandwidth rate limit 221 * interval, in bits per second. This field does not appear in the response if the 222 * upload rate limit is not set. </p> 223 */ WithAverageUploadRateLimitInBitsPerSec(long long value)224 inline BandwidthRateLimitInterval& WithAverageUploadRateLimitInBitsPerSec(long long value) { SetAverageUploadRateLimitInBitsPerSec(value); return *this;} 225 226 227 /** 228 * <p> The average download rate limit component of the bandwidth rate limit 229 * interval, in bits per second. This field does not appear in the response if the 230 * download rate limit is not set. </p> 231 */ GetAverageDownloadRateLimitInBitsPerSec()232 inline long long GetAverageDownloadRateLimitInBitsPerSec() const{ return m_averageDownloadRateLimitInBitsPerSec; } 233 234 /** 235 * <p> The average download rate limit component of the bandwidth rate limit 236 * interval, in bits per second. This field does not appear in the response if the 237 * download rate limit is not set. </p> 238 */ AverageDownloadRateLimitInBitsPerSecHasBeenSet()239 inline bool AverageDownloadRateLimitInBitsPerSecHasBeenSet() const { return m_averageDownloadRateLimitInBitsPerSecHasBeenSet; } 240 241 /** 242 * <p> The average download rate limit component of the bandwidth rate limit 243 * interval, in bits per second. This field does not appear in the response if the 244 * download rate limit is not set. </p> 245 */ SetAverageDownloadRateLimitInBitsPerSec(long long value)246 inline void SetAverageDownloadRateLimitInBitsPerSec(long long value) { m_averageDownloadRateLimitInBitsPerSecHasBeenSet = true; m_averageDownloadRateLimitInBitsPerSec = value; } 247 248 /** 249 * <p> The average download rate limit component of the bandwidth rate limit 250 * interval, in bits per second. This field does not appear in the response if the 251 * download rate limit is not set. </p> 252 */ WithAverageDownloadRateLimitInBitsPerSec(long long value)253 inline BandwidthRateLimitInterval& WithAverageDownloadRateLimitInBitsPerSec(long long value) { SetAverageDownloadRateLimitInBitsPerSec(value); return *this;} 254 255 private: 256 257 int m_startHourOfDay; 258 bool m_startHourOfDayHasBeenSet; 259 260 int m_startMinuteOfHour; 261 bool m_startMinuteOfHourHasBeenSet; 262 263 int m_endHourOfDay; 264 bool m_endHourOfDayHasBeenSet; 265 266 int m_endMinuteOfHour; 267 bool m_endMinuteOfHourHasBeenSet; 268 269 Aws::Vector<int> m_daysOfWeek; 270 bool m_daysOfWeekHasBeenSet; 271 272 long long m_averageUploadRateLimitInBitsPerSec; 273 bool m_averageUploadRateLimitInBitsPerSecHasBeenSet; 274 275 long long m_averageDownloadRateLimitInBitsPerSec; 276 bool m_averageDownloadRateLimitInBitsPerSecHasBeenSet; 277 }; 278 279 } // namespace Model 280 } // namespace StorageGateway 281 } // namespace Aws 282