/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaLive { namespace Model { /** * Reserved resources available for purchase

See Also:

AWS * API Reference

*/ class Offering { public: AWS_MEDIALIVE_API Offering(); AWS_MEDIALIVE_API Offering(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIALIVE_API Offering& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIALIVE_API Aws::Utils::Json::JsonValue Jsonize() const; /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline const Aws::String& GetArn() const{ return m_arn; } /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline Offering& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline Offering& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** * Unique offering ARN, e.g. * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321' */ inline Offering& WithArn(const char* value) { SetArn(value); return *this;} /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline const Aws::String& GetCurrencyCode() const{ return m_currencyCode; } /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline bool CurrencyCodeHasBeenSet() const { return m_currencyCodeHasBeenSet; } /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline void SetCurrencyCode(const Aws::String& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = value; } /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline void SetCurrencyCode(Aws::String&& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = std::move(value); } /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline void SetCurrencyCode(const char* value) { m_currencyCodeHasBeenSet = true; m_currencyCode.assign(value); } /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline Offering& WithCurrencyCode(const Aws::String& value) { SetCurrencyCode(value); return *this;} /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline Offering& WithCurrencyCode(Aws::String&& value) { SetCurrencyCode(std::move(value)); return *this;} /** * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD' */ inline Offering& WithCurrencyCode(const char* value) { SetCurrencyCode(value); return *this;} /** * Lease duration, e.g. '12' */ inline int GetDuration() const{ return m_duration; } /** * Lease duration, e.g. '12' */ inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; } /** * Lease duration, e.g. '12' */ inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; } /** * Lease duration, e.g. '12' */ inline Offering& WithDuration(int value) { SetDuration(value); return *this;} /** * Units for duration, e.g. 'MONTHS' */ inline const OfferingDurationUnits& GetDurationUnits() const{ return m_durationUnits; } /** * Units for duration, e.g. 'MONTHS' */ inline bool DurationUnitsHasBeenSet() const { return m_durationUnitsHasBeenSet; } /** * Units for duration, e.g. 'MONTHS' */ inline void SetDurationUnits(const OfferingDurationUnits& value) { m_durationUnitsHasBeenSet = true; m_durationUnits = value; } /** * Units for duration, e.g. 'MONTHS' */ inline void SetDurationUnits(OfferingDurationUnits&& value) { m_durationUnitsHasBeenSet = true; m_durationUnits = std::move(value); } /** * Units for duration, e.g. 'MONTHS' */ inline Offering& WithDurationUnits(const OfferingDurationUnits& value) { SetDurationUnits(value); return *this;} /** * Units for duration, e.g. 'MONTHS' */ inline Offering& WithDurationUnits(OfferingDurationUnits&& value) { SetDurationUnits(std::move(value)); return *this;} /** * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering */ inline double GetFixedPrice() const{ return m_fixedPrice; } /** * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering */ inline bool FixedPriceHasBeenSet() const { return m_fixedPriceHasBeenSet; } /** * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering */ inline void SetFixedPrice(double value) { m_fixedPriceHasBeenSet = true; m_fixedPrice = value; } /** * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering */ inline Offering& WithFixedPrice(double value) { SetFixedPrice(value); return *this;} /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline const Aws::String& GetOfferingDescription() const{ return m_offeringDescription; } /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline bool OfferingDescriptionHasBeenSet() const { return m_offeringDescriptionHasBeenSet; } /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline void SetOfferingDescription(const Aws::String& value) { m_offeringDescriptionHasBeenSet = true; m_offeringDescription = value; } /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline void SetOfferingDescription(Aws::String&& value) { m_offeringDescriptionHasBeenSet = true; m_offeringDescription = std::move(value); } /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline void SetOfferingDescription(const char* value) { m_offeringDescriptionHasBeenSet = true; m_offeringDescription.assign(value); } /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline Offering& WithOfferingDescription(const Aws::String& value) { SetOfferingDescription(value); return *this;} /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline Offering& WithOfferingDescription(Aws::String&& value) { SetOfferingDescription(std::move(value)); return *this;} /** * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ * in US West (Oregon)' */ inline Offering& WithOfferingDescription(const char* value) { SetOfferingDescription(value); return *this;} /** * Unique offering ID, e.g. '87654321' */ inline const Aws::String& GetOfferingId() const{ return m_offeringId; } /** * Unique offering ID, e.g. '87654321' */ inline bool OfferingIdHasBeenSet() const { return m_offeringIdHasBeenSet; } /** * Unique offering ID, e.g. '87654321' */ inline void SetOfferingId(const Aws::String& value) { m_offeringIdHasBeenSet = true; m_offeringId = value; } /** * Unique offering ID, e.g. '87654321' */ inline void SetOfferingId(Aws::String&& value) { m_offeringIdHasBeenSet = true; m_offeringId = std::move(value); } /** * Unique offering ID, e.g. '87654321' */ inline void SetOfferingId(const char* value) { m_offeringIdHasBeenSet = true; m_offeringId.assign(value); } /** * Unique offering ID, e.g. '87654321' */ inline Offering& WithOfferingId(const Aws::String& value) { SetOfferingId(value); return *this;} /** * Unique offering ID, e.g. '87654321' */ inline Offering& WithOfferingId(Aws::String&& value) { SetOfferingId(std::move(value)); return *this;} /** * Unique offering ID, e.g. '87654321' */ inline Offering& WithOfferingId(const char* value) { SetOfferingId(value); return *this;} /** * Offering type, e.g. 'NO_UPFRONT' */ inline const OfferingType& GetOfferingType() const{ return m_offeringType; } /** * Offering type, e.g. 'NO_UPFRONT' */ inline bool OfferingTypeHasBeenSet() const { return m_offeringTypeHasBeenSet; } /** * Offering type, e.g. 'NO_UPFRONT' */ inline void SetOfferingType(const OfferingType& value) { m_offeringTypeHasBeenSet = true; m_offeringType = value; } /** * Offering type, e.g. 'NO_UPFRONT' */ inline void SetOfferingType(OfferingType&& value) { m_offeringTypeHasBeenSet = true; m_offeringType = std::move(value); } /** * Offering type, e.g. 'NO_UPFRONT' */ inline Offering& WithOfferingType(const OfferingType& value) { SetOfferingType(value); return *this;} /** * Offering type, e.g. 'NO_UPFRONT' */ inline Offering& WithOfferingType(OfferingType&& value) { SetOfferingType(std::move(value)); return *this;} /** * AWS region, e.g. 'us-west-2' */ inline const Aws::String& GetRegion() const{ return m_region; } /** * AWS region, e.g. 'us-west-2' */ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** * AWS region, e.g. 'us-west-2' */ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** * AWS region, e.g. 'us-west-2' */ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** * AWS region, e.g. 'us-west-2' */ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** * AWS region, e.g. 'us-west-2' */ inline Offering& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** * AWS region, e.g. 'us-west-2' */ inline Offering& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** * AWS region, e.g. 'us-west-2' */ inline Offering& WithRegion(const char* value) { SetRegion(value); return *this;} /** * Resource configuration details */ inline const ReservationResourceSpecification& GetResourceSpecification() const{ return m_resourceSpecification; } /** * Resource configuration details */ inline bool ResourceSpecificationHasBeenSet() const { return m_resourceSpecificationHasBeenSet; } /** * Resource configuration details */ inline void SetResourceSpecification(const ReservationResourceSpecification& value) { m_resourceSpecificationHasBeenSet = true; m_resourceSpecification = value; } /** * Resource configuration details */ inline void SetResourceSpecification(ReservationResourceSpecification&& value) { m_resourceSpecificationHasBeenSet = true; m_resourceSpecification = std::move(value); } /** * Resource configuration details */ inline Offering& WithResourceSpecification(const ReservationResourceSpecification& value) { SetResourceSpecification(value); return *this;} /** * Resource configuration details */ inline Offering& WithResourceSpecification(ReservationResourceSpecification&& value) { SetResourceSpecification(std::move(value)); return *this;} /** * Recurring usage charge for each reserved resource, e.g. '157.0' */ inline double GetUsagePrice() const{ return m_usagePrice; } /** * Recurring usage charge for each reserved resource, e.g. '157.0' */ inline bool UsagePriceHasBeenSet() const { return m_usagePriceHasBeenSet; } /** * Recurring usage charge for each reserved resource, e.g. '157.0' */ inline void SetUsagePrice(double value) { m_usagePriceHasBeenSet = true; m_usagePrice = value; } /** * Recurring usage charge for each reserved resource, e.g. '157.0' */ inline Offering& WithUsagePrice(double value) { SetUsagePrice(value); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_currencyCode; bool m_currencyCodeHasBeenSet = false; int m_duration; bool m_durationHasBeenSet = false; OfferingDurationUnits m_durationUnits; bool m_durationUnitsHasBeenSet = false; double m_fixedPrice; bool m_fixedPriceHasBeenSet = false; Aws::String m_offeringDescription; bool m_offeringDescriptionHasBeenSet = false; Aws::String m_offeringId; bool m_offeringIdHasBeenSet = false; OfferingType m_offeringType; bool m_offeringTypeHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; ReservationResourceSpecification m_resourceSpecification; bool m_resourceSpecificationHasBeenSet = false; double m_usagePrice; bool m_usagePriceHasBeenSet = false; }; } // namespace Model } // namespace MediaLive } // namespace Aws