/** * 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 #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace CloudFront { namespace Model { /** *

A distribution configuration.

See Also:

AWS * API Reference

*/ class DistributionConfig { public: AWS_CLOUDFRONT_API DistributionConfig(); AWS_CLOUDFRONT_API DistributionConfig(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFRONT_API DistributionConfig& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFRONT_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline const Aws::String& GetCallerReference() const{ return m_callerReference; } /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline bool CallerReferenceHasBeenSet() const { return m_callerReferenceHasBeenSet; } /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline void SetCallerReference(const Aws::String& value) { m_callerReferenceHasBeenSet = true; m_callerReference = value; } /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline void SetCallerReference(Aws::String&& value) { m_callerReferenceHasBeenSet = true; m_callerReference = std::move(value); } /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline void SetCallerReference(const char* value) { m_callerReferenceHasBeenSet = true; m_callerReference.assign(value); } /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline DistributionConfig& WithCallerReference(const Aws::String& value) { SetCallerReference(value); return *this;} /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline DistributionConfig& WithCallerReference(Aws::String&& value) { SetCallerReference(std::move(value)); return *this;} /** *

A unique value (for example, a date-time stamp) that ensures that the request * can't be replayed.

If the value of CallerReference is new * (regardless of the content of the DistributionConfig object), * CloudFront creates a new distribution.

If CallerReference is * a value that you already sent in a previous request to create a distribution, * CloudFront returns a DistributionAlreadyExists error.

*/ inline DistributionConfig& WithCallerReference(const char* value) { SetCallerReference(value); return *this;} /** *

A complex type that contains information about CNAMEs (alternate domain * names), if any, for this distribution.

*/ inline const Aliases& GetAliases() const{ return m_aliases; } /** *

A complex type that contains information about CNAMEs (alternate domain * names), if any, for this distribution.

*/ inline bool AliasesHasBeenSet() const { return m_aliasesHasBeenSet; } /** *

A complex type that contains information about CNAMEs (alternate domain * names), if any, for this distribution.

*/ inline void SetAliases(const Aliases& value) { m_aliasesHasBeenSet = true; m_aliases = value; } /** *

A complex type that contains information about CNAMEs (alternate domain * names), if any, for this distribution.

*/ inline void SetAliases(Aliases&& value) { m_aliasesHasBeenSet = true; m_aliases = std::move(value); } /** *

A complex type that contains information about CNAMEs (alternate domain * names), if any, for this distribution.

*/ inline DistributionConfig& WithAliases(const Aliases& value) { SetAliases(value); return *this;} /** *

A complex type that contains information about CNAMEs (alternate domain * names), if any, for this distribution.

*/ inline DistributionConfig& WithAliases(Aliases&& value) { SetAliases(std::move(value)); return *this;} /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline const Aws::String& GetDefaultRootObject() const{ return m_defaultRootObject; } /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline bool DefaultRootObjectHasBeenSet() const { return m_defaultRootObjectHasBeenSet; } /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline void SetDefaultRootObject(const Aws::String& value) { m_defaultRootObjectHasBeenSet = true; m_defaultRootObject = value; } /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline void SetDefaultRootObject(Aws::String&& value) { m_defaultRootObjectHasBeenSet = true; m_defaultRootObject = std::move(value); } /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline void SetDefaultRootObject(const char* value) { m_defaultRootObjectHasBeenSet = true; m_defaultRootObject.assign(value); } /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithDefaultRootObject(const Aws::String& value) { SetDefaultRootObject(value); return *this;} /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithDefaultRootObject(Aws::String&& value) { SetDefaultRootObject(std::move(value)); return *this;} /** *

The object that you want CloudFront to request from your origin (for example, * index.html) when a viewer requests the root URL for your * distribution (https://www.example.com) instead of an object in your * distribution (https://www.example.com/product-description.html). * Specifying a default root object avoids exposing the contents of your * distribution.

Specify only the object name, for example, * index.html. Don't add a / before the object name.

*

If you don't want to specify a default root object when you create a * distribution, include an empty DefaultRootObject element.

To * delete the default root object from an existing distribution, update the * distribution configuration and include an empty DefaultRootObject * element.

To replace the default root object, update the distribution * configuration and specify the new object.

For more information about the * default root object, see Creating * a Default Root Object in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithDefaultRootObject(const char* value) { SetDefaultRootObject(value); return *this;} /** *

A complex type that contains information about origins for this * distribution.

*/ inline const Origins& GetOrigins() const{ return m_origins; } /** *

A complex type that contains information about origins for this * distribution.

*/ inline bool OriginsHasBeenSet() const { return m_originsHasBeenSet; } /** *

A complex type that contains information about origins for this * distribution.

*/ inline void SetOrigins(const Origins& value) { m_originsHasBeenSet = true; m_origins = value; } /** *

A complex type that contains information about origins for this * distribution.

*/ inline void SetOrigins(Origins&& value) { m_originsHasBeenSet = true; m_origins = std::move(value); } /** *

A complex type that contains information about origins for this * distribution.

*/ inline DistributionConfig& WithOrigins(const Origins& value) { SetOrigins(value); return *this;} /** *

A complex type that contains information about origins for this * distribution.

*/ inline DistributionConfig& WithOrigins(Origins&& value) { SetOrigins(std::move(value)); return *this;} /** *

A complex type that contains information about origin groups for this * distribution.

*/ inline const OriginGroups& GetOriginGroups() const{ return m_originGroups; } /** *

A complex type that contains information about origin groups for this * distribution.

*/ inline bool OriginGroupsHasBeenSet() const { return m_originGroupsHasBeenSet; } /** *

A complex type that contains information about origin groups for this * distribution.

*/ inline void SetOriginGroups(const OriginGroups& value) { m_originGroupsHasBeenSet = true; m_originGroups = value; } /** *

A complex type that contains information about origin groups for this * distribution.

*/ inline void SetOriginGroups(OriginGroups&& value) { m_originGroupsHasBeenSet = true; m_originGroups = std::move(value); } /** *

A complex type that contains information about origin groups for this * distribution.

*/ inline DistributionConfig& WithOriginGroups(const OriginGroups& value) { SetOriginGroups(value); return *this;} /** *

A complex type that contains information about origin groups for this * distribution.

*/ inline DistributionConfig& WithOriginGroups(OriginGroups&& value) { SetOriginGroups(std::move(value)); return *this;} /** *

A complex type that describes the default cache behavior if you don't specify * a CacheBehavior element or if files don't match any of the values * of PathPattern in CacheBehavior elements. You must * create exactly one default cache behavior.

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

A complex type that describes the default cache behavior if you don't specify * a CacheBehavior element or if files don't match any of the values * of PathPattern in CacheBehavior elements. You must * create exactly one default cache behavior.

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

A complex type that describes the default cache behavior if you don't specify * a CacheBehavior element or if files don't match any of the values * of PathPattern in CacheBehavior elements. You must * create exactly one default cache behavior.

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

A complex type that describes the default cache behavior if you don't specify * a CacheBehavior element or if files don't match any of the values * of PathPattern in CacheBehavior elements. You must * create exactly one default cache behavior.

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

A complex type that describes the default cache behavior if you don't specify * a CacheBehavior element or if files don't match any of the values * of PathPattern in CacheBehavior elements. You must * create exactly one default cache behavior.

*/ inline DistributionConfig& WithDefaultCacheBehavior(const DefaultCacheBehavior& value) { SetDefaultCacheBehavior(value); return *this;} /** *

A complex type that describes the default cache behavior if you don't specify * a CacheBehavior element or if files don't match any of the values * of PathPattern in CacheBehavior elements. You must * create exactly one default cache behavior.

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

A complex type that contains zero or more CacheBehavior * elements.

*/ inline const CacheBehaviors& GetCacheBehaviors() const{ return m_cacheBehaviors; } /** *

A complex type that contains zero or more CacheBehavior * elements.

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

A complex type that contains zero or more CacheBehavior * elements.

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

A complex type that contains zero or more CacheBehavior * elements.

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

A complex type that contains zero or more CacheBehavior * elements.

*/ inline DistributionConfig& WithCacheBehaviors(const CacheBehaviors& value) { SetCacheBehaviors(value); return *this;} /** *

A complex type that contains zero or more CacheBehavior * elements.

*/ inline DistributionConfig& WithCacheBehaviors(CacheBehaviors&& value) { SetCacheBehaviors(std::move(value)); return *this;} /** *

A complex type that controls the following:

  • Whether * CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error * messages before returning the response to the viewer.

  • How long * CloudFront caches HTTP status codes in the 4xx and 5xx range.

*

For more information about custom error pages, see Customizing * Error Responses in the Amazon CloudFront Developer Guide.

*/ inline const CustomErrorResponses& GetCustomErrorResponses() const{ return m_customErrorResponses; } /** *

A complex type that controls the following:

  • Whether * CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error * messages before returning the response to the viewer.

  • How long * CloudFront caches HTTP status codes in the 4xx and 5xx range.

*

For more information about custom error pages, see Customizing * Error Responses in the Amazon CloudFront Developer Guide.

*/ inline bool CustomErrorResponsesHasBeenSet() const { return m_customErrorResponsesHasBeenSet; } /** *

A complex type that controls the following:

  • Whether * CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error * messages before returning the response to the viewer.

  • How long * CloudFront caches HTTP status codes in the 4xx and 5xx range.

*

For more information about custom error pages, see Customizing * Error Responses in the Amazon CloudFront Developer Guide.

*/ inline void SetCustomErrorResponses(const CustomErrorResponses& value) { m_customErrorResponsesHasBeenSet = true; m_customErrorResponses = value; } /** *

A complex type that controls the following:

  • Whether * CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error * messages before returning the response to the viewer.

  • How long * CloudFront caches HTTP status codes in the 4xx and 5xx range.

*

For more information about custom error pages, see Customizing * Error Responses in the Amazon CloudFront Developer Guide.

*/ inline void SetCustomErrorResponses(CustomErrorResponses&& value) { m_customErrorResponsesHasBeenSet = true; m_customErrorResponses = std::move(value); } /** *

A complex type that controls the following:

  • Whether * CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error * messages before returning the response to the viewer.

  • How long * CloudFront caches HTTP status codes in the 4xx and 5xx range.

*

For more information about custom error pages, see Customizing * Error Responses in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithCustomErrorResponses(const CustomErrorResponses& value) { SetCustomErrorResponses(value); return *this;} /** *

A complex type that controls the following:

  • Whether * CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error * messages before returning the response to the viewer.

  • How long * CloudFront caches HTTP status codes in the 4xx and 5xx range.

*

For more information about custom error pages, see Customizing * Error Responses in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithCustomErrorResponses(CustomErrorResponses&& value) { SetCustomErrorResponses(std::move(value)); return *this;} /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline const Aws::String& GetComment() const{ return m_comment; } /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline bool CommentHasBeenSet() const { return m_commentHasBeenSet; } /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline void SetComment(const Aws::String& value) { m_commentHasBeenSet = true; m_comment = value; } /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline void SetComment(Aws::String&& value) { m_commentHasBeenSet = true; m_comment = std::move(value); } /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline void SetComment(const char* value) { m_commentHasBeenSet = true; m_comment.assign(value); } /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline DistributionConfig& WithComment(const Aws::String& value) { SetComment(value); return *this;} /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline DistributionConfig& WithComment(Aws::String&& value) { SetComment(std::move(value)); return *this;} /** *

A comment to describe the distribution. The comment cannot be longer than 128 * characters.

*/ inline DistributionConfig& WithComment(const char* value) { SetComment(value); return *this;} /** *

A complex type that controls whether access logs are written for the * distribution.

For more information about logging, see Access * Logs in the Amazon CloudFront Developer Guide.

*/ inline const LoggingConfig& GetLogging() const{ return m_logging; } /** *

A complex type that controls whether access logs are written for the * distribution.

For more information about logging, see Access * Logs in the Amazon CloudFront Developer Guide.

*/ inline bool LoggingHasBeenSet() const { return m_loggingHasBeenSet; } /** *

A complex type that controls whether access logs are written for the * distribution.

For more information about logging, see Access * Logs in the Amazon CloudFront Developer Guide.

*/ inline void SetLogging(const LoggingConfig& value) { m_loggingHasBeenSet = true; m_logging = value; } /** *

A complex type that controls whether access logs are written for the * distribution.

For more information about logging, see Access * Logs in the Amazon CloudFront Developer Guide.

*/ inline void SetLogging(LoggingConfig&& value) { m_loggingHasBeenSet = true; m_logging = std::move(value); } /** *

A complex type that controls whether access logs are written for the * distribution.

For more information about logging, see Access * Logs in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithLogging(const LoggingConfig& value) { SetLogging(value); return *this;} /** *

A complex type that controls whether access logs are written for the * distribution.

For more information about logging, see Access * Logs in the Amazon CloudFront Developer Guide.

*/ inline DistributionConfig& WithLogging(LoggingConfig&& value) { SetLogging(std::move(value)); return *this;} /** *

The price class that corresponds with the maximum price that you want to pay * for CloudFront service. If you specify PriceClass_All, CloudFront * responds to requests for your objects from all CloudFront edge locations.

*

If you specify a price class other than PriceClass_All, * CloudFront serves your objects from the CloudFront edge location that has the * lowest latency among the edge locations in your price class. Viewers who are in * or near regions that are excluded from your specified price class may encounter * slower performance.

For more information about price classes, see Choosing * the Price Class for a CloudFront Distribution in the Amazon CloudFront * Developer Guide. For information about CloudFront pricing, including how * price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront * Pricing.

*/ inline const PriceClass& GetPriceClass() const{ return m_priceClass; } /** *

The price class that corresponds with the maximum price that you want to pay * for CloudFront service. If you specify PriceClass_All, CloudFront * responds to requests for your objects from all CloudFront edge locations.

*

If you specify a price class other than PriceClass_All, * CloudFront serves your objects from the CloudFront edge location that has the * lowest latency among the edge locations in your price class. Viewers who are in * or near regions that are excluded from your specified price class may encounter * slower performance.

For more information about price classes, see Choosing * the Price Class for a CloudFront Distribution in the Amazon CloudFront * Developer Guide. For information about CloudFront pricing, including how * price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront * Pricing.

*/ inline bool PriceClassHasBeenSet() const { return m_priceClassHasBeenSet; } /** *

The price class that corresponds with the maximum price that you want to pay * for CloudFront service. If you specify PriceClass_All, CloudFront * responds to requests for your objects from all CloudFront edge locations.

*

If you specify a price class other than PriceClass_All, * CloudFront serves your objects from the CloudFront edge location that has the * lowest latency among the edge locations in your price class. Viewers who are in * or near regions that are excluded from your specified price class may encounter * slower performance.

For more information about price classes, see Choosing * the Price Class for a CloudFront Distribution in the Amazon CloudFront * Developer Guide. For information about CloudFront pricing, including how * price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront * Pricing.

*/ inline void SetPriceClass(const PriceClass& value) { m_priceClassHasBeenSet = true; m_priceClass = value; } /** *

The price class that corresponds with the maximum price that you want to pay * for CloudFront service. If you specify PriceClass_All, CloudFront * responds to requests for your objects from all CloudFront edge locations.

*

If you specify a price class other than PriceClass_All, * CloudFront serves your objects from the CloudFront edge location that has the * lowest latency among the edge locations in your price class. Viewers who are in * or near regions that are excluded from your specified price class may encounter * slower performance.

For more information about price classes, see Choosing * the Price Class for a CloudFront Distribution in the Amazon CloudFront * Developer Guide. For information about CloudFront pricing, including how * price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront * Pricing.

*/ inline void SetPriceClass(PriceClass&& value) { m_priceClassHasBeenSet = true; m_priceClass = std::move(value); } /** *

The price class that corresponds with the maximum price that you want to pay * for CloudFront service. If you specify PriceClass_All, CloudFront * responds to requests for your objects from all CloudFront edge locations.

*

If you specify a price class other than PriceClass_All, * CloudFront serves your objects from the CloudFront edge location that has the * lowest latency among the edge locations in your price class. Viewers who are in * or near regions that are excluded from your specified price class may encounter * slower performance.

For more information about price classes, see Choosing * the Price Class for a CloudFront Distribution in the Amazon CloudFront * Developer Guide. For information about CloudFront pricing, including how * price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront * Pricing.

*/ inline DistributionConfig& WithPriceClass(const PriceClass& value) { SetPriceClass(value); return *this;} /** *

The price class that corresponds with the maximum price that you want to pay * for CloudFront service. If you specify PriceClass_All, CloudFront * responds to requests for your objects from all CloudFront edge locations.

*

If you specify a price class other than PriceClass_All, * CloudFront serves your objects from the CloudFront edge location that has the * lowest latency among the edge locations in your price class. Viewers who are in * or near regions that are excluded from your specified price class may encounter * slower performance.

For more information about price classes, see Choosing * the Price Class for a CloudFront Distribution in the Amazon CloudFront * Developer Guide. For information about CloudFront pricing, including how * price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront * Pricing.

*/ inline DistributionConfig& WithPriceClass(PriceClass&& value) { SetPriceClass(std::move(value)); return *this;} /** *

From this field, you can enable or disable the selected distribution.

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

From this field, you can enable or disable the selected distribution.

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

From this field, you can enable or disable the selected distribution.

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

From this field, you can enable or disable the selected distribution.

*/ inline DistributionConfig& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

A complex type that determines the distribution's SSL/TLS configuration for * communicating with viewers.

*/ inline const ViewerCertificate& GetViewerCertificate() const{ return m_viewerCertificate; } /** *

A complex type that determines the distribution's SSL/TLS configuration for * communicating with viewers.

*/ inline bool ViewerCertificateHasBeenSet() const { return m_viewerCertificateHasBeenSet; } /** *

A complex type that determines the distribution's SSL/TLS configuration for * communicating with viewers.

*/ inline void SetViewerCertificate(const ViewerCertificate& value) { m_viewerCertificateHasBeenSet = true; m_viewerCertificate = value; } /** *

A complex type that determines the distribution's SSL/TLS configuration for * communicating with viewers.

*/ inline void SetViewerCertificate(ViewerCertificate&& value) { m_viewerCertificateHasBeenSet = true; m_viewerCertificate = std::move(value); } /** *

A complex type that determines the distribution's SSL/TLS configuration for * communicating with viewers.

*/ inline DistributionConfig& WithViewerCertificate(const ViewerCertificate& value) { SetViewerCertificate(value); return *this;} /** *

A complex type that determines the distribution's SSL/TLS configuration for * communicating with viewers.

*/ inline DistributionConfig& WithViewerCertificate(ViewerCertificate&& value) { SetViewerCertificate(std::move(value)); return *this;} /** *

A complex type that identifies ways in which you want to restrict * distribution of your content.

*/ inline const Restrictions& GetRestrictions() const{ return m_restrictions; } /** *

A complex type that identifies ways in which you want to restrict * distribution of your content.

*/ inline bool RestrictionsHasBeenSet() const { return m_restrictionsHasBeenSet; } /** *

A complex type that identifies ways in which you want to restrict * distribution of your content.

*/ inline void SetRestrictions(const Restrictions& value) { m_restrictionsHasBeenSet = true; m_restrictions = value; } /** *

A complex type that identifies ways in which you want to restrict * distribution of your content.

*/ inline void SetRestrictions(Restrictions&& value) { m_restrictionsHasBeenSet = true; m_restrictions = std::move(value); } /** *

A complex type that identifies ways in which you want to restrict * distribution of your content.

*/ inline DistributionConfig& WithRestrictions(const Restrictions& value) { SetRestrictions(value); return *this;} /** *

A complex type that identifies ways in which you want to restrict * distribution of your content.

*/ inline DistributionConfig& WithRestrictions(Restrictions&& value) { SetRestrictions(std::move(value)); return *this;} /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline const Aws::String& GetWebACLId() const{ return m_webACLId; } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline bool WebACLIdHasBeenSet() const { return m_webACLIdHasBeenSet; } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline void SetWebACLId(const Aws::String& value) { m_webACLIdHasBeenSet = true; m_webACLId = value; } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline void SetWebACLId(Aws::String&& value) { m_webACLIdHasBeenSet = true; m_webACLId = std::move(value); } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline void SetWebACLId(const char* value) { m_webACLIdHasBeenSet = true; m_webACLId.assign(value); } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline DistributionConfig& WithWebACLId(const Aws::String& value) { SetWebACLId(value); return *this;} /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline DistributionConfig& WithWebACLId(Aws::String&& value) { SetWebACLId(std::move(value)); return *this;} /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution. To specify a web ACL created using the latest version of WAF, * use the ACL ARN, for example * arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. * To specify a web ACL created using WAF Classic, use the ACL ID, for example * 473e64fd-f30b-4765-81a0-62ad96dd167a.

WAF is a web * application firewall that lets you monitor the HTTP and HTTPS requests that are * forwarded to CloudFront, and lets you control access to your content. Based on * conditions that you specify, such as the IP addresses that requests originate * from or the values of query strings, CloudFront responds to requests either with * the requested content or with an HTTP 403 status code (Forbidden). You can also * configure CloudFront to return a custom error page when a request is blocked. * For more information about WAF, see the WAF * Developer Guide.

*/ inline DistributionConfig& WithWebACLId(const char* value) { SetWebACLId(value); return *this;} /** *

(Optional) Specify the maximum HTTP version(s) that you want viewers to use * to communicate with CloudFront. The default value for new web distributions is * http2. Viewers that don't support HTTP/2 automatically use an * earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers * must support TLSv1.2 or later, and must support Server Name Indication * (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support * TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection * migration to allow the viewer to switch networks without losing connection. For * more information about connection migration, see Connection * Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, * see Supported * protocols and ciphers between viewers and CloudFront.

*/ inline const HttpVersion& GetHttpVersion() const{ return m_httpVersion; } /** *

(Optional) Specify the maximum HTTP version(s) that you want viewers to use * to communicate with CloudFront. The default value for new web distributions is * http2. Viewers that don't support HTTP/2 automatically use an * earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers * must support TLSv1.2 or later, and must support Server Name Indication * (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support * TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection * migration to allow the viewer to switch networks without losing connection. For * more information about connection migration, see Connection * Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, * see Supported * protocols and ciphers between viewers and CloudFront.

*/ inline bool HttpVersionHasBeenSet() const { return m_httpVersionHasBeenSet; } /** *

(Optional) Specify the maximum HTTP version(s) that you want viewers to use * to communicate with CloudFront. The default value for new web distributions is * http2. Viewers that don't support HTTP/2 automatically use an * earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers * must support TLSv1.2 or later, and must support Server Name Indication * (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support * TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection * migration to allow the viewer to switch networks without losing connection. For * more information about connection migration, see Connection * Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, * see Supported * protocols and ciphers between viewers and CloudFront.

*/ inline void SetHttpVersion(const HttpVersion& value) { m_httpVersionHasBeenSet = true; m_httpVersion = value; } /** *

(Optional) Specify the maximum HTTP version(s) that you want viewers to use * to communicate with CloudFront. The default value for new web distributions is * http2. Viewers that don't support HTTP/2 automatically use an * earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers * must support TLSv1.2 or later, and must support Server Name Indication * (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support * TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection * migration to allow the viewer to switch networks without losing connection. For * more information about connection migration, see Connection * Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, * see Supported * protocols and ciphers between viewers and CloudFront.

*/ inline void SetHttpVersion(HttpVersion&& value) { m_httpVersionHasBeenSet = true; m_httpVersion = std::move(value); } /** *

(Optional) Specify the maximum HTTP version(s) that you want viewers to use * to communicate with CloudFront. The default value for new web distributions is * http2. Viewers that don't support HTTP/2 automatically use an * earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers * must support TLSv1.2 or later, and must support Server Name Indication * (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support * TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection * migration to allow the viewer to switch networks without losing connection. For * more information about connection migration, see Connection * Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, * see Supported * protocols and ciphers between viewers and CloudFront.

*/ inline DistributionConfig& WithHttpVersion(const HttpVersion& value) { SetHttpVersion(value); return *this;} /** *

(Optional) Specify the maximum HTTP version(s) that you want viewers to use * to communicate with CloudFront. The default value for new web distributions is * http2. Viewers that don't support HTTP/2 automatically use an * earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers * must support TLSv1.2 or later, and must support Server Name Indication * (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support * TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection * migration to allow the viewer to switch networks without losing connection. For * more information about connection migration, see Connection * Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, * see Supported * protocols and ciphers between viewers and CloudFront.

*/ inline DistributionConfig& WithHttpVersion(HttpVersion&& value) { SetHttpVersion(std::move(value)); return *this;} /** *

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address * for your distribution, specify true. If you specify * false, CloudFront responds to IPv6 DNS requests with the DNS * response code NOERROR and with no IP addresses. This allows viewers * to submit a second request, for an IPv4 address for your distribution.

In * general, you should enable IPv6 if you have users on IPv6 networks who want to * access your content. However, if you're using signed URLs or signed cookies to * restrict access to your content, and if you're using a custom policy that * includes the IpAddress parameter to restrict the IP addresses that * can access your content, don't enable IPv6. If you want to restrict access to * some content by IP address and not restrict access to other content (or restrict * access but not by IP address), you can create two distributions. For more * information, see Creating * a Signed URL Using a Custom Policy in the Amazon CloudFront Developer * Guide.

If you're using an Route 53 Amazon Web Services Integration * alias resource record set to route traffic to your CloudFront distribution, you * need to create a second alias resource record set when both of the following are * true:

  • You enable IPv6 for the distribution

  • *

    You're using alternate domain names in the URLs for your objects

  • *

For more information, see Routing * Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name * in the Route 53 Amazon Web Services Integration Developer Guide.

*

If you created a CNAME resource record set, either with Route 53 Amazon Web * Services Integration or with another DNS service, you don't need to make any * changes. A CNAME record will route traffic to your distribution regardless of * the IP address format of the viewer request.

*/ inline bool GetIsIPV6Enabled() const{ return m_isIPV6Enabled; } /** *

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address * for your distribution, specify true. If you specify * false, CloudFront responds to IPv6 DNS requests with the DNS * response code NOERROR and with no IP addresses. This allows viewers * to submit a second request, for an IPv4 address for your distribution.

In * general, you should enable IPv6 if you have users on IPv6 networks who want to * access your content. However, if you're using signed URLs or signed cookies to * restrict access to your content, and if you're using a custom policy that * includes the IpAddress parameter to restrict the IP addresses that * can access your content, don't enable IPv6. If you want to restrict access to * some content by IP address and not restrict access to other content (or restrict * access but not by IP address), you can create two distributions. For more * information, see Creating * a Signed URL Using a Custom Policy in the Amazon CloudFront Developer * Guide.

If you're using an Route 53 Amazon Web Services Integration * alias resource record set to route traffic to your CloudFront distribution, you * need to create a second alias resource record set when both of the following are * true:

  • You enable IPv6 for the distribution

  • *

    You're using alternate domain names in the URLs for your objects

  • *

For more information, see Routing * Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name * in the Route 53 Amazon Web Services Integration Developer Guide.

*

If you created a CNAME resource record set, either with Route 53 Amazon Web * Services Integration or with another DNS service, you don't need to make any * changes. A CNAME record will route traffic to your distribution regardless of * the IP address format of the viewer request.

*/ inline bool IsIPV6EnabledHasBeenSet() const { return m_isIPV6EnabledHasBeenSet; } /** *

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address * for your distribution, specify true. If you specify * false, CloudFront responds to IPv6 DNS requests with the DNS * response code NOERROR and with no IP addresses. This allows viewers * to submit a second request, for an IPv4 address for your distribution.

In * general, you should enable IPv6 if you have users on IPv6 networks who want to * access your content. However, if you're using signed URLs or signed cookies to * restrict access to your content, and if you're using a custom policy that * includes the IpAddress parameter to restrict the IP addresses that * can access your content, don't enable IPv6. If you want to restrict access to * some content by IP address and not restrict access to other content (or restrict * access but not by IP address), you can create two distributions. For more * information, see Creating * a Signed URL Using a Custom Policy in the Amazon CloudFront Developer * Guide.

If you're using an Route 53 Amazon Web Services Integration * alias resource record set to route traffic to your CloudFront distribution, you * need to create a second alias resource record set when both of the following are * true:

  • You enable IPv6 for the distribution

  • *

    You're using alternate domain names in the URLs for your objects

  • *

For more information, see Routing * Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name * in the Route 53 Amazon Web Services Integration Developer Guide.

*

If you created a CNAME resource record set, either with Route 53 Amazon Web * Services Integration or with another DNS service, you don't need to make any * changes. A CNAME record will route traffic to your distribution regardless of * the IP address format of the viewer request.

*/ inline void SetIsIPV6Enabled(bool value) { m_isIPV6EnabledHasBeenSet = true; m_isIPV6Enabled = value; } /** *

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address * for your distribution, specify true. If you specify * false, CloudFront responds to IPv6 DNS requests with the DNS * response code NOERROR and with no IP addresses. This allows viewers * to submit a second request, for an IPv4 address for your distribution.

In * general, you should enable IPv6 if you have users on IPv6 networks who want to * access your content. However, if you're using signed URLs or signed cookies to * restrict access to your content, and if you're using a custom policy that * includes the IpAddress parameter to restrict the IP addresses that * can access your content, don't enable IPv6. If you want to restrict access to * some content by IP address and not restrict access to other content (or restrict * access but not by IP address), you can create two distributions. For more * information, see Creating * a Signed URL Using a Custom Policy in the Amazon CloudFront Developer * Guide.

If you're using an Route 53 Amazon Web Services Integration * alias resource record set to route traffic to your CloudFront distribution, you * need to create a second alias resource record set when both of the following are * true:

  • You enable IPv6 for the distribution

  • *

    You're using alternate domain names in the URLs for your objects

  • *

For more information, see Routing * Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name * in the Route 53 Amazon Web Services Integration Developer Guide.

*

If you created a CNAME resource record set, either with Route 53 Amazon Web * Services Integration or with another DNS service, you don't need to make any * changes. A CNAME record will route traffic to your distribution regardless of * the IP address format of the viewer request.

*/ inline DistributionConfig& WithIsIPV6Enabled(bool value) { SetIsIPV6Enabled(value); return *this;} /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline const Aws::String& GetContinuousDeploymentPolicyId() const{ return m_continuousDeploymentPolicyId; } /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline bool ContinuousDeploymentPolicyIdHasBeenSet() const { return m_continuousDeploymentPolicyIdHasBeenSet; } /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline void SetContinuousDeploymentPolicyId(const Aws::String& value) { m_continuousDeploymentPolicyIdHasBeenSet = true; m_continuousDeploymentPolicyId = value; } /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline void SetContinuousDeploymentPolicyId(Aws::String&& value) { m_continuousDeploymentPolicyIdHasBeenSet = true; m_continuousDeploymentPolicyId = std::move(value); } /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline void SetContinuousDeploymentPolicyId(const char* value) { m_continuousDeploymentPolicyIdHasBeenSet = true; m_continuousDeploymentPolicyId.assign(value); } /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline DistributionConfig& WithContinuousDeploymentPolicyId(const Aws::String& value) { SetContinuousDeploymentPolicyId(value); return *this;} /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline DistributionConfig& WithContinuousDeploymentPolicyId(Aws::String&& value) { SetContinuousDeploymentPolicyId(std::move(value)); return *this;} /** *

The identifier of a continuous deployment policy. For more information, see * CreateContinuousDeploymentPolicy.

*/ inline DistributionConfig& WithContinuousDeploymentPolicyId(const char* value) { SetContinuousDeploymentPolicyId(value); return *this;} /** *

A Boolean that indicates whether this is a staging distribution. When this * value is true, this is a staging distribution. When this value is * false, this is not a staging distribution.

*/ inline bool GetStaging() const{ return m_staging; } /** *

A Boolean that indicates whether this is a staging distribution. When this * value is true, this is a staging distribution. When this value is * false, this is not a staging distribution.

*/ inline bool StagingHasBeenSet() const { return m_stagingHasBeenSet; } /** *

A Boolean that indicates whether this is a staging distribution. When this * value is true, this is a staging distribution. When this value is * false, this is not a staging distribution.

*/ inline void SetStaging(bool value) { m_stagingHasBeenSet = true; m_staging = value; } /** *

A Boolean that indicates whether this is a staging distribution. When this * value is true, this is a staging distribution. When this value is * false, this is not a staging distribution.

*/ inline DistributionConfig& WithStaging(bool value) { SetStaging(value); return *this;} private: Aws::String m_callerReference; bool m_callerReferenceHasBeenSet = false; Aliases m_aliases; bool m_aliasesHasBeenSet = false; Aws::String m_defaultRootObject; bool m_defaultRootObjectHasBeenSet = false; Origins m_origins; bool m_originsHasBeenSet = false; OriginGroups m_originGroups; bool m_originGroupsHasBeenSet = false; DefaultCacheBehavior m_defaultCacheBehavior; bool m_defaultCacheBehaviorHasBeenSet = false; CacheBehaviors m_cacheBehaviors; bool m_cacheBehaviorsHasBeenSet = false; CustomErrorResponses m_customErrorResponses; bool m_customErrorResponsesHasBeenSet = false; Aws::String m_comment; bool m_commentHasBeenSet = false; LoggingConfig m_logging; bool m_loggingHasBeenSet = false; PriceClass m_priceClass; bool m_priceClassHasBeenSet = false; bool m_enabled; bool m_enabledHasBeenSet = false; ViewerCertificate m_viewerCertificate; bool m_viewerCertificateHasBeenSet = false; Restrictions m_restrictions; bool m_restrictionsHasBeenSet = false; Aws::String m_webACLId; bool m_webACLIdHasBeenSet = false; HttpVersion m_httpVersion; bool m_httpVersionHasBeenSet = false; bool m_isIPV6Enabled; bool m_isIPV6EnabledHasBeenSet = false; Aws::String m_continuousDeploymentPolicyId; bool m_continuousDeploymentPolicyIdHasBeenSet = false; bool m_staging; bool m_stagingHasBeenSet = false; }; } // namespace Model } // namespace CloudFront } // namespace Aws