/** * 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 StorageGateway { namespace Model { /** *

Describes a bandwidth rate limit interval for a gateway. A bandwidth rate * limit schedule consists of one or more bandwidth rate limit intervals. A * bandwidth rate limit interval defines a period of time on one or more days of * the week, during which bandwidth rate limits are specified for uploading, * downloading, or both.

See Also:

AWS * API Reference

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

The hour of the day to start the bandwidth rate limit interval.

*/ inline int GetStartHourOfDay() const{ return m_startHourOfDay; } /** *

The hour of the day to start the bandwidth rate limit interval.

*/ inline bool StartHourOfDayHasBeenSet() const { return m_startHourOfDayHasBeenSet; } /** *

The hour of the day to start the bandwidth rate limit interval.

*/ inline void SetStartHourOfDay(int value) { m_startHourOfDayHasBeenSet = true; m_startHourOfDay = value; } /** *

The hour of the day to start the bandwidth rate limit interval.

*/ inline BandwidthRateLimitInterval& WithStartHourOfDay(int value) { SetStartHourOfDay(value); return *this;} /** *

The minute of the hour to start the bandwidth rate limit interval. The * interval begins at the start of that minute. To begin an interval exactly at the * start of the hour, use the value 0.

*/ inline int GetStartMinuteOfHour() const{ return m_startMinuteOfHour; } /** *

The minute of the hour to start the bandwidth rate limit interval. The * interval begins at the start of that minute. To begin an interval exactly at the * start of the hour, use the value 0.

*/ inline bool StartMinuteOfHourHasBeenSet() const { return m_startMinuteOfHourHasBeenSet; } /** *

The minute of the hour to start the bandwidth rate limit interval. The * interval begins at the start of that minute. To begin an interval exactly at the * start of the hour, use the value 0.

*/ inline void SetStartMinuteOfHour(int value) { m_startMinuteOfHourHasBeenSet = true; m_startMinuteOfHour = value; } /** *

The minute of the hour to start the bandwidth rate limit interval. The * interval begins at the start of that minute. To begin an interval exactly at the * start of the hour, use the value 0.

*/ inline BandwidthRateLimitInterval& WithStartMinuteOfHour(int value) { SetStartMinuteOfHour(value); return *this;} /** *

The hour of the day to end the bandwidth rate limit interval.

*/ inline int GetEndHourOfDay() const{ return m_endHourOfDay; } /** *

The hour of the day to end the bandwidth rate limit interval.

*/ inline bool EndHourOfDayHasBeenSet() const { return m_endHourOfDayHasBeenSet; } /** *

The hour of the day to end the bandwidth rate limit interval.

*/ inline void SetEndHourOfDay(int value) { m_endHourOfDayHasBeenSet = true; m_endHourOfDay = value; } /** *

The hour of the day to end the bandwidth rate limit interval.

*/ inline BandwidthRateLimitInterval& WithEndHourOfDay(int value) { SetEndHourOfDay(value); return *this;} /** *

The minute of the hour to end the bandwidth rate limit interval.

*

The bandwidth rate limit interval ends at the end of the minute. * To end an interval at the end of an hour, use the value 59.

* */ inline int GetEndMinuteOfHour() const{ return m_endMinuteOfHour; } /** *

The minute of the hour to end the bandwidth rate limit interval.

*

The bandwidth rate limit interval ends at the end of the minute. * To end an interval at the end of an hour, use the value 59.

* */ inline bool EndMinuteOfHourHasBeenSet() const { return m_endMinuteOfHourHasBeenSet; } /** *

The minute of the hour to end the bandwidth rate limit interval.

*

The bandwidth rate limit interval ends at the end of the minute. * To end an interval at the end of an hour, use the value 59.

* */ inline void SetEndMinuteOfHour(int value) { m_endMinuteOfHourHasBeenSet = true; m_endMinuteOfHour = value; } /** *

The minute of the hour to end the bandwidth rate limit interval.

*

The bandwidth rate limit interval ends at the end of the minute. * To end an interval at the end of an hour, use the value 59.

* */ inline BandwidthRateLimitInterval& WithEndMinuteOfHour(int value) { SetEndMinuteOfHour(value); return *this;} /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline const Aws::Vector& GetDaysOfWeek() const{ return m_daysOfWeek; } /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline bool DaysOfWeekHasBeenSet() const { return m_daysOfWeekHasBeenSet; } /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline void SetDaysOfWeek(const Aws::Vector& value) { m_daysOfWeekHasBeenSet = true; m_daysOfWeek = value; } /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline void SetDaysOfWeek(Aws::Vector&& value) { m_daysOfWeekHasBeenSet = true; m_daysOfWeek = std::move(value); } /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline BandwidthRateLimitInterval& WithDaysOfWeek(const Aws::Vector& value) { SetDaysOfWeek(value); return *this;} /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline BandwidthRateLimitInterval& WithDaysOfWeek(Aws::Vector&& value) { SetDaysOfWeek(std::move(value)); return *this;} /** *

The days of the week component of the bandwidth rate limit interval, * represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 * represents Saturday.

*/ inline BandwidthRateLimitInterval& AddDaysOfWeek(int value) { m_daysOfWeekHasBeenSet = true; m_daysOfWeek.push_back(value); return *this; } /** *

The average upload rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * upload rate limit is not set.

*/ inline long long GetAverageUploadRateLimitInBitsPerSec() const{ return m_averageUploadRateLimitInBitsPerSec; } /** *

The average upload rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * upload rate limit is not set.

*/ inline bool AverageUploadRateLimitInBitsPerSecHasBeenSet() const { return m_averageUploadRateLimitInBitsPerSecHasBeenSet; } /** *

The average upload rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * upload rate limit is not set.

*/ inline void SetAverageUploadRateLimitInBitsPerSec(long long value) { m_averageUploadRateLimitInBitsPerSecHasBeenSet = true; m_averageUploadRateLimitInBitsPerSec = value; } /** *

The average upload rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * upload rate limit is not set.

*/ inline BandwidthRateLimitInterval& WithAverageUploadRateLimitInBitsPerSec(long long value) { SetAverageUploadRateLimitInBitsPerSec(value); return *this;} /** *

The average download rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * download rate limit is not set.

*/ inline long long GetAverageDownloadRateLimitInBitsPerSec() const{ return m_averageDownloadRateLimitInBitsPerSec; } /** *

The average download rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * download rate limit is not set.

*/ inline bool AverageDownloadRateLimitInBitsPerSecHasBeenSet() const { return m_averageDownloadRateLimitInBitsPerSecHasBeenSet; } /** *

The average download rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * download rate limit is not set.

*/ inline void SetAverageDownloadRateLimitInBitsPerSec(long long value) { m_averageDownloadRateLimitInBitsPerSecHasBeenSet = true; m_averageDownloadRateLimitInBitsPerSec = value; } /** *

The average download rate limit component of the bandwidth rate limit * interval, in bits per second. This field does not appear in the response if the * download rate limit is not set.

*/ inline BandwidthRateLimitInterval& WithAverageDownloadRateLimitInBitsPerSec(long long value) { SetAverageDownloadRateLimitInBitsPerSec(value); return *this;} private: int m_startHourOfDay; bool m_startHourOfDayHasBeenSet = false; int m_startMinuteOfHour; bool m_startMinuteOfHourHasBeenSet = false; int m_endHourOfDay; bool m_endHourOfDayHasBeenSet = false; int m_endMinuteOfHour; bool m_endMinuteOfHourHasBeenSet = false; Aws::Vector m_daysOfWeek; bool m_daysOfWeekHasBeenSet = false; long long m_averageUploadRateLimitInBitsPerSec; bool m_averageUploadRateLimitInBitsPerSecHasBeenSet = false; long long m_averageDownloadRateLimitInBitsPerSec; bool m_averageDownloadRateLimitInBitsPerSecHasBeenSet = false; }; } // namespace Model } // namespace StorageGateway } // namespace Aws