/** * 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 #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LicenseManager { namespace Model { /** *

A license configuration is an abstraction of a customer license agreement * that can be consumed and enforced by License Manager. Components include * specifications for the license type (licensing by instance, socket, CPU, or * vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated Host, or * all of these), host affinity (how long a VM must be associated with a host), and * the number of licenses purchased and used.

See Also:

AWS * API Reference

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

Unique ID of the license configuration.

*/ inline const Aws::String& GetLicenseConfigurationId() const{ return m_licenseConfigurationId; } /** *

Unique ID of the license configuration.

*/ inline bool LicenseConfigurationIdHasBeenSet() const { return m_licenseConfigurationIdHasBeenSet; } /** *

Unique ID of the license configuration.

*/ inline void SetLicenseConfigurationId(const Aws::String& value) { m_licenseConfigurationIdHasBeenSet = true; m_licenseConfigurationId = value; } /** *

Unique ID of the license configuration.

*/ inline void SetLicenseConfigurationId(Aws::String&& value) { m_licenseConfigurationIdHasBeenSet = true; m_licenseConfigurationId = std::move(value); } /** *

Unique ID of the license configuration.

*/ inline void SetLicenseConfigurationId(const char* value) { m_licenseConfigurationIdHasBeenSet = true; m_licenseConfigurationId.assign(value); } /** *

Unique ID of the license configuration.

*/ inline LicenseConfiguration& WithLicenseConfigurationId(const Aws::String& value) { SetLicenseConfigurationId(value); return *this;} /** *

Unique ID of the license configuration.

*/ inline LicenseConfiguration& WithLicenseConfigurationId(Aws::String&& value) { SetLicenseConfigurationId(std::move(value)); return *this;} /** *

Unique ID of the license configuration.

*/ inline LicenseConfiguration& WithLicenseConfigurationId(const char* value) { SetLicenseConfigurationId(value); return *this;} /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline const Aws::String& GetLicenseConfigurationArn() const{ return m_licenseConfigurationArn; } /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline bool LicenseConfigurationArnHasBeenSet() const { return m_licenseConfigurationArnHasBeenSet; } /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline void SetLicenseConfigurationArn(const Aws::String& value) { m_licenseConfigurationArnHasBeenSet = true; m_licenseConfigurationArn = value; } /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline void SetLicenseConfigurationArn(Aws::String&& value) { m_licenseConfigurationArnHasBeenSet = true; m_licenseConfigurationArn = std::move(value); } /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline void SetLicenseConfigurationArn(const char* value) { m_licenseConfigurationArnHasBeenSet = true; m_licenseConfigurationArn.assign(value); } /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline LicenseConfiguration& WithLicenseConfigurationArn(const Aws::String& value) { SetLicenseConfigurationArn(value); return *this;} /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline LicenseConfiguration& WithLicenseConfigurationArn(Aws::String&& value) { SetLicenseConfigurationArn(std::move(value)); return *this;} /** *

Amazon Resource Name (ARN) of the license configuration.

*/ inline LicenseConfiguration& WithLicenseConfigurationArn(const char* value) { SetLicenseConfigurationArn(value); return *this;} /** *

Name of the license configuration.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

Name of the license configuration.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

Name of the license configuration.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

Name of the license configuration.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

Name of the license configuration.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

Name of the license configuration.

*/ inline LicenseConfiguration& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

Name of the license configuration.

*/ inline LicenseConfiguration& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

Name of the license configuration.

*/ inline LicenseConfiguration& WithName(const char* value) { SetName(value); return *this;} /** *

Description of the license configuration.

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

Description of the license configuration.

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

Description of the license configuration.

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

Description of the license configuration.

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

Description of the license configuration.

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

Description of the license configuration.

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

Description of the license configuration.

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

Description of the license configuration.

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

Dimension to use to track the license inventory.

*/ inline const LicenseCountingType& GetLicenseCountingType() const{ return m_licenseCountingType; } /** *

Dimension to use to track the license inventory.

*/ inline bool LicenseCountingTypeHasBeenSet() const { return m_licenseCountingTypeHasBeenSet; } /** *

Dimension to use to track the license inventory.

*/ inline void SetLicenseCountingType(const LicenseCountingType& value) { m_licenseCountingTypeHasBeenSet = true; m_licenseCountingType = value; } /** *

Dimension to use to track the license inventory.

*/ inline void SetLicenseCountingType(LicenseCountingType&& value) { m_licenseCountingTypeHasBeenSet = true; m_licenseCountingType = std::move(value); } /** *

Dimension to use to track the license inventory.

*/ inline LicenseConfiguration& WithLicenseCountingType(const LicenseCountingType& value) { SetLicenseCountingType(value); return *this;} /** *

Dimension to use to track the license inventory.

*/ inline LicenseConfiguration& WithLicenseCountingType(LicenseCountingType&& value) { SetLicenseCountingType(std::move(value)); return *this;} /** *

License rules.

*/ inline const Aws::Vector& GetLicenseRules() const{ return m_licenseRules; } /** *

License rules.

*/ inline bool LicenseRulesHasBeenSet() const { return m_licenseRulesHasBeenSet; } /** *

License rules.

*/ inline void SetLicenseRules(const Aws::Vector& value) { m_licenseRulesHasBeenSet = true; m_licenseRules = value; } /** *

License rules.

*/ inline void SetLicenseRules(Aws::Vector&& value) { m_licenseRulesHasBeenSet = true; m_licenseRules = std::move(value); } /** *

License rules.

*/ inline LicenseConfiguration& WithLicenseRules(const Aws::Vector& value) { SetLicenseRules(value); return *this;} /** *

License rules.

*/ inline LicenseConfiguration& WithLicenseRules(Aws::Vector&& value) { SetLicenseRules(std::move(value)); return *this;} /** *

License rules.

*/ inline LicenseConfiguration& AddLicenseRules(const Aws::String& value) { m_licenseRulesHasBeenSet = true; m_licenseRules.push_back(value); return *this; } /** *

License rules.

*/ inline LicenseConfiguration& AddLicenseRules(Aws::String&& value) { m_licenseRulesHasBeenSet = true; m_licenseRules.push_back(std::move(value)); return *this; } /** *

License rules.

*/ inline LicenseConfiguration& AddLicenseRules(const char* value) { m_licenseRulesHasBeenSet = true; m_licenseRules.push_back(value); return *this; } /** *

Number of licenses managed by the license configuration.

*/ inline long long GetLicenseCount() const{ return m_licenseCount; } /** *

Number of licenses managed by the license configuration.

*/ inline bool LicenseCountHasBeenSet() const { return m_licenseCountHasBeenSet; } /** *

Number of licenses managed by the license configuration.

*/ inline void SetLicenseCount(long long value) { m_licenseCountHasBeenSet = true; m_licenseCount = value; } /** *

Number of licenses managed by the license configuration.

*/ inline LicenseConfiguration& WithLicenseCount(long long value) { SetLicenseCount(value); return *this;} /** *

Number of available licenses as a hard limit.

*/ inline bool GetLicenseCountHardLimit() const{ return m_licenseCountHardLimit; } /** *

Number of available licenses as a hard limit.

*/ inline bool LicenseCountHardLimitHasBeenSet() const { return m_licenseCountHardLimitHasBeenSet; } /** *

Number of available licenses as a hard limit.

*/ inline void SetLicenseCountHardLimit(bool value) { m_licenseCountHardLimitHasBeenSet = true; m_licenseCountHardLimit = value; } /** *

Number of available licenses as a hard limit.

*/ inline LicenseConfiguration& WithLicenseCountHardLimit(bool value) { SetLicenseCountHardLimit(value); return *this;} /** *

When true, disassociates a resource when software is uninstalled.

*/ inline bool GetDisassociateWhenNotFound() const{ return m_disassociateWhenNotFound; } /** *

When true, disassociates a resource when software is uninstalled.

*/ inline bool DisassociateWhenNotFoundHasBeenSet() const { return m_disassociateWhenNotFoundHasBeenSet; } /** *

When true, disassociates a resource when software is uninstalled.

*/ inline void SetDisassociateWhenNotFound(bool value) { m_disassociateWhenNotFoundHasBeenSet = true; m_disassociateWhenNotFound = value; } /** *

When true, disassociates a resource when software is uninstalled.

*/ inline LicenseConfiguration& WithDisassociateWhenNotFound(bool value) { SetDisassociateWhenNotFound(value); return *this;} /** *

Number of licenses consumed.

*/ inline long long GetConsumedLicenses() const{ return m_consumedLicenses; } /** *

Number of licenses consumed.

*/ inline bool ConsumedLicensesHasBeenSet() const { return m_consumedLicensesHasBeenSet; } /** *

Number of licenses consumed.

*/ inline void SetConsumedLicenses(long long value) { m_consumedLicensesHasBeenSet = true; m_consumedLicenses = value; } /** *

Number of licenses consumed.

*/ inline LicenseConfiguration& WithConsumedLicenses(long long value) { SetConsumedLicenses(value); return *this;} /** *

Status of the license configuration.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

Status of the license configuration.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

Status of the license configuration.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

Status of the license configuration.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

Status of the license configuration.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

Status of the license configuration.

*/ inline LicenseConfiguration& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

Status of the license configuration.

*/ inline LicenseConfiguration& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

Status of the license configuration.

*/ inline LicenseConfiguration& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

Account ID of the license configuration's owner.

*/ inline const Aws::String& GetOwnerAccountId() const{ return m_ownerAccountId; } /** *

Account ID of the license configuration's owner.

*/ inline bool OwnerAccountIdHasBeenSet() const { return m_ownerAccountIdHasBeenSet; } /** *

Account ID of the license configuration's owner.

*/ inline void SetOwnerAccountId(const Aws::String& value) { m_ownerAccountIdHasBeenSet = true; m_ownerAccountId = value; } /** *

Account ID of the license configuration's owner.

*/ inline void SetOwnerAccountId(Aws::String&& value) { m_ownerAccountIdHasBeenSet = true; m_ownerAccountId = std::move(value); } /** *

Account ID of the license configuration's owner.

*/ inline void SetOwnerAccountId(const char* value) { m_ownerAccountIdHasBeenSet = true; m_ownerAccountId.assign(value); } /** *

Account ID of the license configuration's owner.

*/ inline LicenseConfiguration& WithOwnerAccountId(const Aws::String& value) { SetOwnerAccountId(value); return *this;} /** *

Account ID of the license configuration's owner.

*/ inline LicenseConfiguration& WithOwnerAccountId(Aws::String&& value) { SetOwnerAccountId(std::move(value)); return *this;} /** *

Account ID of the license configuration's owner.

*/ inline LicenseConfiguration& WithOwnerAccountId(const char* value) { SetOwnerAccountId(value); return *this;} /** *

Summaries for licenses consumed by various resources.

*/ inline const Aws::Vector& GetConsumedLicenseSummaryList() const{ return m_consumedLicenseSummaryList; } /** *

Summaries for licenses consumed by various resources.

*/ inline bool ConsumedLicenseSummaryListHasBeenSet() const { return m_consumedLicenseSummaryListHasBeenSet; } /** *

Summaries for licenses consumed by various resources.

*/ inline void SetConsumedLicenseSummaryList(const Aws::Vector& value) { m_consumedLicenseSummaryListHasBeenSet = true; m_consumedLicenseSummaryList = value; } /** *

Summaries for licenses consumed by various resources.

*/ inline void SetConsumedLicenseSummaryList(Aws::Vector&& value) { m_consumedLicenseSummaryListHasBeenSet = true; m_consumedLicenseSummaryList = std::move(value); } /** *

Summaries for licenses consumed by various resources.

*/ inline LicenseConfiguration& WithConsumedLicenseSummaryList(const Aws::Vector& value) { SetConsumedLicenseSummaryList(value); return *this;} /** *

Summaries for licenses consumed by various resources.

*/ inline LicenseConfiguration& WithConsumedLicenseSummaryList(Aws::Vector&& value) { SetConsumedLicenseSummaryList(std::move(value)); return *this;} /** *

Summaries for licenses consumed by various resources.

*/ inline LicenseConfiguration& AddConsumedLicenseSummaryList(const ConsumedLicenseSummary& value) { m_consumedLicenseSummaryListHasBeenSet = true; m_consumedLicenseSummaryList.push_back(value); return *this; } /** *

Summaries for licenses consumed by various resources.

*/ inline LicenseConfiguration& AddConsumedLicenseSummaryList(ConsumedLicenseSummary&& value) { m_consumedLicenseSummaryListHasBeenSet = true; m_consumedLicenseSummaryList.push_back(std::move(value)); return *this; } /** *

Summaries for managed resources.

*/ inline const Aws::Vector& GetManagedResourceSummaryList() const{ return m_managedResourceSummaryList; } /** *

Summaries for managed resources.

*/ inline bool ManagedResourceSummaryListHasBeenSet() const { return m_managedResourceSummaryListHasBeenSet; } /** *

Summaries for managed resources.

*/ inline void SetManagedResourceSummaryList(const Aws::Vector& value) { m_managedResourceSummaryListHasBeenSet = true; m_managedResourceSummaryList = value; } /** *

Summaries for managed resources.

*/ inline void SetManagedResourceSummaryList(Aws::Vector&& value) { m_managedResourceSummaryListHasBeenSet = true; m_managedResourceSummaryList = std::move(value); } /** *

Summaries for managed resources.

*/ inline LicenseConfiguration& WithManagedResourceSummaryList(const Aws::Vector& value) { SetManagedResourceSummaryList(value); return *this;} /** *

Summaries for managed resources.

*/ inline LicenseConfiguration& WithManagedResourceSummaryList(Aws::Vector&& value) { SetManagedResourceSummaryList(std::move(value)); return *this;} /** *

Summaries for managed resources.

*/ inline LicenseConfiguration& AddManagedResourceSummaryList(const ManagedResourceSummary& value) { m_managedResourceSummaryListHasBeenSet = true; m_managedResourceSummaryList.push_back(value); return *this; } /** *

Summaries for managed resources.

*/ inline LicenseConfiguration& AddManagedResourceSummaryList(ManagedResourceSummary&& value) { m_managedResourceSummaryListHasBeenSet = true; m_managedResourceSummaryList.push_back(std::move(value)); return *this; } /** *

Product information.

*/ inline const Aws::Vector& GetProductInformationList() const{ return m_productInformationList; } /** *

Product information.

*/ inline bool ProductInformationListHasBeenSet() const { return m_productInformationListHasBeenSet; } /** *

Product information.

*/ inline void SetProductInformationList(const Aws::Vector& value) { m_productInformationListHasBeenSet = true; m_productInformationList = value; } /** *

Product information.

*/ inline void SetProductInformationList(Aws::Vector&& value) { m_productInformationListHasBeenSet = true; m_productInformationList = std::move(value); } /** *

Product information.

*/ inline LicenseConfiguration& WithProductInformationList(const Aws::Vector& value) { SetProductInformationList(value); return *this;} /** *

Product information.

*/ inline LicenseConfiguration& WithProductInformationList(Aws::Vector&& value) { SetProductInformationList(std::move(value)); return *this;} /** *

Product information.

*/ inline LicenseConfiguration& AddProductInformationList(const ProductInformation& value) { m_productInformationListHasBeenSet = true; m_productInformationList.push_back(value); return *this; } /** *

Product information.

*/ inline LicenseConfiguration& AddProductInformationList(ProductInformation&& value) { m_productInformationListHasBeenSet = true; m_productInformationList.push_back(std::move(value)); return *this; } /** *

Automated discovery information.

*/ inline const AutomatedDiscoveryInformation& GetAutomatedDiscoveryInformation() const{ return m_automatedDiscoveryInformation; } /** *

Automated discovery information.

*/ inline bool AutomatedDiscoveryInformationHasBeenSet() const { return m_automatedDiscoveryInformationHasBeenSet; } /** *

Automated discovery information.

*/ inline void SetAutomatedDiscoveryInformation(const AutomatedDiscoveryInformation& value) { m_automatedDiscoveryInformationHasBeenSet = true; m_automatedDiscoveryInformation = value; } /** *

Automated discovery information.

*/ inline void SetAutomatedDiscoveryInformation(AutomatedDiscoveryInformation&& value) { m_automatedDiscoveryInformationHasBeenSet = true; m_automatedDiscoveryInformation = std::move(value); } /** *

Automated discovery information.

*/ inline LicenseConfiguration& WithAutomatedDiscoveryInformation(const AutomatedDiscoveryInformation& value) { SetAutomatedDiscoveryInformation(value); return *this;} /** *

Automated discovery information.

*/ inline LicenseConfiguration& WithAutomatedDiscoveryInformation(AutomatedDiscoveryInformation&& value) { SetAutomatedDiscoveryInformation(std::move(value)); return *this;} private: Aws::String m_licenseConfigurationId; bool m_licenseConfigurationIdHasBeenSet = false; Aws::String m_licenseConfigurationArn; bool m_licenseConfigurationArnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; LicenseCountingType m_licenseCountingType; bool m_licenseCountingTypeHasBeenSet = false; Aws::Vector m_licenseRules; bool m_licenseRulesHasBeenSet = false; long long m_licenseCount; bool m_licenseCountHasBeenSet = false; bool m_licenseCountHardLimit; bool m_licenseCountHardLimitHasBeenSet = false; bool m_disassociateWhenNotFound; bool m_disassociateWhenNotFoundHasBeenSet = false; long long m_consumedLicenses; bool m_consumedLicensesHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; Aws::String m_ownerAccountId; bool m_ownerAccountIdHasBeenSet = false; Aws::Vector m_consumedLicenseSummaryList; bool m_consumedLicenseSummaryListHasBeenSet = false; Aws::Vector m_managedResourceSummaryList; bool m_managedResourceSummaryListHasBeenSet = false; Aws::Vector m_productInformationList; bool m_productInformationListHasBeenSet = false; AutomatedDiscoveryInformation m_automatedDiscoveryInformation; bool m_automatedDiscoveryInformationHasBeenSet = false; }; } // namespace Model } // namespace LicenseManager } // namespace Aws