AWS SDK for C++

AWS SDK for C++ Version 1.11.719

Loading...
Searching...
No Matches
TransitGatewayMeteringPolicy.h
1
6#pragma once
7#include <aws/core/utils/DateTime.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/ec2/EC2_EXPORTS.h>
12#include <aws/ec2/model/Tag.h>
13#include <aws/ec2/model/TransitGatewayMeteringPolicyState.h>
14
15#include <utility>
16
17namespace Aws {
18namespace Utils {
19namespace Xml {
20class XmlNode;
21} // namespace Xml
22} // namespace Utils
23namespace EC2 {
24namespace Model {
25
32 public:
33 AWS_EC2_API TransitGatewayMeteringPolicy() = default;
36
37 AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
38 AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
39
41
44 inline const Aws::String& GetTransitGatewayMeteringPolicyId() const { return m_transitGatewayMeteringPolicyId; }
45 inline bool TransitGatewayMeteringPolicyIdHasBeenSet() const { return m_transitGatewayMeteringPolicyIdHasBeenSet; }
46 template <typename TransitGatewayMeteringPolicyIdT = Aws::String>
47 void SetTransitGatewayMeteringPolicyId(TransitGatewayMeteringPolicyIdT&& value) {
48 m_transitGatewayMeteringPolicyIdHasBeenSet = true;
49 m_transitGatewayMeteringPolicyId = std::forward<TransitGatewayMeteringPolicyIdT>(value);
50 }
51 template <typename TransitGatewayMeteringPolicyIdT = Aws::String>
52 TransitGatewayMeteringPolicy& WithTransitGatewayMeteringPolicyId(TransitGatewayMeteringPolicyIdT&& value) {
53 SetTransitGatewayMeteringPolicyId(std::forward<TransitGatewayMeteringPolicyIdT>(value));
54 return *this;
55 }
57
59
62 inline const Aws::String& GetTransitGatewayId() const { return m_transitGatewayId; }
63 inline bool TransitGatewayIdHasBeenSet() const { return m_transitGatewayIdHasBeenSet; }
64 template <typename TransitGatewayIdT = Aws::String>
65 void SetTransitGatewayId(TransitGatewayIdT&& value) {
66 m_transitGatewayIdHasBeenSet = true;
67 m_transitGatewayId = std::forward<TransitGatewayIdT>(value);
68 }
69 template <typename TransitGatewayIdT = Aws::String>
71 SetTransitGatewayId(std::forward<TransitGatewayIdT>(value));
72 return *this;
73 }
75
77
80 inline const Aws::Vector<Aws::String>& GetMiddleboxAttachmentIds() const { return m_middleboxAttachmentIds; }
81 inline bool MiddleboxAttachmentIdsHasBeenSet() const { return m_middleboxAttachmentIdsHasBeenSet; }
82 template <typename MiddleboxAttachmentIdsT = Aws::Vector<Aws::String>>
83 void SetMiddleboxAttachmentIds(MiddleboxAttachmentIdsT&& value) {
84 m_middleboxAttachmentIdsHasBeenSet = true;
85 m_middleboxAttachmentIds = std::forward<MiddleboxAttachmentIdsT>(value);
86 }
87 template <typename MiddleboxAttachmentIdsT = Aws::Vector<Aws::String>>
88 TransitGatewayMeteringPolicy& WithMiddleboxAttachmentIds(MiddleboxAttachmentIdsT&& value) {
89 SetMiddleboxAttachmentIds(std::forward<MiddleboxAttachmentIdsT>(value));
90 return *this;
91 }
92 template <typename MiddleboxAttachmentIdsT = Aws::String>
93 TransitGatewayMeteringPolicy& AddMiddleboxAttachmentIds(MiddleboxAttachmentIdsT&& value) {
94 m_middleboxAttachmentIdsHasBeenSet = true;
95 m_middleboxAttachmentIds.emplace_back(std::forward<MiddleboxAttachmentIdsT>(value));
96 return *this;
97 }
99
101
104 inline TransitGatewayMeteringPolicyState GetState() const { return m_state; }
105 inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
107 m_stateHasBeenSet = true;
108 m_state = value;
109 }
111 SetState(value);
112 return *this;
113 }
115
117
120 inline const Aws::Utils::DateTime& GetUpdateEffectiveAt() const { return m_updateEffectiveAt; }
121 inline bool UpdateEffectiveAtHasBeenSet() const { return m_updateEffectiveAtHasBeenSet; }
122 template <typename UpdateEffectiveAtT = Aws::Utils::DateTime>
123 void SetUpdateEffectiveAt(UpdateEffectiveAtT&& value) {
124 m_updateEffectiveAtHasBeenSet = true;
125 m_updateEffectiveAt = std::forward<UpdateEffectiveAtT>(value);
126 }
127 template <typename UpdateEffectiveAtT = Aws::Utils::DateTime>
129 SetUpdateEffectiveAt(std::forward<UpdateEffectiveAtT>(value));
130 return *this;
131 }
133
135
138 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
139 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
140 template <typename TagsT = Aws::Vector<Tag>>
141 void SetTags(TagsT&& value) {
142 m_tagsHasBeenSet = true;
143 m_tags = std::forward<TagsT>(value);
144 }
145 template <typename TagsT = Aws::Vector<Tag>>
147 SetTags(std::forward<TagsT>(value));
148 return *this;
149 }
150 template <typename TagsT = Tag>
152 m_tagsHasBeenSet = true;
153 m_tags.emplace_back(std::forward<TagsT>(value));
154 return *this;
155 }
157 private:
158 Aws::String m_transitGatewayMeteringPolicyId;
159
160 Aws::String m_transitGatewayId;
161
162 Aws::Vector<Aws::String> m_middleboxAttachmentIds;
163
165
166 Aws::Utils::DateTime m_updateEffectiveAt{};
167
168 Aws::Vector<Tag> m_tags;
169 bool m_transitGatewayMeteringPolicyIdHasBeenSet = false;
170 bool m_transitGatewayIdHasBeenSet = false;
171 bool m_middleboxAttachmentIdsHasBeenSet = false;
172 bool m_stateHasBeenSet = false;
173 bool m_updateEffectiveAtHasBeenSet = false;
174 bool m_tagsHasBeenSet = false;
175};
176
177} // namespace Model
178} // namespace EC2
179} // namespace Aws
TransitGatewayMeteringPolicyState GetState() const
TransitGatewayMeteringPolicy & WithMiddleboxAttachmentIds(MiddleboxAttachmentIdsT &&value)
void SetTransitGatewayMeteringPolicyId(TransitGatewayMeteringPolicyIdT &&value)
TransitGatewayMeteringPolicy & AddMiddleboxAttachmentIds(MiddleboxAttachmentIdsT &&value)
TransitGatewayMeteringPolicy & WithTransitGatewayId(TransitGatewayIdT &&value)
AWS_EC2_API TransitGatewayMeteringPolicy & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
TransitGatewayMeteringPolicy & WithTags(TagsT &&value)
const Aws::Vector< Aws::String > & GetMiddleboxAttachmentIds() const
void SetState(TransitGatewayMeteringPolicyState value)
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
TransitGatewayMeteringPolicy & WithTransitGatewayMeteringPolicyId(TransitGatewayMeteringPolicyIdT &&value)
TransitGatewayMeteringPolicy & WithState(TransitGatewayMeteringPolicyState value)
TransitGatewayMeteringPolicy & AddTags(TagsT &&value)
void SetMiddleboxAttachmentIds(MiddleboxAttachmentIdsT &&value)
const Aws::Utils::DateTime & GetUpdateEffectiveAt() const
TransitGatewayMeteringPolicy & WithUpdateEffectiveAt(UpdateEffectiveAtT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
AWS_EC2_API TransitGatewayMeteringPolicy()=default
AWS_EC2_API TransitGatewayMeteringPolicy(const Aws::Utils::Xml::XmlNode &xmlNode)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream