/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Defines the settings for a specific Region.See Also:
AWS
* API Reference
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 or AMI tags.
*/ inline const AmiDistributionConfiguration& GetAmiDistributionConfiguration() const{ return m_amiDistributionConfiguration; } /** *The specific AMI settings; for example, launch permissions or AMI tags.
*/ inline bool AmiDistributionConfigurationHasBeenSet() const { return m_amiDistributionConfigurationHasBeenSet; } /** *The specific AMI settings; for example, launch permissions or AMI tags.
*/ inline void SetAmiDistributionConfiguration(const AmiDistributionConfiguration& value) { m_amiDistributionConfigurationHasBeenSet = true; m_amiDistributionConfiguration = value; } /** *The specific AMI settings; for example, launch permissions or AMI tags.
*/ inline void SetAmiDistributionConfiguration(AmiDistributionConfiguration&& value) { m_amiDistributionConfigurationHasBeenSet = true; m_amiDistributionConfiguration = std::move(value); } /** *The specific AMI settings; for example, launch permissions or AMI tags.
*/ inline Distribution& WithAmiDistributionConfiguration(const AmiDistributionConfiguration& value) { SetAmiDistributionConfiguration(value); return *this;} /** *The specific AMI settings; for example, launch permissions or AMI tags.
*/ inline Distribution& WithAmiDistributionConfiguration(AmiDistributionConfiguration&& value) { SetAmiDistributionConfiguration(std::move(value)); return *this;} /** *Container distribution settings for encryption, licensing, and sharing in a * specific Region.
*/ inline const ContainerDistributionConfiguration& GetContainerDistributionConfiguration() const{ return m_containerDistributionConfiguration; } /** *Container distribution settings for encryption, licensing, and sharing in a * specific Region.
*/ inline bool ContainerDistributionConfigurationHasBeenSet() const { return m_containerDistributionConfigurationHasBeenSet; } /** *Container distribution settings for encryption, licensing, and sharing in a * specific Region.
*/ inline void SetContainerDistributionConfiguration(const ContainerDistributionConfiguration& value) { m_containerDistributionConfigurationHasBeenSet = true; m_containerDistributionConfiguration = value; } /** *Container distribution settings for encryption, licensing, and sharing in a * specific Region.
*/ inline void SetContainerDistributionConfiguration(ContainerDistributionConfiguration&& value) { m_containerDistributionConfigurationHasBeenSet = true; m_containerDistributionConfiguration = std::move(value); } /** *Container distribution settings for encryption, licensing, and sharing in a * specific Region.
*/ inline Distribution& WithContainerDistributionConfiguration(const ContainerDistributionConfiguration& value) { SetContainerDistributionConfiguration(value); return *this;} /** *Container distribution settings for encryption, licensing, and sharing in a * specific Region.
*/ inline Distribution& WithContainerDistributionConfiguration(ContainerDistributionConfiguration&& value) { SetContainerDistributionConfiguration(std::move(value)); return *this;} /** *The License Manager Configuration to associate with the AMI in the specified * Region.
*/ inline const Aws::VectorThe 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::VectorThe License Manager Configuration to associate with the AMI in the specified * Region.
*/ inline void SetLicenseConfigurationArns(Aws::VectorThe License Manager Configuration to associate with the AMI in the specified * Region.
*/ inline Distribution& WithLicenseConfigurationArns(const Aws::VectorThe License Manager Configuration to associate with the AMI in the specified * Region.
*/ inline Distribution& WithLicenseConfigurationArns(Aws::VectorThe 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; } /** *A group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline const Aws::VectorA group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline bool LaunchTemplateConfigurationsHasBeenSet() const { return m_launchTemplateConfigurationsHasBeenSet; } /** *A group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline void SetLaunchTemplateConfigurations(const Aws::VectorA group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline void SetLaunchTemplateConfigurations(Aws::VectorA group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline Distribution& WithLaunchTemplateConfigurations(const Aws::VectorA group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline Distribution& WithLaunchTemplateConfigurations(Aws::VectorA group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline Distribution& AddLaunchTemplateConfigurations(const LaunchTemplateConfiguration& value) { m_launchTemplateConfigurationsHasBeenSet = true; m_launchTemplateConfigurations.push_back(value); return *this; } /** *A group of launchTemplateConfiguration settings that apply to image * distribution for specified accounts.
*/ inline Distribution& AddLaunchTemplateConfigurations(LaunchTemplateConfiguration&& value) { m_launchTemplateConfigurationsHasBeenSet = true; m_launchTemplateConfigurations.push_back(std::move(value)); return *this; } /** *Configure export settings to deliver disk images created from your image * build, using a file format that is compatible with your VMs in that Region.
*/ inline const S3ExportConfiguration& GetS3ExportConfiguration() const{ return m_s3ExportConfiguration; } /** *Configure export settings to deliver disk images created from your image * build, using a file format that is compatible with your VMs in that Region.
*/ inline bool S3ExportConfigurationHasBeenSet() const { return m_s3ExportConfigurationHasBeenSet; } /** *Configure export settings to deliver disk images created from your image * build, using a file format that is compatible with your VMs in that Region.
*/ inline void SetS3ExportConfiguration(const S3ExportConfiguration& value) { m_s3ExportConfigurationHasBeenSet = true; m_s3ExportConfiguration = value; } /** *Configure export settings to deliver disk images created from your image * build, using a file format that is compatible with your VMs in that Region.
*/ inline void SetS3ExportConfiguration(S3ExportConfiguration&& value) { m_s3ExportConfigurationHasBeenSet = true; m_s3ExportConfiguration = std::move(value); } /** *Configure export settings to deliver disk images created from your image * build, using a file format that is compatible with your VMs in that Region.
*/ inline Distribution& WithS3ExportConfiguration(const S3ExportConfiguration& value) { SetS3ExportConfiguration(value); return *this;} /** *Configure export settings to deliver disk images created from your image * build, using a file format that is compatible with your VMs in that Region.
*/ inline Distribution& WithS3ExportConfiguration(S3ExportConfiguration&& value) { SetS3ExportConfiguration(std::move(value)); return *this;} /** *The Windows faster-launching configurations to use for AMI distribution.
*/ inline const Aws::VectorThe Windows faster-launching configurations to use for AMI distribution.
*/ inline bool FastLaunchConfigurationsHasBeenSet() const { return m_fastLaunchConfigurationsHasBeenSet; } /** *The Windows faster-launching configurations to use for AMI distribution.
*/ inline void SetFastLaunchConfigurations(const Aws::VectorThe Windows faster-launching configurations to use for AMI distribution.
*/ inline void SetFastLaunchConfigurations(Aws::VectorThe Windows faster-launching configurations to use for AMI distribution.
*/ inline Distribution& WithFastLaunchConfigurations(const Aws::VectorThe Windows faster-launching configurations to use for AMI distribution.
*/ inline Distribution& WithFastLaunchConfigurations(Aws::VectorThe Windows faster-launching configurations to use for AMI distribution.
*/ inline Distribution& AddFastLaunchConfigurations(const FastLaunchConfiguration& value) { m_fastLaunchConfigurationsHasBeenSet = true; m_fastLaunchConfigurations.push_back(value); return *this; } /** *The Windows faster-launching configurations to use for AMI distribution.
*/ inline Distribution& AddFastLaunchConfigurations(FastLaunchConfiguration&& value) { m_fastLaunchConfigurationsHasBeenSet = true; m_fastLaunchConfigurations.push_back(std::move(value)); return *this; } private: Aws::String m_region; bool m_regionHasBeenSet = false; AmiDistributionConfiguration m_amiDistributionConfiguration; bool m_amiDistributionConfigurationHasBeenSet = false; ContainerDistributionConfiguration m_containerDistributionConfiguration; bool m_containerDistributionConfigurationHasBeenSet = false; Aws::Vector