AWS SDK for C++

AWS SDK for C++ Version 1.11.714

Loading...
Searching...
No Matches
CreateUsageLimitRequest.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSString.h>
8#include <aws/core/utils/memory/stl/AWSVector.h>
9#include <aws/redshift/RedshiftRequest.h>
10#include <aws/redshift/Redshift_EXPORTS.h>
11#include <aws/redshift/model/Tag.h>
12#include <aws/redshift/model/UsageLimitBreachAction.h>
13#include <aws/redshift/model/UsageLimitFeatureType.h>
14#include <aws/redshift/model/UsageLimitLimitType.h>
15#include <aws/redshift/model/UsageLimitPeriod.h>
16
17#include <utility>
18
19namespace Aws {
20namespace Redshift {
21namespace Model {
22
26 public:
27 AWS_REDSHIFT_API CreateUsageLimitRequest() = default;
28
29 // Service request name is the Operation name which will send this request out,
30 // each operation should has unique request name, so that we can get operation's name from this request.
31 // Note: this is not true for response, multiple operations may have the same response name,
32 // so we can not get operation's name from response.
33 inline virtual const char* GetServiceRequestName() const override { return "CreateUsageLimit"; }
34
35 AWS_REDSHIFT_API Aws::String SerializePayload() const override;
36
37 protected:
38 AWS_REDSHIFT_API void DumpBodyToUrl(Aws::Http::URI& uri) const override;
39
40 public:
42
45 inline const Aws::String& GetClusterIdentifier() const { return m_clusterIdentifier; }
46 inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; }
47 template <typename ClusterIdentifierT = Aws::String>
48 void SetClusterIdentifier(ClusterIdentifierT&& value) {
49 m_clusterIdentifierHasBeenSet = true;
50 m_clusterIdentifier = std::forward<ClusterIdentifierT>(value);
51 }
52 template <typename ClusterIdentifierT = Aws::String>
53 CreateUsageLimitRequest& WithClusterIdentifier(ClusterIdentifierT&& value) {
54 SetClusterIdentifier(std::forward<ClusterIdentifierT>(value));
55 return *this;
56 }
58
60
63 inline UsageLimitFeatureType GetFeatureType() const { return m_featureType; }
64 inline bool FeatureTypeHasBeenSet() const { return m_featureTypeHasBeenSet; }
66 m_featureTypeHasBeenSet = true;
67 m_featureType = value;
68 }
70 SetFeatureType(value);
71 return *this;
72 }
74
76
85 inline UsageLimitLimitType GetLimitType() const { return m_limitType; }
86 inline bool LimitTypeHasBeenSet() const { return m_limitTypeHasBeenSet; }
87 inline void SetLimitType(UsageLimitLimitType value) {
88 m_limitTypeHasBeenSet = true;
89 m_limitType = value;
90 }
92 SetLimitType(value);
93 return *this;
94 }
96
98
102 inline long long GetAmount() const { return m_amount; }
103 inline bool AmountHasBeenSet() const { return m_amountHasBeenSet; }
104 inline void SetAmount(long long value) {
105 m_amountHasBeenSet = true;
106 m_amount = value;
107 }
108 inline CreateUsageLimitRequest& WithAmount(long long value) {
109 SetAmount(value);
110 return *this;
111 }
113
115
119 inline UsageLimitPeriod GetPeriod() const { return m_period; }
120 inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; }
121 inline void SetPeriod(UsageLimitPeriod value) {
122 m_periodHasBeenSet = true;
123 m_period = value;
124 }
126 SetPeriod(value);
127 return *this;
128 }
130
132
136 inline UsageLimitBreachAction GetBreachAction() const { return m_breachAction; }
137 inline bool BreachActionHasBeenSet() const { return m_breachActionHasBeenSet; }
139 m_breachActionHasBeenSet = true;
140 m_breachAction = value;
141 }
143 SetBreachAction(value);
144 return *this;
145 }
147
149
152 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
153 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
154 template <typename TagsT = Aws::Vector<Tag>>
155 void SetTags(TagsT&& value) {
156 m_tagsHasBeenSet = true;
157 m_tags = std::forward<TagsT>(value);
158 }
159 template <typename TagsT = Aws::Vector<Tag>>
161 SetTags(std::forward<TagsT>(value));
162 return *this;
163 }
164 template <typename TagsT = Tag>
166 m_tagsHasBeenSet = true;
167 m_tags.emplace_back(std::forward<TagsT>(value));
168 return *this;
169 }
171 private:
172 Aws::String m_clusterIdentifier;
173
175
177
178 long long m_amount{0};
179
181
183
184 Aws::Vector<Tag> m_tags;
185 bool m_clusterIdentifierHasBeenSet = false;
186 bool m_featureTypeHasBeenSet = false;
187 bool m_limitTypeHasBeenSet = false;
188 bool m_amountHasBeenSet = false;
189 bool m_periodHasBeenSet = false;
190 bool m_breachActionHasBeenSet = false;
191 bool m_tagsHasBeenSet = false;
192};
193
194} // namespace Model
195} // namespace Redshift
196} // namespace Aws
CreateUsageLimitRequest & WithBreachAction(UsageLimitBreachAction value)
CreateUsageLimitRequest & AddTags(TagsT &&value)
CreateUsageLimitRequest & WithClusterIdentifier(ClusterIdentifierT &&value)
CreateUsageLimitRequest & WithLimitType(UsageLimitLimitType value)
AWS_REDSHIFT_API void DumpBodyToUrl(Aws::Http::URI &uri) const override
AWS_REDSHIFT_API CreateUsageLimitRequest()=default
CreateUsageLimitRequest & WithPeriod(UsageLimitPeriod value)
CreateUsageLimitRequest & WithAmount(long long value)
virtual const char * GetServiceRequestName() const override
AWS_REDSHIFT_API Aws::String SerializePayload() const override
CreateUsageLimitRequest & WithTags(TagsT &&value)
void SetClusterIdentifier(ClusterIdentifierT &&value)
CreateUsageLimitRequest & WithFeatureType(UsageLimitFeatureType value)
void SetBreachAction(UsageLimitBreachAction value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector