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

Describes an Amazon Lightsail content delivery network (CDN) * distribution.

See Also:

AWS * API Reference

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

The name of the distribution.

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

The name of the distribution.

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

The name of the distribution.

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

The name of the distribution.

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

The name of the distribution.

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

The name of the distribution.

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

The name of the distribution.

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

The name of the distribution.

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

The Amazon Resource Name (ARN) of the distribution.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline LightsailDistribution& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline LightsailDistribution& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the distribution.

*/ inline LightsailDistribution& WithArn(const char* value) { SetArn(value); return *this;} /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline const Aws::String& GetSupportCode() const{ return m_supportCode; } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline bool SupportCodeHasBeenSet() const { return m_supportCodeHasBeenSet; } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline void SetSupportCode(const Aws::String& value) { m_supportCodeHasBeenSet = true; m_supportCode = value; } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline void SetSupportCode(Aws::String&& value) { m_supportCodeHasBeenSet = true; m_supportCode = std::move(value); } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline void SetSupportCode(const char* value) { m_supportCodeHasBeenSet = true; m_supportCode.assign(value); } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline LightsailDistribution& WithSupportCode(const Aws::String& value) { SetSupportCode(value); return *this;} /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline LightsailDistribution& WithSupportCode(Aws::String&& value) { SetSupportCode(std::move(value)); return *this;} /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail distribution. This code enables our support team * to look up your Lightsail information more easily.

*/ inline LightsailDistribution& WithSupportCode(const char* value) { SetSupportCode(value); return *this;} /** *

The timestamp when the distribution was created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The timestamp when the distribution was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The timestamp when the distribution was created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The timestamp when the distribution was created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The timestamp when the distribution was created.

*/ inline LightsailDistribution& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The timestamp when the distribution was created.

*/ inline LightsailDistribution& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

An object that describes the location of the distribution, such as the Amazon * Web Services Region and Availability Zone.

Lightsail distributions * are global resources that can reference an origin in any Amazon Web Services * Region, and distribute its content globally. However, all distributions are * located in the us-east-1 Region.

*/ inline const ResourceLocation& GetLocation() const{ return m_location; } /** *

An object that describes the location of the distribution, such as the Amazon * Web Services Region and Availability Zone.

Lightsail distributions * are global resources that can reference an origin in any Amazon Web Services * Region, and distribute its content globally. However, all distributions are * located in the us-east-1 Region.

*/ inline bool LocationHasBeenSet() const { return m_locationHasBeenSet; } /** *

An object that describes the location of the distribution, such as the Amazon * Web Services Region and Availability Zone.

Lightsail distributions * are global resources that can reference an origin in any Amazon Web Services * Region, and distribute its content globally. However, all distributions are * located in the us-east-1 Region.

*/ inline void SetLocation(const ResourceLocation& value) { m_locationHasBeenSet = true; m_location = value; } /** *

An object that describes the location of the distribution, such as the Amazon * Web Services Region and Availability Zone.

Lightsail distributions * are global resources that can reference an origin in any Amazon Web Services * Region, and distribute its content globally. However, all distributions are * located in the us-east-1 Region.

*/ inline void SetLocation(ResourceLocation&& value) { m_locationHasBeenSet = true; m_location = std::move(value); } /** *

An object that describes the location of the distribution, such as the Amazon * Web Services Region and Availability Zone.

Lightsail distributions * are global resources that can reference an origin in any Amazon Web Services * Region, and distribute its content globally. However, all distributions are * located in the us-east-1 Region.

*/ inline LightsailDistribution& WithLocation(const ResourceLocation& value) { SetLocation(value); return *this;} /** *

An object that describes the location of the distribution, such as the Amazon * Web Services Region and Availability Zone.

Lightsail distributions * are global resources that can reference an origin in any Amazon Web Services * Region, and distribute its content globally. However, all distributions are * located in the us-east-1 Region.

*/ inline LightsailDistribution& WithLocation(ResourceLocation&& value) { SetLocation(std::move(value)); return *this;} /** *

The Lightsail resource type (e.g., Distribution).

*/ inline const ResourceType& GetResourceType() const{ return m_resourceType; } /** *

The Lightsail resource type (e.g., Distribution).

*/ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } /** *

The Lightsail resource type (e.g., Distribution).

*/ inline void SetResourceType(const ResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } /** *

The Lightsail resource type (e.g., Distribution).

*/ inline void SetResourceType(ResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } /** *

The Lightsail resource type (e.g., Distribution).

*/ inline LightsailDistribution& WithResourceType(const ResourceType& value) { SetResourceType(value); return *this;} /** *

The Lightsail resource type (e.g., Distribution).

*/ inline LightsailDistribution& WithResourceType(ResourceType&& value) { SetResourceType(std::move(value)); return *this;} /** *

The alternate domain names of the distribution.

*/ inline const Aws::Vector& GetAlternativeDomainNames() const{ return m_alternativeDomainNames; } /** *

The alternate domain names of the distribution.

*/ inline bool AlternativeDomainNamesHasBeenSet() const { return m_alternativeDomainNamesHasBeenSet; } /** *

The alternate domain names of the distribution.

*/ inline void SetAlternativeDomainNames(const Aws::Vector& value) { m_alternativeDomainNamesHasBeenSet = true; m_alternativeDomainNames = value; } /** *

The alternate domain names of the distribution.

*/ inline void SetAlternativeDomainNames(Aws::Vector&& value) { m_alternativeDomainNamesHasBeenSet = true; m_alternativeDomainNames = std::move(value); } /** *

The alternate domain names of the distribution.

*/ inline LightsailDistribution& WithAlternativeDomainNames(const Aws::Vector& value) { SetAlternativeDomainNames(value); return *this;} /** *

The alternate domain names of the distribution.

*/ inline LightsailDistribution& WithAlternativeDomainNames(Aws::Vector&& value) { SetAlternativeDomainNames(std::move(value)); return *this;} /** *

The alternate domain names of the distribution.

*/ inline LightsailDistribution& AddAlternativeDomainNames(const Aws::String& value) { m_alternativeDomainNamesHasBeenSet = true; m_alternativeDomainNames.push_back(value); return *this; } /** *

The alternate domain names of the distribution.

*/ inline LightsailDistribution& AddAlternativeDomainNames(Aws::String&& value) { m_alternativeDomainNamesHasBeenSet = true; m_alternativeDomainNames.push_back(std::move(value)); return *this; } /** *

The alternate domain names of the distribution.

*/ inline LightsailDistribution& AddAlternativeDomainNames(const char* value) { m_alternativeDomainNamesHasBeenSet = true; m_alternativeDomainNames.push_back(value); return *this; } /** *

The status of the distribution.

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

The status of the distribution.

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

The status of the distribution.

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

The status of the distribution.

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

The status of the distribution.

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

The status of the distribution.

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

The status of the distribution.

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

The status of the distribution.

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

Indicates whether the distribution is enabled.

*/ inline bool GetIsEnabled() const{ return m_isEnabled; } /** *

Indicates whether the distribution is enabled.

*/ inline bool IsEnabledHasBeenSet() const { return m_isEnabledHasBeenSet; } /** *

Indicates whether the distribution is enabled.

*/ inline void SetIsEnabled(bool value) { m_isEnabledHasBeenSet = true; m_isEnabled = value; } /** *

Indicates whether the distribution is enabled.

*/ inline LightsailDistribution& WithIsEnabled(bool value) { SetIsEnabled(value); return *this;} /** *

The domain name of the distribution.

*/ inline const Aws::String& GetDomainName() const{ return m_domainName; } /** *

The domain name of the distribution.

*/ inline bool DomainNameHasBeenSet() const { return m_domainNameHasBeenSet; } /** *

The domain name of the distribution.

*/ inline void SetDomainName(const Aws::String& value) { m_domainNameHasBeenSet = true; m_domainName = value; } /** *

The domain name of the distribution.

*/ inline void SetDomainName(Aws::String&& value) { m_domainNameHasBeenSet = true; m_domainName = std::move(value); } /** *

The domain name of the distribution.

*/ inline void SetDomainName(const char* value) { m_domainNameHasBeenSet = true; m_domainName.assign(value); } /** *

The domain name of the distribution.

*/ inline LightsailDistribution& WithDomainName(const Aws::String& value) { SetDomainName(value); return *this;} /** *

The domain name of the distribution.

*/ inline LightsailDistribution& WithDomainName(Aws::String&& value) { SetDomainName(std::move(value)); return *this;} /** *

The domain name of the distribution.

*/ inline LightsailDistribution& WithDomainName(const char* value) { SetDomainName(value); return *this;} /** *

The ID of the bundle currently applied to the distribution.

*/ inline const Aws::String& GetBundleId() const{ return m_bundleId; } /** *

The ID of the bundle currently applied to the distribution.

*/ inline bool BundleIdHasBeenSet() const { return m_bundleIdHasBeenSet; } /** *

The ID of the bundle currently applied to the distribution.

*/ inline void SetBundleId(const Aws::String& value) { m_bundleIdHasBeenSet = true; m_bundleId = value; } /** *

The ID of the bundle currently applied to the distribution.

*/ inline void SetBundleId(Aws::String&& value) { m_bundleIdHasBeenSet = true; m_bundleId = std::move(value); } /** *

The ID of the bundle currently applied to the distribution.

*/ inline void SetBundleId(const char* value) { m_bundleIdHasBeenSet = true; m_bundleId.assign(value); } /** *

The ID of the bundle currently applied to the distribution.

*/ inline LightsailDistribution& WithBundleId(const Aws::String& value) { SetBundleId(value); return *this;} /** *

The ID of the bundle currently applied to the distribution.

*/ inline LightsailDistribution& WithBundleId(Aws::String&& value) { SetBundleId(std::move(value)); return *this;} /** *

The ID of the bundle currently applied to the distribution.

*/ inline LightsailDistribution& WithBundleId(const char* value) { SetBundleId(value); return *this;} /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline const Aws::String& GetCertificateName() const{ return m_certificateName; } /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline bool CertificateNameHasBeenSet() const { return m_certificateNameHasBeenSet; } /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline void SetCertificateName(const Aws::String& value) { m_certificateNameHasBeenSet = true; m_certificateName = value; } /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline void SetCertificateName(Aws::String&& value) { m_certificateNameHasBeenSet = true; m_certificateName = std::move(value); } /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline void SetCertificateName(const char* value) { m_certificateNameHasBeenSet = true; m_certificateName.assign(value); } /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline LightsailDistribution& WithCertificateName(const Aws::String& value) { SetCertificateName(value); return *this;} /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline LightsailDistribution& WithCertificateName(Aws::String&& value) { SetCertificateName(std::move(value)); return *this;} /** *

The name of the SSL/TLS certificate attached to the distribution, if any.

*/ inline LightsailDistribution& WithCertificateName(const char* value) { SetCertificateName(value); return *this;} /** *

An object that describes the origin resource of the distribution, such as a * Lightsail instance, bucket, or load balancer.

The distribution pulls, * caches, and serves content from the origin.

*/ inline const Origin& GetOrigin() const{ return m_origin; } /** *

An object that describes the origin resource of the distribution, such as a * Lightsail instance, bucket, or load balancer.

The distribution pulls, * caches, and serves content from the origin.

*/ inline bool OriginHasBeenSet() const { return m_originHasBeenSet; } /** *

An object that describes the origin resource of the distribution, such as a * Lightsail instance, bucket, or load balancer.

The distribution pulls, * caches, and serves content from the origin.

*/ inline void SetOrigin(const Origin& value) { m_originHasBeenSet = true; m_origin = value; } /** *

An object that describes the origin resource of the distribution, such as a * Lightsail instance, bucket, or load balancer.

The distribution pulls, * caches, and serves content from the origin.

*/ inline void SetOrigin(Origin&& value) { m_originHasBeenSet = true; m_origin = std::move(value); } /** *

An object that describes the origin resource of the distribution, such as a * Lightsail instance, bucket, or load balancer.

The distribution pulls, * caches, and serves content from the origin.

*/ inline LightsailDistribution& WithOrigin(const Origin& value) { SetOrigin(value); return *this;} /** *

An object that describes the origin resource of the distribution, such as a * Lightsail instance, bucket, or load balancer.

The distribution pulls, * caches, and serves content from the origin.

*/ inline LightsailDistribution& WithOrigin(Origin&& value) { SetOrigin(std::move(value)); return *this;} /** *

The public DNS of the origin.

*/ inline const Aws::String& GetOriginPublicDNS() const{ return m_originPublicDNS; } /** *

The public DNS of the origin.

*/ inline bool OriginPublicDNSHasBeenSet() const { return m_originPublicDNSHasBeenSet; } /** *

The public DNS of the origin.

*/ inline void SetOriginPublicDNS(const Aws::String& value) { m_originPublicDNSHasBeenSet = true; m_originPublicDNS = value; } /** *

The public DNS of the origin.

*/ inline void SetOriginPublicDNS(Aws::String&& value) { m_originPublicDNSHasBeenSet = true; m_originPublicDNS = std::move(value); } /** *

The public DNS of the origin.

*/ inline void SetOriginPublicDNS(const char* value) { m_originPublicDNSHasBeenSet = true; m_originPublicDNS.assign(value); } /** *

The public DNS of the origin.

*/ inline LightsailDistribution& WithOriginPublicDNS(const Aws::String& value) { SetOriginPublicDNS(value); return *this;} /** *

The public DNS of the origin.

*/ inline LightsailDistribution& WithOriginPublicDNS(Aws::String&& value) { SetOriginPublicDNS(std::move(value)); return *this;} /** *

The public DNS of the origin.

*/ inline LightsailDistribution& WithOriginPublicDNS(const char* value) { SetOriginPublicDNS(value); return *this;} /** *

An object that describes the default cache behavior of the distribution.

*/ inline const CacheBehavior& GetDefaultCacheBehavior() const{ return m_defaultCacheBehavior; } /** *

An object that describes the default cache behavior of the distribution.

*/ inline bool DefaultCacheBehaviorHasBeenSet() const { return m_defaultCacheBehaviorHasBeenSet; } /** *

An object that describes the default cache behavior of the distribution.

*/ inline void SetDefaultCacheBehavior(const CacheBehavior& value) { m_defaultCacheBehaviorHasBeenSet = true; m_defaultCacheBehavior = value; } /** *

An object that describes the default cache behavior of the distribution.

*/ inline void SetDefaultCacheBehavior(CacheBehavior&& value) { m_defaultCacheBehaviorHasBeenSet = true; m_defaultCacheBehavior = std::move(value); } /** *

An object that describes the default cache behavior of the distribution.

*/ inline LightsailDistribution& WithDefaultCacheBehavior(const CacheBehavior& value) { SetDefaultCacheBehavior(value); return *this;} /** *

An object that describes the default cache behavior of the distribution.

*/ inline LightsailDistribution& WithDefaultCacheBehavior(CacheBehavior&& value) { SetDefaultCacheBehavior(std::move(value)); return *this;} /** *

An object that describes the cache behavior settings of the distribution.

*/ inline const CacheSettings& GetCacheBehaviorSettings() const{ return m_cacheBehaviorSettings; } /** *

An object that describes the cache behavior settings of the distribution.

*/ inline bool CacheBehaviorSettingsHasBeenSet() const { return m_cacheBehaviorSettingsHasBeenSet; } /** *

An object that describes the cache behavior settings of the distribution.

*/ inline void SetCacheBehaviorSettings(const CacheSettings& value) { m_cacheBehaviorSettingsHasBeenSet = true; m_cacheBehaviorSettings = value; } /** *

An object that describes the cache behavior settings of the distribution.

*/ inline void SetCacheBehaviorSettings(CacheSettings&& value) { m_cacheBehaviorSettingsHasBeenSet = true; m_cacheBehaviorSettings = std::move(value); } /** *

An object that describes the cache behavior settings of the distribution.

*/ inline LightsailDistribution& WithCacheBehaviorSettings(const CacheSettings& value) { SetCacheBehaviorSettings(value); return *this;} /** *

An object that describes the cache behavior settings of the distribution.

*/ inline LightsailDistribution& WithCacheBehaviorSettings(CacheSettings&& value) { SetCacheBehaviorSettings(std::move(value)); return *this;} /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline const Aws::Vector& GetCacheBehaviors() const{ return m_cacheBehaviors; } /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline bool CacheBehaviorsHasBeenSet() const { return m_cacheBehaviorsHasBeenSet; } /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline void SetCacheBehaviors(const Aws::Vector& value) { m_cacheBehaviorsHasBeenSet = true; m_cacheBehaviors = value; } /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline void SetCacheBehaviors(Aws::Vector&& value) { m_cacheBehaviorsHasBeenSet = true; m_cacheBehaviors = std::move(value); } /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline LightsailDistribution& WithCacheBehaviors(const Aws::Vector& value) { SetCacheBehaviors(value); return *this;} /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline LightsailDistribution& WithCacheBehaviors(Aws::Vector&& value) { SetCacheBehaviors(std::move(value)); return *this;} /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline LightsailDistribution& AddCacheBehaviors(const CacheBehaviorPerPath& value) { m_cacheBehaviorsHasBeenSet = true; m_cacheBehaviors.push_back(value); return *this; } /** *

An array of objects that describe the per-path cache behavior of the * distribution.

*/ inline LightsailDistribution& AddCacheBehaviors(CacheBehaviorPerPath&& value) { m_cacheBehaviorsHasBeenSet = true; m_cacheBehaviors.push_back(std::move(value)); return *this; } /** *

Indicates whether the bundle that is currently applied to your distribution, * specified using the distributionName parameter, can be changed to * another bundle.

Use the UpdateDistributionBundle action to * change your distribution's bundle.

*/ inline bool GetAbleToUpdateBundle() const{ return m_ableToUpdateBundle; } /** *

Indicates whether the bundle that is currently applied to your distribution, * specified using the distributionName parameter, can be changed to * another bundle.

Use the UpdateDistributionBundle action to * change your distribution's bundle.

*/ inline bool AbleToUpdateBundleHasBeenSet() const { return m_ableToUpdateBundleHasBeenSet; } /** *

Indicates whether the bundle that is currently applied to your distribution, * specified using the distributionName parameter, can be changed to * another bundle.

Use the UpdateDistributionBundle action to * change your distribution's bundle.

*/ inline void SetAbleToUpdateBundle(bool value) { m_ableToUpdateBundleHasBeenSet = true; m_ableToUpdateBundle = value; } /** *

Indicates whether the bundle that is currently applied to your distribution, * specified using the distributionName parameter, can be changed to * another bundle.

Use the UpdateDistributionBundle action to * change your distribution's bundle.

*/ inline LightsailDistribution& WithAbleToUpdateBundle(bool value) { SetAbleToUpdateBundle(value); return *this;} /** *

The IP address type of the distribution.

The possible values are * ipv4 for IPv4 only, and dualstack for IPv4 and * IPv6.

*/ inline const IpAddressType& GetIpAddressType() const{ return m_ipAddressType; } /** *

The IP address type of the distribution.

The possible values are * ipv4 for IPv4 only, and dualstack for IPv4 and * IPv6.

*/ inline bool IpAddressTypeHasBeenSet() const { return m_ipAddressTypeHasBeenSet; } /** *

The IP address type of the distribution.

The possible values are * ipv4 for IPv4 only, and dualstack for IPv4 and * IPv6.

*/ inline void SetIpAddressType(const IpAddressType& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = value; } /** *

The IP address type of the distribution.

The possible values are * ipv4 for IPv4 only, and dualstack for IPv4 and * IPv6.

*/ inline void SetIpAddressType(IpAddressType&& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = std::move(value); } /** *

The IP address type of the distribution.

The possible values are * ipv4 for IPv4 only, and dualstack for IPv4 and * IPv6.

*/ inline LightsailDistribution& WithIpAddressType(const IpAddressType& value) { SetIpAddressType(value); return *this;} /** *

The IP address type of the distribution.

The possible values are * ipv4 for IPv4 only, and dualstack for IPv4 and * IPv6.

*/ inline LightsailDistribution& WithIpAddressType(IpAddressType&& value) { SetIpAddressType(std::move(value)); return *this;} /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline LightsailDistribution& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline LightsailDistribution& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline LightsailDistribution& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

*/ inline LightsailDistribution& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_supportCode; bool m_supportCodeHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; ResourceLocation m_location; bool m_locationHasBeenSet = false; ResourceType m_resourceType; bool m_resourceTypeHasBeenSet = false; Aws::Vector m_alternativeDomainNames; bool m_alternativeDomainNamesHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; bool m_isEnabled; bool m_isEnabledHasBeenSet = false; Aws::String m_domainName; bool m_domainNameHasBeenSet = false; Aws::String m_bundleId; bool m_bundleIdHasBeenSet = false; Aws::String m_certificateName; bool m_certificateNameHasBeenSet = false; Origin m_origin; bool m_originHasBeenSet = false; Aws::String m_originPublicDNS; bool m_originPublicDNSHasBeenSet = false; CacheBehavior m_defaultCacheBehavior; bool m_defaultCacheBehaviorHasBeenSet = false; CacheSettings m_cacheBehaviorSettings; bool m_cacheBehaviorSettingsHasBeenSet = false; Aws::Vector m_cacheBehaviors; bool m_cacheBehaviorsHasBeenSet = false; bool m_ableToUpdateBundle; bool m_ableToUpdateBundleHasBeenSet = false; IpAddressType m_ipAddressType; bool m_ipAddressTypeHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws