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/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/storagegateway/model/BandwidthRateLimitInterval.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 template<typename RESULT_TYPE>
16 class AmazonWebServiceResult;
17 
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23 } // namespace Json
24 } // namespace Utils
25 namespace StorageGateway
26 {
27 namespace Model
28 {
29   class AWS_STORAGEGATEWAY_API DescribeBandwidthRateLimitScheduleResult
30   {
31   public:
32     DescribeBandwidthRateLimitScheduleResult();
33     DescribeBandwidthRateLimitScheduleResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
34     DescribeBandwidthRateLimitScheduleResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35 
36 
37 
GetGatewayARN()38     inline const Aws::String& GetGatewayARN() const{ return m_gatewayARN; }
39 
40 
SetGatewayARN(const Aws::String & value)41     inline void SetGatewayARN(const Aws::String& value) { m_gatewayARN = value; }
42 
43 
SetGatewayARN(Aws::String && value)44     inline void SetGatewayARN(Aws::String&& value) { m_gatewayARN = std::move(value); }
45 
46 
SetGatewayARN(const char * value)47     inline void SetGatewayARN(const char* value) { m_gatewayARN.assign(value); }
48 
49 
WithGatewayARN(const Aws::String & value)50     inline DescribeBandwidthRateLimitScheduleResult& WithGatewayARN(const Aws::String& value) { SetGatewayARN(value); return *this;}
51 
52 
WithGatewayARN(Aws::String && value)53     inline DescribeBandwidthRateLimitScheduleResult& WithGatewayARN(Aws::String&& value) { SetGatewayARN(std::move(value)); return *this;}
54 
55 
WithGatewayARN(const char * value)56     inline DescribeBandwidthRateLimitScheduleResult& WithGatewayARN(const char* value) { SetGatewayARN(value); return *this;}
57 
58 
59     /**
60      * <p> An array that contains the bandwidth rate limit intervals for a tape or
61      * volume gateway. </p>
62      */
GetBandwidthRateLimitIntervals()63     inline const Aws::Vector<BandwidthRateLimitInterval>& GetBandwidthRateLimitIntervals() const{ return m_bandwidthRateLimitIntervals; }
64 
65     /**
66      * <p> An array that contains the bandwidth rate limit intervals for a tape or
67      * volume gateway. </p>
68      */
SetBandwidthRateLimitIntervals(const Aws::Vector<BandwidthRateLimitInterval> & value)69     inline void SetBandwidthRateLimitIntervals(const Aws::Vector<BandwidthRateLimitInterval>& value) { m_bandwidthRateLimitIntervals = value; }
70 
71     /**
72      * <p> An array that contains the bandwidth rate limit intervals for a tape or
73      * volume gateway. </p>
74      */
SetBandwidthRateLimitIntervals(Aws::Vector<BandwidthRateLimitInterval> && value)75     inline void SetBandwidthRateLimitIntervals(Aws::Vector<BandwidthRateLimitInterval>&& value) { m_bandwidthRateLimitIntervals = std::move(value); }
76 
77     /**
78      * <p> An array that contains the bandwidth rate limit intervals for a tape or
79      * volume gateway. </p>
80      */
WithBandwidthRateLimitIntervals(const Aws::Vector<BandwidthRateLimitInterval> & value)81     inline DescribeBandwidthRateLimitScheduleResult& WithBandwidthRateLimitIntervals(const Aws::Vector<BandwidthRateLimitInterval>& value) { SetBandwidthRateLimitIntervals(value); return *this;}
82 
83     /**
84      * <p> An array that contains the bandwidth rate limit intervals for a tape or
85      * volume gateway. </p>
86      */
WithBandwidthRateLimitIntervals(Aws::Vector<BandwidthRateLimitInterval> && value)87     inline DescribeBandwidthRateLimitScheduleResult& WithBandwidthRateLimitIntervals(Aws::Vector<BandwidthRateLimitInterval>&& value) { SetBandwidthRateLimitIntervals(std::move(value)); return *this;}
88 
89     /**
90      * <p> An array that contains the bandwidth rate limit intervals for a tape or
91      * volume gateway. </p>
92      */
AddBandwidthRateLimitIntervals(const BandwidthRateLimitInterval & value)93     inline DescribeBandwidthRateLimitScheduleResult& AddBandwidthRateLimitIntervals(const BandwidthRateLimitInterval& value) { m_bandwidthRateLimitIntervals.push_back(value); return *this; }
94 
95     /**
96      * <p> An array that contains the bandwidth rate limit intervals for a tape or
97      * volume gateway. </p>
98      */
AddBandwidthRateLimitIntervals(BandwidthRateLimitInterval && value)99     inline DescribeBandwidthRateLimitScheduleResult& AddBandwidthRateLimitIntervals(BandwidthRateLimitInterval&& value) { m_bandwidthRateLimitIntervals.push_back(std::move(value)); return *this; }
100 
101   private:
102 
103     Aws::String m_gatewayARN;
104 
105     Aws::Vector<BandwidthRateLimitInterval> m_bandwidthRateLimitIntervals;
106   };
107 
108 } // namespace Model
109 } // namespace StorageGateway
110 } // namespace Aws
111