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

Defines the settings for a specific Region.

See Also:

AWS * API Reference

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

The target Region.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The target Region.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The target Region.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

The target Region.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

The target Region.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

The target Region.

*/ inline Distribution& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The target Region.

*/ inline Distribution& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The target Region.

*/ inline Distribution& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The specific AMI settings (for example, launch permissions, AMI tags).

*/ inline const AmiDistributionConfiguration& GetAmiDistributionConfiguration() const{ return m_amiDistributionConfiguration; } /** *

The specific AMI settings (for example, launch permissions, AMI tags).

*/ inline bool AmiDistributionConfigurationHasBeenSet() const { return m_amiDistributionConfigurationHasBeenSet; } /** *

The specific AMI settings (for example, launch permissions, AMI tags).

*/ inline void SetAmiDistributionConfiguration(const AmiDistributionConfiguration& value) { m_amiDistributionConfigurationHasBeenSet = true; m_amiDistributionConfiguration = value; } /** *

The specific AMI settings (for example, launch permissions, AMI tags).

*/ inline void SetAmiDistributionConfiguration(AmiDistributionConfiguration&& value) { m_amiDistributionConfigurationHasBeenSet = true; m_amiDistributionConfiguration = std::move(value); } /** *

The specific AMI settings (for example, launch permissions, AMI tags).

*/ inline Distribution& WithAmiDistributionConfiguration(const AmiDistributionConfiguration& value) { SetAmiDistributionConfiguration(value); return *this;} /** *

The specific AMI settings (for example, launch permissions, AMI tags).

*/ inline Distribution& WithAmiDistributionConfiguration(AmiDistributionConfiguration&& value) { SetAmiDistributionConfiguration(std::move(value)); return *this;} /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline const Aws::Vector& GetLicenseConfigurationArns() const{ return m_licenseConfigurationArns; } /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline bool LicenseConfigurationArnsHasBeenSet() const { return m_licenseConfigurationArnsHasBeenSet; } /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline void SetLicenseConfigurationArns(const Aws::Vector& value) { m_licenseConfigurationArnsHasBeenSet = true; m_licenseConfigurationArns = value; } /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline void SetLicenseConfigurationArns(Aws::Vector&& value) { m_licenseConfigurationArnsHasBeenSet = true; m_licenseConfigurationArns = std::move(value); } /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline Distribution& WithLicenseConfigurationArns(const Aws::Vector& value) { SetLicenseConfigurationArns(value); return *this;} /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline Distribution& WithLicenseConfigurationArns(Aws::Vector&& value) { SetLicenseConfigurationArns(std::move(value)); return *this;} /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline Distribution& AddLicenseConfigurationArns(const Aws::String& value) { m_licenseConfigurationArnsHasBeenSet = true; m_licenseConfigurationArns.push_back(value); return *this; } /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline Distribution& AddLicenseConfigurationArns(Aws::String&& value) { m_licenseConfigurationArnsHasBeenSet = true; m_licenseConfigurationArns.push_back(std::move(value)); return *this; } /** *

The License Manager Configuration to associate with the AMI in the specified * Region.

*/ inline Distribution& AddLicenseConfigurationArns(const char* value) { m_licenseConfigurationArnsHasBeenSet = true; m_licenseConfigurationArns.push_back(value); return *this; } private: Aws::String m_region; bool m_regionHasBeenSet; AmiDistributionConfiguration m_amiDistributionConfiguration; bool m_amiDistributionConfigurationHasBeenSet; Aws::Vector m_licenseConfigurationArns; bool m_licenseConfigurationArnsHasBeenSet; }; } // namespace Model } // namespace imagebuilder } // namespace Aws