/** * 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 IoTTwinMaker { namespace Model { /** *

The pricing plan.

See Also:

AWS * API Reference

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

The billable entity count.

*/ inline long long GetBillableEntityCount() const{ return m_billableEntityCount; } /** *

The billable entity count.

*/ inline bool BillableEntityCountHasBeenSet() const { return m_billableEntityCountHasBeenSet; } /** *

The billable entity count.

*/ inline void SetBillableEntityCount(long long value) { m_billableEntityCountHasBeenSet = true; m_billableEntityCount = value; } /** *

The billable entity count.

*/ inline PricingPlan& WithBillableEntityCount(long long value) { SetBillableEntityCount(value); return *this;} /** *

The pricing plan's bundle information.

*/ inline const BundleInformation& GetBundleInformation() const{ return m_bundleInformation; } /** *

The pricing plan's bundle information.

*/ inline bool BundleInformationHasBeenSet() const { return m_bundleInformationHasBeenSet; } /** *

The pricing plan's bundle information.

*/ inline void SetBundleInformation(const BundleInformation& value) { m_bundleInformationHasBeenSet = true; m_bundleInformation = value; } /** *

The pricing plan's bundle information.

*/ inline void SetBundleInformation(BundleInformation&& value) { m_bundleInformationHasBeenSet = true; m_bundleInformation = std::move(value); } /** *

The pricing plan's bundle information.

*/ inline PricingPlan& WithBundleInformation(const BundleInformation& value) { SetBundleInformation(value); return *this;} /** *

The pricing plan's bundle information.

*/ inline PricingPlan& WithBundleInformation(BundleInformation&& value) { SetBundleInformation(std::move(value)); return *this;} /** *

The effective date and time of the pricing plan.

*/ inline const Aws::Utils::DateTime& GetEffectiveDateTime() const{ return m_effectiveDateTime; } /** *

The effective date and time of the pricing plan.

*/ inline bool EffectiveDateTimeHasBeenSet() const { return m_effectiveDateTimeHasBeenSet; } /** *

The effective date and time of the pricing plan.

*/ inline void SetEffectiveDateTime(const Aws::Utils::DateTime& value) { m_effectiveDateTimeHasBeenSet = true; m_effectiveDateTime = value; } /** *

The effective date and time of the pricing plan.

*/ inline void SetEffectiveDateTime(Aws::Utils::DateTime&& value) { m_effectiveDateTimeHasBeenSet = true; m_effectiveDateTime = std::move(value); } /** *

The effective date and time of the pricing plan.

*/ inline PricingPlan& WithEffectiveDateTime(const Aws::Utils::DateTime& value) { SetEffectiveDateTime(value); return *this;} /** *

The effective date and time of the pricing plan.

*/ inline PricingPlan& WithEffectiveDateTime(Aws::Utils::DateTime&& value) { SetEffectiveDateTime(std::move(value)); return *this;} /** *

The pricing mode.

*/ inline const PricingMode& GetPricingMode() const{ return m_pricingMode; } /** *

The pricing mode.

*/ inline bool PricingModeHasBeenSet() const { return m_pricingModeHasBeenSet; } /** *

The pricing mode.

*/ inline void SetPricingMode(const PricingMode& value) { m_pricingModeHasBeenSet = true; m_pricingMode = value; } /** *

The pricing mode.

*/ inline void SetPricingMode(PricingMode&& value) { m_pricingModeHasBeenSet = true; m_pricingMode = std::move(value); } /** *

The pricing mode.

*/ inline PricingPlan& WithPricingMode(const PricingMode& value) { SetPricingMode(value); return *this;} /** *

The pricing mode.

*/ inline PricingPlan& WithPricingMode(PricingMode&& value) { SetPricingMode(std::move(value)); return *this;} /** *

The set date and time for updating a pricing plan.

*/ inline const Aws::Utils::DateTime& GetUpdateDateTime() const{ return m_updateDateTime; } /** *

The set date and time for updating a pricing plan.

*/ inline bool UpdateDateTimeHasBeenSet() const { return m_updateDateTimeHasBeenSet; } /** *

The set date and time for updating a pricing plan.

*/ inline void SetUpdateDateTime(const Aws::Utils::DateTime& value) { m_updateDateTimeHasBeenSet = true; m_updateDateTime = value; } /** *

The set date and time for updating a pricing plan.

*/ inline void SetUpdateDateTime(Aws::Utils::DateTime&& value) { m_updateDateTimeHasBeenSet = true; m_updateDateTime = std::move(value); } /** *

The set date and time for updating a pricing plan.

*/ inline PricingPlan& WithUpdateDateTime(const Aws::Utils::DateTime& value) { SetUpdateDateTime(value); return *this;} /** *

The set date and time for updating a pricing plan.

*/ inline PricingPlan& WithUpdateDateTime(Aws::Utils::DateTime&& value) { SetUpdateDateTime(std::move(value)); return *this;} /** *

The update reason for changing a pricing plan.

*/ inline const UpdateReason& GetUpdateReason() const{ return m_updateReason; } /** *

The update reason for changing a pricing plan.

*/ inline bool UpdateReasonHasBeenSet() const { return m_updateReasonHasBeenSet; } /** *

The update reason for changing a pricing plan.

*/ inline void SetUpdateReason(const UpdateReason& value) { m_updateReasonHasBeenSet = true; m_updateReason = value; } /** *

The update reason for changing a pricing plan.

*/ inline void SetUpdateReason(UpdateReason&& value) { m_updateReasonHasBeenSet = true; m_updateReason = std::move(value); } /** *

The update reason for changing a pricing plan.

*/ inline PricingPlan& WithUpdateReason(const UpdateReason& value) { SetUpdateReason(value); return *this;} /** *

The update reason for changing a pricing plan.

*/ inline PricingPlan& WithUpdateReason(UpdateReason&& value) { SetUpdateReason(std::move(value)); return *this;} private: long long m_billableEntityCount; bool m_billableEntityCountHasBeenSet = false; BundleInformation m_bundleInformation; bool m_bundleInformationHasBeenSet = false; Aws::Utils::DateTime m_effectiveDateTime; bool m_effectiveDateTimeHasBeenSet = false; PricingMode m_pricingMode; bool m_pricingModeHasBeenSet = false; Aws::Utils::DateTime m_updateDateTime; bool m_updateDateTimeHasBeenSet = false; UpdateReason m_updateReason; bool m_updateReasonHasBeenSet = false; }; } // namespace Model } // namespace IoTTwinMaker } // namespace Aws