AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
CreateUsageLimitRequest.h
1
6#pragma once
7#include <aws/redshift/Redshift_EXPORTS.h>
8#include <aws/redshift/RedshiftRequest.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/redshift/model/UsageLimitFeatureType.h>
11#include <aws/redshift/model/UsageLimitLimitType.h>
12#include <aws/redshift/model/UsageLimitPeriod.h>
13#include <aws/redshift/model/UsageLimitBreachAction.h>
14#include <aws/core/utils/memory/stl/AWSVector.h>
15#include <aws/redshift/model/Tag.h>
16#include <utility>
17
18namespace Aws
19{
20namespace Redshift
21{
22namespace Model
23{
24
28 {
29 public:
30 AWS_REDSHIFT_API CreateUsageLimitRequest() = default;
31
32 // Service request name is the Operation name which will send this request out,
33 // each operation should has unique request name, so that we can get operation's name from this request.
34 // Note: this is not true for response, multiple operations may have the same response name,
35 // so we can not get operation's name from response.
36 inline virtual const char* GetServiceRequestName() const override { return "CreateUsageLimit"; }
37
38 AWS_REDSHIFT_API Aws::String SerializePayload() const override;
39
40 protected:
41 AWS_REDSHIFT_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
42
43 public:
44
46
49 inline const Aws::String& GetClusterIdentifier() const { return m_clusterIdentifier; }
50 inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; }
51 template<typename ClusterIdentifierT = Aws::String>
52 void SetClusterIdentifier(ClusterIdentifierT&& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = std::forward<ClusterIdentifierT>(value); }
53 template<typename ClusterIdentifierT = Aws::String>
54 CreateUsageLimitRequest& WithClusterIdentifier(ClusterIdentifierT&& value) { SetClusterIdentifier(std::forward<ClusterIdentifierT>(value)); return *this;}
56
58
61 inline UsageLimitFeatureType GetFeatureType() const { return m_featureType; }
62 inline bool FeatureTypeHasBeenSet() const { return m_featureTypeHasBeenSet; }
63 inline void SetFeatureType(UsageLimitFeatureType value) { m_featureTypeHasBeenSet = true; m_featureType = value; }
66
68
77 inline UsageLimitLimitType GetLimitType() const { return m_limitType; }
78 inline bool LimitTypeHasBeenSet() const { return m_limitTypeHasBeenSet; }
79 inline void SetLimitType(UsageLimitLimitType value) { m_limitTypeHasBeenSet = true; m_limitType = value; }
82
84
88 inline long long GetAmount() const { return m_amount; }
89 inline bool AmountHasBeenSet() const { return m_amountHasBeenSet; }
90 inline void SetAmount(long long value) { m_amountHasBeenSet = true; m_amount = value; }
91 inline CreateUsageLimitRequest& WithAmount(long long value) { SetAmount(value); return *this;}
93
95
99 inline UsageLimitPeriod GetPeriod() const { return m_period; }
100 inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; }
101 inline void SetPeriod(UsageLimitPeriod value) { m_periodHasBeenSet = true; m_period = value; }
102 inline CreateUsageLimitRequest& WithPeriod(UsageLimitPeriod value) { SetPeriod(value); return *this;}
104
106
110 inline UsageLimitBreachAction GetBreachAction() const { return m_breachAction; }
111 inline bool BreachActionHasBeenSet() const { return m_breachActionHasBeenSet; }
112 inline void SetBreachAction(UsageLimitBreachAction value) { m_breachActionHasBeenSet = true; m_breachAction = value; }
115
117
120 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
121 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
122 template<typename TagsT = Aws::Vector<Tag>>
123 void SetTags(TagsT&& value) { m_tagsHasBeenSet = true; m_tags = std::forward<TagsT>(value); }
124 template<typename TagsT = Aws::Vector<Tag>>
125 CreateUsageLimitRequest& WithTags(TagsT&& value) { SetTags(std::forward<TagsT>(value)); return *this;}
126 template<typename TagsT = Tag>
127 CreateUsageLimitRequest& AddTags(TagsT&& value) { m_tagsHasBeenSet = true; m_tags.emplace_back(std::forward<TagsT>(value)); return *this; }
129 private:
130
131 Aws::String m_clusterIdentifier;
132 bool m_clusterIdentifierHasBeenSet = false;
133
135 bool m_featureTypeHasBeenSet = false;
136
138 bool m_limitTypeHasBeenSet = false;
139
140 long long m_amount{0};
141 bool m_amountHasBeenSet = false;
142
144 bool m_periodHasBeenSet = false;
145
147 bool m_breachActionHasBeenSet = false;
148
149 Aws::Vector<Tag> m_tags;
150 bool m_tagsHasBeenSet = false;
151 };
152
153} // namespace Model
154} // namespace Redshift
155} // 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