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/mediaconnect/MediaConnect_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/mediaconnect/model/DurationUnits.h> 10 #include <aws/mediaconnect/model/PriceUnits.h> 11 #include <aws/mediaconnect/model/ResourceSpecification.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace MediaConnect 25 { 26 namespace Model 27 { 28 29 /** 30 * A savings plan that reserves a certain amount of outbound bandwidth usage at a 31 * discounted rate each month over a period of time.<p><h3>See Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/Offering">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_MEDIACONNECT_API Offering 36 { 37 public: 38 Offering(); 39 Offering(Aws::Utils::Json::JsonView jsonValue); 40 Offering& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * The type of currency that is used for billing. The currencyCode used for all 46 * reservations is US dollars. 47 */ GetCurrencyCode()48 inline const Aws::String& GetCurrencyCode() const{ return m_currencyCode; } 49 50 /** 51 * The type of currency that is used for billing. The currencyCode used for all 52 * reservations is US dollars. 53 */ CurrencyCodeHasBeenSet()54 inline bool CurrencyCodeHasBeenSet() const { return m_currencyCodeHasBeenSet; } 55 56 /** 57 * The type of currency that is used for billing. The currencyCode used for all 58 * reservations is US dollars. 59 */ SetCurrencyCode(const Aws::String & value)60 inline void SetCurrencyCode(const Aws::String& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = value; } 61 62 /** 63 * The type of currency that is used for billing. The currencyCode used for all 64 * reservations is US dollars. 65 */ SetCurrencyCode(Aws::String && value)66 inline void SetCurrencyCode(Aws::String&& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = std::move(value); } 67 68 /** 69 * The type of currency that is used for billing. The currencyCode used for all 70 * reservations is US dollars. 71 */ SetCurrencyCode(const char * value)72 inline void SetCurrencyCode(const char* value) { m_currencyCodeHasBeenSet = true; m_currencyCode.assign(value); } 73 74 /** 75 * The type of currency that is used for billing. The currencyCode used for all 76 * reservations is US dollars. 77 */ WithCurrencyCode(const Aws::String & value)78 inline Offering& WithCurrencyCode(const Aws::String& value) { SetCurrencyCode(value); return *this;} 79 80 /** 81 * The type of currency that is used for billing. The currencyCode used for all 82 * reservations is US dollars. 83 */ WithCurrencyCode(Aws::String && value)84 inline Offering& WithCurrencyCode(Aws::String&& value) { SetCurrencyCode(std::move(value)); return *this;} 85 86 /** 87 * The type of currency that is used for billing. The currencyCode used for all 88 * reservations is US dollars. 89 */ WithCurrencyCode(const char * value)90 inline Offering& WithCurrencyCode(const char* value) { SetCurrencyCode(value); return *this;} 91 92 93 /** 94 * The length of time that your reservation would be active. 95 */ GetDuration()96 inline int GetDuration() const{ return m_duration; } 97 98 /** 99 * The length of time that your reservation would be active. 100 */ DurationHasBeenSet()101 inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; } 102 103 /** 104 * The length of time that your reservation would be active. 105 */ SetDuration(int value)106 inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; } 107 108 /** 109 * The length of time that your reservation would be active. 110 */ WithDuration(int value)111 inline Offering& WithDuration(int value) { SetDuration(value); return *this;} 112 113 114 /** 115 * The unit of measurement for the duration of the offering. 116 */ GetDurationUnits()117 inline const DurationUnits& GetDurationUnits() const{ return m_durationUnits; } 118 119 /** 120 * The unit of measurement for the duration of the offering. 121 */ DurationUnitsHasBeenSet()122 inline bool DurationUnitsHasBeenSet() const { return m_durationUnitsHasBeenSet; } 123 124 /** 125 * The unit of measurement for the duration of the offering. 126 */ SetDurationUnits(const DurationUnits & value)127 inline void SetDurationUnits(const DurationUnits& value) { m_durationUnitsHasBeenSet = true; m_durationUnits = value; } 128 129 /** 130 * The unit of measurement for the duration of the offering. 131 */ SetDurationUnits(DurationUnits && value)132 inline void SetDurationUnits(DurationUnits&& value) { m_durationUnitsHasBeenSet = true; m_durationUnits = std::move(value); } 133 134 /** 135 * The unit of measurement for the duration of the offering. 136 */ WithDurationUnits(const DurationUnits & value)137 inline Offering& WithDurationUnits(const DurationUnits& value) { SetDurationUnits(value); return *this;} 138 139 /** 140 * The unit of measurement for the duration of the offering. 141 */ WithDurationUnits(DurationUnits && value)142 inline Offering& WithDurationUnits(DurationUnits&& value) { SetDurationUnits(std::move(value)); return *this;} 143 144 145 /** 146 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 147 */ GetOfferingArn()148 inline const Aws::String& GetOfferingArn() const{ return m_offeringArn; } 149 150 /** 151 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 152 */ OfferingArnHasBeenSet()153 inline bool OfferingArnHasBeenSet() const { return m_offeringArnHasBeenSet; } 154 155 /** 156 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 157 */ SetOfferingArn(const Aws::String & value)158 inline void SetOfferingArn(const Aws::String& value) { m_offeringArnHasBeenSet = true; m_offeringArn = value; } 159 160 /** 161 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 162 */ SetOfferingArn(Aws::String && value)163 inline void SetOfferingArn(Aws::String&& value) { m_offeringArnHasBeenSet = true; m_offeringArn = std::move(value); } 164 165 /** 166 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 167 */ SetOfferingArn(const char * value)168 inline void SetOfferingArn(const char* value) { m_offeringArnHasBeenSet = true; m_offeringArn.assign(value); } 169 170 /** 171 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 172 */ WithOfferingArn(const Aws::String & value)173 inline Offering& WithOfferingArn(const Aws::String& value) { SetOfferingArn(value); return *this;} 174 175 /** 176 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 177 */ WithOfferingArn(Aws::String && value)178 inline Offering& WithOfferingArn(Aws::String&& value) { SetOfferingArn(std::move(value)); return *this;} 179 180 /** 181 * The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. 182 */ WithOfferingArn(const char * value)183 inline Offering& WithOfferingArn(const char* value) { SetOfferingArn(value); return *this;} 184 185 186 /** 187 * A description of the offering. 188 */ GetOfferingDescription()189 inline const Aws::String& GetOfferingDescription() const{ return m_offeringDescription; } 190 191 /** 192 * A description of the offering. 193 */ OfferingDescriptionHasBeenSet()194 inline bool OfferingDescriptionHasBeenSet() const { return m_offeringDescriptionHasBeenSet; } 195 196 /** 197 * A description of the offering. 198 */ SetOfferingDescription(const Aws::String & value)199 inline void SetOfferingDescription(const Aws::String& value) { m_offeringDescriptionHasBeenSet = true; m_offeringDescription = value; } 200 201 /** 202 * A description of the offering. 203 */ SetOfferingDescription(Aws::String && value)204 inline void SetOfferingDescription(Aws::String&& value) { m_offeringDescriptionHasBeenSet = true; m_offeringDescription = std::move(value); } 205 206 /** 207 * A description of the offering. 208 */ SetOfferingDescription(const char * value)209 inline void SetOfferingDescription(const char* value) { m_offeringDescriptionHasBeenSet = true; m_offeringDescription.assign(value); } 210 211 /** 212 * A description of the offering. 213 */ WithOfferingDescription(const Aws::String & value)214 inline Offering& WithOfferingDescription(const Aws::String& value) { SetOfferingDescription(value); return *this;} 215 216 /** 217 * A description of the offering. 218 */ WithOfferingDescription(Aws::String && value)219 inline Offering& WithOfferingDescription(Aws::String&& value) { SetOfferingDescription(std::move(value)); return *this;} 220 221 /** 222 * A description of the offering. 223 */ WithOfferingDescription(const char * value)224 inline Offering& WithOfferingDescription(const char* value) { SetOfferingDescription(value); return *this;} 225 226 227 /** 228 * The cost of a single unit. This value, in combination with priceUnits, makes up 229 * the rate. 230 */ GetPricePerUnit()231 inline const Aws::String& GetPricePerUnit() const{ return m_pricePerUnit; } 232 233 /** 234 * The cost of a single unit. This value, in combination with priceUnits, makes up 235 * the rate. 236 */ PricePerUnitHasBeenSet()237 inline bool PricePerUnitHasBeenSet() const { return m_pricePerUnitHasBeenSet; } 238 239 /** 240 * The cost of a single unit. This value, in combination with priceUnits, makes up 241 * the rate. 242 */ SetPricePerUnit(const Aws::String & value)243 inline void SetPricePerUnit(const Aws::String& value) { m_pricePerUnitHasBeenSet = true; m_pricePerUnit = value; } 244 245 /** 246 * The cost of a single unit. This value, in combination with priceUnits, makes up 247 * the rate. 248 */ SetPricePerUnit(Aws::String && value)249 inline void SetPricePerUnit(Aws::String&& value) { m_pricePerUnitHasBeenSet = true; m_pricePerUnit = std::move(value); } 250 251 /** 252 * The cost of a single unit. This value, in combination with priceUnits, makes up 253 * the rate. 254 */ SetPricePerUnit(const char * value)255 inline void SetPricePerUnit(const char* value) { m_pricePerUnitHasBeenSet = true; m_pricePerUnit.assign(value); } 256 257 /** 258 * The cost of a single unit. This value, in combination with priceUnits, makes up 259 * the rate. 260 */ WithPricePerUnit(const Aws::String & value)261 inline Offering& WithPricePerUnit(const Aws::String& value) { SetPricePerUnit(value); return *this;} 262 263 /** 264 * The cost of a single unit. This value, in combination with priceUnits, makes up 265 * the rate. 266 */ WithPricePerUnit(Aws::String && value)267 inline Offering& WithPricePerUnit(Aws::String&& value) { SetPricePerUnit(std::move(value)); return *this;} 268 269 /** 270 * The cost of a single unit. This value, in combination with priceUnits, makes up 271 * the rate. 272 */ WithPricePerUnit(const char * value)273 inline Offering& WithPricePerUnit(const char* value) { SetPricePerUnit(value); return *this;} 274 275 276 /** 277 * The unit of measurement that is used for billing. This value, in combination 278 * with pricePerUnit, makes up the rate. 279 */ GetPriceUnits()280 inline const PriceUnits& GetPriceUnits() const{ return m_priceUnits; } 281 282 /** 283 * The unit of measurement that is used for billing. This value, in combination 284 * with pricePerUnit, makes up the rate. 285 */ PriceUnitsHasBeenSet()286 inline bool PriceUnitsHasBeenSet() const { return m_priceUnitsHasBeenSet; } 287 288 /** 289 * The unit of measurement that is used for billing. This value, in combination 290 * with pricePerUnit, makes up the rate. 291 */ SetPriceUnits(const PriceUnits & value)292 inline void SetPriceUnits(const PriceUnits& value) { m_priceUnitsHasBeenSet = true; m_priceUnits = value; } 293 294 /** 295 * The unit of measurement that is used for billing. This value, in combination 296 * with pricePerUnit, makes up the rate. 297 */ SetPriceUnits(PriceUnits && value)298 inline void SetPriceUnits(PriceUnits&& value) { m_priceUnitsHasBeenSet = true; m_priceUnits = std::move(value); } 299 300 /** 301 * The unit of measurement that is used for billing. This value, in combination 302 * with pricePerUnit, makes up the rate. 303 */ WithPriceUnits(const PriceUnits & value)304 inline Offering& WithPriceUnits(const PriceUnits& value) { SetPriceUnits(value); return *this;} 305 306 /** 307 * The unit of measurement that is used for billing. This value, in combination 308 * with pricePerUnit, makes up the rate. 309 */ WithPriceUnits(PriceUnits && value)310 inline Offering& WithPriceUnits(PriceUnits&& value) { SetPriceUnits(std::move(value)); return *this;} 311 312 313 /** 314 * A definition of the amount of outbound bandwidth that you would be reserving if 315 * you purchase the offering. 316 */ GetResourceSpecification()317 inline const ResourceSpecification& GetResourceSpecification() const{ return m_resourceSpecification; } 318 319 /** 320 * A definition of the amount of outbound bandwidth that you would be reserving if 321 * you purchase the offering. 322 */ ResourceSpecificationHasBeenSet()323 inline bool ResourceSpecificationHasBeenSet() const { return m_resourceSpecificationHasBeenSet; } 324 325 /** 326 * A definition of the amount of outbound bandwidth that you would be reserving if 327 * you purchase the offering. 328 */ SetResourceSpecification(const ResourceSpecification & value)329 inline void SetResourceSpecification(const ResourceSpecification& value) { m_resourceSpecificationHasBeenSet = true; m_resourceSpecification = value; } 330 331 /** 332 * A definition of the amount of outbound bandwidth that you would be reserving if 333 * you purchase the offering. 334 */ SetResourceSpecification(ResourceSpecification && value)335 inline void SetResourceSpecification(ResourceSpecification&& value) { m_resourceSpecificationHasBeenSet = true; m_resourceSpecification = std::move(value); } 336 337 /** 338 * A definition of the amount of outbound bandwidth that you would be reserving if 339 * you purchase the offering. 340 */ WithResourceSpecification(const ResourceSpecification & value)341 inline Offering& WithResourceSpecification(const ResourceSpecification& value) { SetResourceSpecification(value); return *this;} 342 343 /** 344 * A definition of the amount of outbound bandwidth that you would be reserving if 345 * you purchase the offering. 346 */ WithResourceSpecification(ResourceSpecification && value)347 inline Offering& WithResourceSpecification(ResourceSpecification&& value) { SetResourceSpecification(std::move(value)); return *this;} 348 349 private: 350 351 Aws::String m_currencyCode; 352 bool m_currencyCodeHasBeenSet; 353 354 int m_duration; 355 bool m_durationHasBeenSet; 356 357 DurationUnits m_durationUnits; 358 bool m_durationUnitsHasBeenSet; 359 360 Aws::String m_offeringArn; 361 bool m_offeringArnHasBeenSet; 362 363 Aws::String m_offeringDescription; 364 bool m_offeringDescriptionHasBeenSet; 365 366 Aws::String m_pricePerUnit; 367 bool m_pricePerUnitHasBeenSet; 368 369 PriceUnits m_priceUnits; 370 bool m_priceUnitsHasBeenSet; 371 372 ResourceSpecification m_resourceSpecification; 373 bool m_resourceSpecificationHasBeenSet; 374 }; 375 376 } // namespace Model 377 } // namespace MediaConnect 378 } // namespace Aws 379