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

Details about a consumption configuration.

See Also:

AWS * API Reference

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

Renewal frequency.

*/ inline const RenewType& GetRenewType() const{ return m_renewType; } /** *

Renewal frequency.

*/ inline bool RenewTypeHasBeenSet() const { return m_renewTypeHasBeenSet; } /** *

Renewal frequency.

*/ inline void SetRenewType(const RenewType& value) { m_renewTypeHasBeenSet = true; m_renewType = value; } /** *

Renewal frequency.

*/ inline void SetRenewType(RenewType&& value) { m_renewTypeHasBeenSet = true; m_renewType = std::move(value); } /** *

Renewal frequency.

*/ inline ConsumptionConfiguration& WithRenewType(const RenewType& value) { SetRenewType(value); return *this;} /** *

Renewal frequency.

*/ inline ConsumptionConfiguration& WithRenewType(RenewType&& value) { SetRenewType(std::move(value)); return *this;} /** *

Details about a provisional configuration.

*/ inline const ProvisionalConfiguration& GetProvisionalConfiguration() const{ return m_provisionalConfiguration; } /** *

Details about a provisional configuration.

*/ inline bool ProvisionalConfigurationHasBeenSet() const { return m_provisionalConfigurationHasBeenSet; } /** *

Details about a provisional configuration.

*/ inline void SetProvisionalConfiguration(const ProvisionalConfiguration& value) { m_provisionalConfigurationHasBeenSet = true; m_provisionalConfiguration = value; } /** *

Details about a provisional configuration.

*/ inline void SetProvisionalConfiguration(ProvisionalConfiguration&& value) { m_provisionalConfigurationHasBeenSet = true; m_provisionalConfiguration = std::move(value); } /** *

Details about a provisional configuration.

*/ inline ConsumptionConfiguration& WithProvisionalConfiguration(const ProvisionalConfiguration& value) { SetProvisionalConfiguration(value); return *this;} /** *

Details about a provisional configuration.

*/ inline ConsumptionConfiguration& WithProvisionalConfiguration(ProvisionalConfiguration&& value) { SetProvisionalConfiguration(std::move(value)); return *this;} /** *

Details about a borrow configuration.

*/ inline const BorrowConfiguration& GetBorrowConfiguration() const{ return m_borrowConfiguration; } /** *

Details about a borrow configuration.

*/ inline bool BorrowConfigurationHasBeenSet() const { return m_borrowConfigurationHasBeenSet; } /** *

Details about a borrow configuration.

*/ inline void SetBorrowConfiguration(const BorrowConfiguration& value) { m_borrowConfigurationHasBeenSet = true; m_borrowConfiguration = value; } /** *

Details about a borrow configuration.

*/ inline void SetBorrowConfiguration(BorrowConfiguration&& value) { m_borrowConfigurationHasBeenSet = true; m_borrowConfiguration = std::move(value); } /** *

Details about a borrow configuration.

*/ inline ConsumptionConfiguration& WithBorrowConfiguration(const BorrowConfiguration& value) { SetBorrowConfiguration(value); return *this;} /** *

Details about a borrow configuration.

*/ inline ConsumptionConfiguration& WithBorrowConfiguration(BorrowConfiguration&& value) { SetBorrowConfiguration(std::move(value)); return *this;} private: RenewType m_renewType; bool m_renewTypeHasBeenSet = false; ProvisionalConfiguration m_provisionalConfiguration; bool m_provisionalConfigurationHasBeenSet = false; BorrowConfiguration m_borrowConfiguration; bool m_borrowConfigurationHasBeenSet = false; }; } // namespace Model } // namespace LicenseManager } // namespace Aws