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

Describes the estimated cost for resources in your Lightsail for Research * account.

See Also:

AWS * API Reference

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

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline const Aws::String& GetUsageType() const{ return m_usageType; } /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline bool UsageTypeHasBeenSet() const { return m_usageTypeHasBeenSet; } /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline void SetUsageType(const Aws::String& value) { m_usageTypeHasBeenSet = true; m_usageType = value; } /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline void SetUsageType(Aws::String&& value) { m_usageTypeHasBeenSet = true; m_usageType = std::move(value); } /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline void SetUsageType(const char* value) { m_usageTypeHasBeenSet = true; m_usageType.assign(value); } /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline CostEstimate& WithUsageType(const Aws::String& value) { SetUsageType(value); return *this;} /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline CostEstimate& WithUsageType(Aws::String&& value) { SetUsageType(std::move(value)); return *this;} /** *

The types of usage that are included in the estimate, such as costs, usage, * or data transfer.

*/ inline CostEstimate& WithUsageType(const char* value) { SetUsageType(value); return *this;} /** *

The cost estimate result that's associated with a time period.

*/ inline const Aws::Vector& GetResultsByTime() const{ return m_resultsByTime; } /** *

The cost estimate result that's associated with a time period.

*/ inline bool ResultsByTimeHasBeenSet() const { return m_resultsByTimeHasBeenSet; } /** *

The cost estimate result that's associated with a time period.

*/ inline void SetResultsByTime(const Aws::Vector& value) { m_resultsByTimeHasBeenSet = true; m_resultsByTime = value; } /** *

The cost estimate result that's associated with a time period.

*/ inline void SetResultsByTime(Aws::Vector&& value) { m_resultsByTimeHasBeenSet = true; m_resultsByTime = std::move(value); } /** *

The cost estimate result that's associated with a time period.

*/ inline CostEstimate& WithResultsByTime(const Aws::Vector& value) { SetResultsByTime(value); return *this;} /** *

The cost estimate result that's associated with a time period.

*/ inline CostEstimate& WithResultsByTime(Aws::Vector&& value) { SetResultsByTime(std::move(value)); return *this;} /** *

The cost estimate result that's associated with a time period.

*/ inline CostEstimate& AddResultsByTime(const EstimateByTime& value) { m_resultsByTimeHasBeenSet = true; m_resultsByTime.push_back(value); return *this; } /** *

The cost estimate result that's associated with a time period.

*/ inline CostEstimate& AddResultsByTime(EstimateByTime&& value) { m_resultsByTimeHasBeenSet = true; m_resultsByTime.push_back(std::move(value)); return *this; } private: Aws::String m_usageType; bool m_usageTypeHasBeenSet = false; Aws::Vector m_resultsByTime; bool m_resultsByTimeHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws