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

Represents the metadata of a device offering.

See Also:

AWS * API Reference

*/ class Offering { public: AWS_DEVICEFARM_API Offering(); AWS_DEVICEFARM_API Offering(Aws::Utils::Json::JsonView jsonValue); AWS_DEVICEFARM_API Offering& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DEVICEFARM_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ID that corresponds to a device offering.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The ID that corresponds to a device offering.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The ID that corresponds to a device offering.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The ID that corresponds to a device offering.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The ID that corresponds to a device offering.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The ID that corresponds to a device offering.

*/ inline Offering& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The ID that corresponds to a device offering.

*/ inline Offering& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The ID that corresponds to a device offering.

*/ inline Offering& WithId(const char* value) { SetId(value); return *this;} /** *

A string that describes the offering.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A string that describes the offering.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A string that describes the offering.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A string that describes the offering.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A string that describes the offering.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A string that describes the offering.

*/ inline Offering& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A string that describes the offering.

*/ inline Offering& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A string that describes the offering.

*/ inline Offering& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The type of offering (for example, RECURRING) for a device.

*/ inline const OfferingType& GetType() const{ return m_type; } /** *

The type of offering (for example, RECURRING) for a device.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of offering (for example, RECURRING) for a device.

*/ inline void SetType(const OfferingType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of offering (for example, RECURRING) for a device.

*/ inline void SetType(OfferingType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of offering (for example, RECURRING) for a device.

*/ inline Offering& WithType(const OfferingType& value) { SetType(value); return *this;} /** *

The type of offering (for example, RECURRING) for a device.

*/ inline Offering& WithType(OfferingType&& value) { SetType(std::move(value)); return *this;} /** *

The platform of the device (for example, ANDROID or * IOS).

*/ inline const DevicePlatform& GetPlatform() const{ return m_platform; } /** *

The platform of the device (for example, ANDROID or * IOS).

*/ inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } /** *

The platform of the device (for example, ANDROID or * IOS).

*/ inline void SetPlatform(const DevicePlatform& value) { m_platformHasBeenSet = true; m_platform = value; } /** *

The platform of the device (for example, ANDROID or * IOS).

*/ inline void SetPlatform(DevicePlatform&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } /** *

The platform of the device (for example, ANDROID or * IOS).

*/ inline Offering& WithPlatform(const DevicePlatform& value) { SetPlatform(value); return *this;} /** *

The platform of the device (for example, ANDROID or * IOS).

*/ inline Offering& WithPlatform(DevicePlatform&& value) { SetPlatform(std::move(value)); return *this;} /** *

Specifies whether there are recurring charges for the offering.

*/ inline const Aws::Vector& GetRecurringCharges() const{ return m_recurringCharges; } /** *

Specifies whether there are recurring charges for the offering.

*/ inline bool RecurringChargesHasBeenSet() const { return m_recurringChargesHasBeenSet; } /** *

Specifies whether there are recurring charges for the offering.

*/ inline void SetRecurringCharges(const Aws::Vector& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = value; } /** *

Specifies whether there are recurring charges for the offering.

*/ inline void SetRecurringCharges(Aws::Vector&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = std::move(value); } /** *

Specifies whether there are recurring charges for the offering.

*/ inline Offering& WithRecurringCharges(const Aws::Vector& value) { SetRecurringCharges(value); return *this;} /** *

Specifies whether there are recurring charges for the offering.

*/ inline Offering& WithRecurringCharges(Aws::Vector&& value) { SetRecurringCharges(std::move(value)); return *this;} /** *

Specifies whether there are recurring charges for the offering.

*/ inline Offering& AddRecurringCharges(const RecurringCharge& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(value); return *this; } /** *

Specifies whether there are recurring charges for the offering.

*/ inline Offering& AddRecurringCharges(RecurringCharge&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(std::move(value)); return *this; } private: Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; OfferingType m_type; bool m_typeHasBeenSet = false; DevicePlatform m_platform; bool m_platformHasBeenSet = false; Aws::Vector m_recurringCharges; bool m_recurringChargesHasBeenSet = false; }; } // namespace Model } // namespace DeviceFarm } // namespace Aws