AWS SDK for C++

AWS SDK for C++ Version 1.11.924

Loading...
Searching...
No Matches
OutcomeBasedInvestment.h
1
6#pragma once
7#include <aws/billing/Billing_EXPORTS.h>
8#include <aws/billing/model/Amount.h>
9#include <aws/billing/model/Interval.h>
10#include <aws/billing/model/InvestmentMultiplier.h>
11#include <aws/billing/model/InvestmentRestriction.h>
12#include <aws/core/utils/memory/stl/AWSString.h>
13#include <aws/core/utils/memory/stl/AWSVector.h>
14
15#include <utility>
16
17namespace Aws {
18namespace Utils {
19namespace Json {
20class JsonValue;
21class JsonView;
22} // namespace Json
23} // namespace Utils
24namespace Billing {
25namespace Model {
26
36 public:
37 AWS_BILLING_API OutcomeBasedInvestment() = default;
40 AWS_BILLING_API Aws::Utils::Json::JsonValue Jsonize() const;
41
43
47 inline const Aws::String& GetInvestmentId() const { return m_investmentId; }
48 inline bool InvestmentIdHasBeenSet() const { return m_investmentIdHasBeenSet; }
49 template <typename InvestmentIdT = Aws::String>
50 void SetInvestmentId(InvestmentIdT&& value) {
51 m_investmentIdHasBeenSet = true;
52 m_investmentId = std::forward<InvestmentIdT>(value);
53 }
54 template <typename InvestmentIdT = Aws::String>
55 OutcomeBasedInvestment& WithInvestmentId(InvestmentIdT&& value) {
56 SetInvestmentId(std::forward<InvestmentIdT>(value));
57 return *this;
58 }
60
62
66 inline const Aws::String& GetOutcomeDescription() const { return m_outcomeDescription; }
67 inline bool OutcomeDescriptionHasBeenSet() const { return m_outcomeDescriptionHasBeenSet; }
68 template <typename OutcomeDescriptionT = Aws::String>
69 void SetOutcomeDescription(OutcomeDescriptionT&& value) {
70 m_outcomeDescriptionHasBeenSet = true;
71 m_outcomeDescription = std::forward<OutcomeDescriptionT>(value);
72 }
73 template <typename OutcomeDescriptionT = Aws::String>
74 OutcomeBasedInvestment& WithOutcomeDescription(OutcomeDescriptionT&& value) {
75 SetOutcomeDescription(std::forward<OutcomeDescriptionT>(value));
76 return *this;
77 }
79
81
85 inline const Interval& GetAttestationWindow() const { return m_attestationWindow; }
86 inline bool AttestationWindowHasBeenSet() const { return m_attestationWindowHasBeenSet; }
87 template <typename AttestationWindowT = Interval>
88 void SetAttestationWindow(AttestationWindowT&& value) {
89 m_attestationWindowHasBeenSet = true;
90 m_attestationWindow = std::forward<AttestationWindowT>(value);
91 }
92 template <typename AttestationWindowT = Interval>
93 OutcomeBasedInvestment& WithAttestationWindow(AttestationWindowT&& value) {
94 SetAttestationWindow(std::forward<AttestationWindowT>(value));
95 return *this;
96 }
98
100
104 inline const Aws::Vector<InvestmentRestriction>& GetInvestmentRestrictions() const { return m_investmentRestrictions; }
105 inline bool InvestmentRestrictionsHasBeenSet() const { return m_investmentRestrictionsHasBeenSet; }
106 template <typename InvestmentRestrictionsT = Aws::Vector<InvestmentRestriction>>
107 void SetInvestmentRestrictions(InvestmentRestrictionsT&& value) {
108 m_investmentRestrictionsHasBeenSet = true;
109 m_investmentRestrictions = std::forward<InvestmentRestrictionsT>(value);
110 }
111 template <typename InvestmentRestrictionsT = Aws::Vector<InvestmentRestriction>>
112 OutcomeBasedInvestment& WithInvestmentRestrictions(InvestmentRestrictionsT&& value) {
113 SetInvestmentRestrictions(std::forward<InvestmentRestrictionsT>(value));
114 return *this;
115 }
116 template <typename InvestmentRestrictionsT = InvestmentRestriction>
117 OutcomeBasedInvestment& AddInvestmentRestrictions(InvestmentRestrictionsT&& value) {
118 m_investmentRestrictionsHasBeenSet = true;
119 m_investmentRestrictions.emplace_back(std::forward<InvestmentRestrictionsT>(value));
120 return *this;
121 }
123
125
130 inline const Aws::Vector<InvestmentMultiplier>& GetInvestmentMultipliers() const { return m_investmentMultipliers; }
131 inline bool InvestmentMultipliersHasBeenSet() const { return m_investmentMultipliersHasBeenSet; }
132 template <typename InvestmentMultipliersT = Aws::Vector<InvestmentMultiplier>>
133 void SetInvestmentMultipliers(InvestmentMultipliersT&& value) {
134 m_investmentMultipliersHasBeenSet = true;
135 m_investmentMultipliers = std::forward<InvestmentMultipliersT>(value);
136 }
137 template <typename InvestmentMultipliersT = Aws::Vector<InvestmentMultiplier>>
138 OutcomeBasedInvestment& WithInvestmentMultipliers(InvestmentMultipliersT&& value) {
139 SetInvestmentMultipliers(std::forward<InvestmentMultipliersT>(value));
140 return *this;
141 }
142 template <typename InvestmentMultipliersT = InvestmentMultiplier>
143 OutcomeBasedInvestment& AddInvestmentMultipliers(InvestmentMultipliersT&& value) {
144 m_investmentMultipliersHasBeenSet = true;
145 m_investmentMultipliers.emplace_back(std::forward<InvestmentMultipliersT>(value));
146 return *this;
147 }
149
151
155 inline const Amount& GetDisbursedValue() const { return m_disbursedValue; }
156 inline bool DisbursedValueHasBeenSet() const { return m_disbursedValueHasBeenSet; }
157 template <typename DisbursedValueT = Amount>
158 void SetDisbursedValue(DisbursedValueT&& value) {
159 m_disbursedValueHasBeenSet = true;
160 m_disbursedValue = std::forward<DisbursedValueT>(value);
161 }
162 template <typename DisbursedValueT = Amount>
163 OutcomeBasedInvestment& WithDisbursedValue(DisbursedValueT&& value) {
164 SetDisbursedValue(std::forward<DisbursedValueT>(value));
165 return *this;
166 }
168 private:
169 Aws::String m_investmentId;
170
171 Aws::String m_outcomeDescription;
172
173 Interval m_attestationWindow;
174
175 Aws::Vector<InvestmentRestriction> m_investmentRestrictions;
176
177 Aws::Vector<InvestmentMultiplier> m_investmentMultipliers;
178
179 Amount m_disbursedValue;
180 bool m_investmentIdHasBeenSet = false;
181 bool m_outcomeDescriptionHasBeenSet = false;
182 bool m_attestationWindowHasBeenSet = false;
183 bool m_investmentRestrictionsHasBeenSet = false;
184 bool m_investmentMultipliersHasBeenSet = false;
185 bool m_disbursedValueHasBeenSet = false;
186};
187
188} // namespace Model
189} // namespace Billing
190} // namespace Aws
OutcomeBasedInvestment & AddInvestmentMultipliers(InvestmentMultipliersT &&value)
OutcomeBasedInvestment & WithDisbursedValue(DisbursedValueT &&value)
void SetInvestmentRestrictions(InvestmentRestrictionsT &&value)
OutcomeBasedInvestment & AddInvestmentRestrictions(InvestmentRestrictionsT &&value)
OutcomeBasedInvestment & WithInvestmentId(InvestmentIdT &&value)
void SetAttestationWindow(AttestationWindowT &&value)
OutcomeBasedInvestment & WithOutcomeDescription(OutcomeDescriptionT &&value)
AWS_BILLING_API OutcomeBasedInvestment(Aws::Utils::Json::JsonView jsonValue)
OutcomeBasedInvestment & WithInvestmentRestrictions(InvestmentRestrictionsT &&value)
void SetInvestmentMultipliers(InvestmentMultipliersT &&value)
const Aws::Vector< InvestmentRestriction > & GetInvestmentRestrictions() const
OutcomeBasedInvestment & WithInvestmentMultipliers(InvestmentMultipliersT &&value)
const Aws::Vector< InvestmentMultiplier > & GetInvestmentMultipliers() const
AWS_BILLING_API OutcomeBasedInvestment()=default
OutcomeBasedInvestment & WithAttestationWindow(AttestationWindowT &&value)
AWS_BILLING_API OutcomeBasedInvestment & operator=(Aws::Utils::Json::JsonView jsonValue)
AWS_BILLING_API Aws::Utils::Json::JsonValue Jsonize() const
void SetOutcomeDescription(OutcomeDescriptionT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue