com.amazonaws.services.cloudfront.model

## Class DistributionConfig

- java.lang.Object
- - com.amazonaws.services.cloudfront.model.DistributionConfig

All Implemented Interfaces:
  Serializable, Cloneable

    public class DistributionConfig
    extends Object
    implements Serializable, Cloneable

A distribution configuration.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`DistributionConfig()` Default constructor for DistributionConfig object.
`DistributionConfig(String callerReference, Boolean enabled)` Constructs a new DistributionConfig object.

### Method Summary

All Methods Instance Methods Concrete Methods
`DistributionConfig` `clone()`
`boolean` `equals(Object obj)`
`Aliases` `getAliases()` A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.
`CacheBehaviors` `getCacheBehaviors()` A complex type that contains zero or more `CacheBehavior` elements.
`String` `getCallerReference()` A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.
`String` `getComment()` Any comments you want to include about the distribution.
`CustomErrorResponses` `getCustomErrorResponses()` A complex type that controls the following:
`DefaultCacheBehavior` `getDefaultCacheBehavior()` A complex type that describes the default cache behavior if you do not specify a `CacheBehavior` element or if files don't match any of the values of `PathPattern` in `CacheBehavior` elements.
`String` `getDefaultRootObject()` 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 (`http://www.example.com`) instead of an object in your distribution (`http://www.example.com/product-description.html`).
`Boolean` `getEnabled()` Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.
`String` `getHttpVersion()` (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
`Boolean` `getIsIPV6Enabled()` If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`.
`LoggingConfig` `getLogging()` A complex type that controls whether access logs are written for the distribution.
`Origins` `getOrigins()` A complex type that contains information about origins for this distribution.
`String` `getPriceClass()` The price class that corresponds with the maximum price that you want to pay for CloudFront service.
`Restrictions` `getRestrictions()`
`ViewerCertificate` `getViewerCertificate()`
`String` `getWebACLId()` A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.
`int` `hashCode()`
`Boolean` `isEnabled()` Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.
`Boolean` `isIPV6Enabled()` If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`.
`void` `setAliases(Aliases aliases)` A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.
`void` `setCacheBehaviors(CacheBehaviors cacheBehaviors)` A complex type that contains zero or more `CacheBehavior` elements.
`void` `setCallerReference(String callerReference)` A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.
`void` `setComment(String comment)` Any comments you want to include about the distribution.
`void` `setCustomErrorResponses(CustomErrorResponses customErrorResponses)` A complex type that controls the following:
`void` `setDefaultCacheBehavior(DefaultCacheBehavior defaultCacheBehavior)` A complex type that describes the default cache behavior if you do not specify a `CacheBehavior` element or if files don't match any of the values of `PathPattern` in `CacheBehavior` elements.
`void` `setDefaultRootObject(String 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 (`http://www.example.com`) instead of an object in your distribution (`http://www.example.com/product-description.html`).
`void` `setEnabled(Boolean enabled)` Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.
`void` `setHttpVersion(HttpVersion httpVersion)` (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
`void` `setHttpVersion(String httpVersion)` (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
`void` `setIsIPV6Enabled(Boolean isIPV6Enabled)` If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`.
`void` `setLogging(LoggingConfig logging)` A complex type that controls whether access logs are written for the distribution.
`void` `setOrigins(Origins origins)` A complex type that contains information about origins for this distribution.
`void` `setPriceClass(PriceClass priceClass)` The price class that corresponds with the maximum price that you want to pay for CloudFront service.
`void` `setPriceClass(String priceClass)` The price class that corresponds with the maximum price that you want to pay for CloudFront service.
`void` `setRestrictions(Restrictions restrictions)`
`void` `setViewerCertificate(ViewerCertificate viewerCertificate)`
`void` `setWebACLId(String webACLId)` A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.
`String` `toString()` Returns a string representation of this object; useful for testing and debugging.
`DistributionConfig` `withAliases(Aliases aliases)` A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.
`DistributionConfig` `withCacheBehaviors(CacheBehaviors cacheBehaviors)` A complex type that contains zero or more `CacheBehavior` elements.
`DistributionConfig` `withCallerReference(String callerReference)` A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.
`DistributionConfig` `withComment(String comment)` Any comments you want to include about the distribution.
`DistributionConfig` `withCustomErrorResponses(CustomErrorResponses customErrorResponses)` A complex type that controls the following:
`DistributionConfig` `withDefaultCacheBehavior(DefaultCacheBehavior defaultCacheBehavior)` A complex type that describes the default cache behavior if you do not specify a `CacheBehavior` element or if files don't match any of the values of `PathPattern` in `CacheBehavior` elements.
`DistributionConfig` `withDefaultRootObject(String 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 (`http://www.example.com`) instead of an object in your distribution (`http://www.example.com/product-description.html`).
`DistributionConfig` `withEnabled(Boolean enabled)` Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.
`DistributionConfig` `withHttpVersion(HttpVersion httpVersion)` (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
`DistributionConfig` `withHttpVersion(String httpVersion)` (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
`DistributionConfig` `withIsIPV6Enabled(Boolean isIPV6Enabled)` If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`.
`DistributionConfig` `withLogging(LoggingConfig logging)` A complex type that controls whether access logs are written for the distribution.
`DistributionConfig` `withOrigins(Origins origins)` A complex type that contains information about origins for this distribution.
`DistributionConfig` `withPriceClass(PriceClass priceClass)` The price class that corresponds with the maximum price that you want to pay for CloudFront service.
`DistributionConfig` `withPriceClass(String priceClass)` The price class that corresponds with the maximum price that you want to pay for CloudFront service.
`DistributionConfig` `withRestrictions(Restrictions restrictions)`
`DistributionConfig` `withViewerCertificate(ViewerCertificate viewerCertificate)`
`DistributionConfig` `withWebACLId(String webACLId)` A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### DistributionConfig

    public DistributionConfig()

Default constructor for DistributionConfig object. Callers should use the setter or fluent setter (with...) methods to initialize the object after creating it.

#### DistributionConfig

    public DistributionConfig(String callerReference,
                              Boolean enabled)

Constructs a new DistributionConfig object. Callers should use the setter or fluent setter (with...) methods to initialize any additional object members.

Parameters:
  `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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

  If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

  `enabled` - Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

  If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

  If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

### Method Detail

#### setCallerReference

    public void setCallerReference(String 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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

Parameters:
  `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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

  If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

#### getCallerReference

    public String getCallerReference()

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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

Returns:
  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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

  If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

#### withCallerReference

    public DistributionConfig withCallerReference(String 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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

Parameters:
  `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 you already sent in a previous request to create a distribution, and if the content of the `DistributionConfig` is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

  If `CallerReference` is a value you already sent in a previous request to create a distribution but the content of the `DistributionConfig` is different from the original request, CloudFront returns a `DistributionAlreadyExists` error.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setAliases

    public void setAliases(Aliases aliases)

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

Parameters:
  `aliases` - A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.

#### getAliases

    public Aliases getAliases()

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

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

#### withAliases

    public DistributionConfig withAliases(Aliases aliases)

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

Parameters:
  `aliases` - A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setDefaultRootObject

    public void setDefaultRootObject(String 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 (`http://www.example.com`) instead of an object in your distribution (`http://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`. Do not 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.

Parameters:
  `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 (`http://www.example.com`) instead of an object in your distribution (`http://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`. Do not 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.

#### getDefaultRootObject

    public String getDefaultRootObject()

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 (`http://www.example.com`) instead of an object in your distribution (`http://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`. Do not 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.

Returns:
  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 (`http://www.example.com`) instead of an object in your distribution (`http://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`. Do not 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.

#### withDefaultRootObject

    public DistributionConfig withDefaultRootObject(String 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 (`http://www.example.com`) instead of an object in your distribution (`http://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`. Do not 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.

Parameters:
  `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 (`http://www.example.com`) instead of an object in your distribution (`http://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`. Do not 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.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setOrigins

    public void setOrigins(Origins origins)

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

Parameters:
  `origins` - A complex type that contains information about origins for this distribution.

#### getOrigins

    public Origins getOrigins()

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

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

#### withOrigins

    public DistributionConfig withOrigins(Origins origins)

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

Parameters:
  `origins` - A complex type that contains information about origins for this distribution.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setDefaultCacheBehavior

    public void setDefaultCacheBehavior(DefaultCacheBehavior defaultCacheBehavior)

A complex type that describes the default cache behavior if you do not 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.

Parameters:
  `defaultCacheBehavior` - A complex type that describes the default cache behavior if you do not 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.

#### getDefaultCacheBehavior

    public DefaultCacheBehavior getDefaultCacheBehavior()

A complex type that describes the default cache behavior if you do not 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.

Returns:
  A complex type that describes the default cache behavior if you do not 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.

#### withDefaultCacheBehavior

    public DistributionConfig withDefaultCacheBehavior(DefaultCacheBehavior defaultCacheBehavior)

A complex type that describes the default cache behavior if you do not 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.

Parameters:
  `defaultCacheBehavior` - A complex type that describes the default cache behavior if you do not 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.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setCacheBehaviors

    public void setCacheBehaviors(CacheBehaviors cacheBehaviors)

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

Parameters:
  `cacheBehaviors` - A complex type that contains zero or more `CacheBehavior` elements.

#### getCacheBehaviors

    public CacheBehaviors getCacheBehaviors()

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

Returns:
  A complex type that contains zero or more `CacheBehavior` elements.

#### withCacheBehaviors

    public DistributionConfig withCacheBehaviors(CacheBehaviors cacheBehaviors)

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

Parameters:
  `cacheBehaviors` - A complex type that contains zero or more `CacheBehavior` elements.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setCustomErrorResponses

    public void setCustomErrorResponses(CustomErrorResponses 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.

Parameters:
  `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.

#### getCustomErrorResponses

    public CustomErrorResponses getCustomErrorResponses()

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.

Returns:
  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.

#### withCustomErrorResponses

    public DistributionConfig withCustomErrorResponses(CustomErrorResponses 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.

Parameters:
  `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.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setComment

    public void setComment(String comment)

Any comments you want to include about the distribution.

If you don't want to specify a comment, include an empty `Comment` element.

To delete an existing comment, update the distribution configuration and include an empty `Comment` element.

To add or change a comment, update the distribution configuration and specify the new comment.

Parameters:
  `comment` - Any comments you want to include about the distribution.

  If you don't want to specify a comment, include an empty `Comment` element.

  To delete an existing comment, update the distribution configuration and include an empty `Comment` element.

  To add or change a comment, update the distribution configuration and specify the new comment.

#### getComment

    public String getComment()

Any comments you want to include about the distribution.

If you don't want to specify a comment, include an empty `Comment` element.

To delete an existing comment, update the distribution configuration and include an empty `Comment` element.

To add or change a comment, update the distribution configuration and specify the new comment.

Returns:
  Any comments you want to include about the distribution.

  If you don't want to specify a comment, include an empty `Comment` element.

  To delete an existing comment, update the distribution configuration and include an empty `Comment` element.

  To add or change a comment, update the distribution configuration and specify the new comment.

#### withComment

    public DistributionConfig withComment(String comment)

Any comments you want to include about the distribution.

If you don't want to specify a comment, include an empty `Comment` element.

To delete an existing comment, update the distribution configuration and include an empty `Comment` element.

To add or change a comment, update the distribution configuration and specify the new comment.

Parameters:
  `comment` - Any comments you want to include about the distribution.

  If you don't want to specify a comment, include an empty `Comment` element.

  To delete an existing comment, update the distribution configuration and include an empty `Comment` element.

  To add or change a comment, update the distribution configuration and specify the new comment.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setLogging

    public void setLogging(LoggingConfig 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.

Parameters:
  `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.

#### getLogging

    public LoggingConfig getLogging()

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.

Returns:
  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.

#### withLogging

    public DistributionConfig withLogging(LoggingConfig 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.

Parameters:
  `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.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setPriceClass

    public void setPriceClass(String 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 map to CloudFront regions, see Amazon CloudFront Pricing.

Parameters:
  `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 map to CloudFront regions, see Amazon CloudFront Pricing.

See Also:
  `PriceClass`

#### getPriceClass

    public String getPriceClass()

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 map to CloudFront regions, see Amazon CloudFront Pricing.

Returns:
  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 map to CloudFront regions, see Amazon CloudFront Pricing.

See Also:
  `PriceClass`

#### withPriceClass

    public DistributionConfig withPriceClass(String 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 map to CloudFront regions, see Amazon CloudFront Pricing.

Parameters:
  `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 map to CloudFront regions, see Amazon CloudFront Pricing.

Returns:
  Returns a reference to this object so that method calls can be chained together.
See Also:
  `PriceClass`

#### setPriceClass

    public void setPriceClass(PriceClass 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 map to CloudFront regions, see Amazon CloudFront Pricing.

Parameters:
  `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 map to CloudFront regions, see Amazon CloudFront Pricing.

See Also:
  `PriceClass`

#### withPriceClass

    public DistributionConfig withPriceClass(PriceClass 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 map to CloudFront regions, see Amazon CloudFront Pricing.

Parameters:
  `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 map to CloudFront regions, see Amazon CloudFront Pricing.

Returns:
  Returns a reference to this object so that method calls can be chained together.
See Also:
  `PriceClass`

#### setEnabled

    public void setEnabled(Boolean enabled)

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

Parameters:
  `enabled` - Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

  If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

  If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

#### getEnabled

    public Boolean getEnabled()

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

Returns:
  Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

  If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

  If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

#### withEnabled

    public DistributionConfig withEnabled(Boolean enabled)

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

Parameters:
  `enabled` - Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

  If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

  If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### isEnabled

    public Boolean isEnabled()

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

Returns:
  Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket.

  If you do not want to enable logging when you create a distribution, or if you want to disable logging for an existing distribution, specify `false` for `Enabled`, and specify empty `Bucket` and `Prefix` elements.

  If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted.

#### setViewerCertificate

    public void setViewerCertificate(ViewerCertificate viewerCertificate)

Parameters:
  `viewerCertificate` -

#### getViewerCertificate

    public ViewerCertificate getViewerCertificate()

Returns:

#### withViewerCertificate

    public DistributionConfig withViewerCertificate(ViewerCertificate viewerCertificate)

Parameters:
  `viewerCertificate` -
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setRestrictions

    public void setRestrictions(Restrictions restrictions)

Parameters:
  `restrictions` -

#### getRestrictions

    public Restrictions getRestrictions()

Returns:

#### withRestrictions

    public DistributionConfig withRestrictions(Restrictions restrictions)

Parameters:
  `restrictions` -
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setWebACLId

    public void setWebACLId(String webACLId)

A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

AWS 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 AWS WAF, see the AWS WAF Developer Guide.

Parameters:
  `webACLId` - A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

  AWS 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 AWS WAF, see the AWS WAF Developer Guide.

#### getWebACLId

    public String getWebACLId()

A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

AWS 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 AWS WAF, see the AWS WAF Developer Guide.

Returns:
  A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

  AWS 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 AWS WAF, see the AWS WAF Developer Guide.

#### withWebACLId

    public DistributionConfig withWebACLId(String webACLId)

A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

AWS 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 AWS WAF, see the AWS WAF Developer Guide.

Parameters:
  `webACLId` - A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

  AWS 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 AWS WAF, see the AWS WAF Developer Guide.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setHttpVersion

    public void setHttpVersion(String httpVersion)

(Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Parameters:
  `httpVersion` - (Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

  In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

See Also:
  `HttpVersion`

#### getHttpVersion

    public String getHttpVersion()

(Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Returns:
  (Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

  In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

See Also:
  `HttpVersion`

#### withHttpVersion

    public DistributionConfig withHttpVersion(String httpVersion)

(Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Parameters:
  `httpVersion` - (Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

  In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Returns:
  Returns a reference to this object so that method calls can be chained together.
See Also:
  `HttpVersion`

#### setHttpVersion

    public void setHttpVersion(HttpVersion httpVersion)

(Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Parameters:
  `httpVersion` - (Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

  In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

See Also:
  `HttpVersion`

#### withHttpVersion

    public DistributionConfig withHttpVersion(HttpVersion httpVersion)

(Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Parameters:
  `httpVersion` - (Optional) Specify the maximum HTTP version 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 TLS 1.2 or later, and must support Server Name Identification (SNI).

  In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization."

Returns:
  Returns a reference to this object so that method calls can be chained together.
See Also:
  `HttpVersion`

#### setIsIPV6Enabled

    public void setIsIPV6Enabled(Boolean 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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

If you created a CNAME resource record set, either with Amazon Route 53 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.

Parameters:
  `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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

  If you created a CNAME resource record set, either with Amazon Route 53 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.

#### getIsIPV6Enabled

    public Boolean getIsIPV6Enabled()

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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

If you created a CNAME resource record set, either with Amazon Route 53 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.

Returns:
  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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

  If you created a CNAME resource record set, either with Amazon Route 53 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.

#### withIsIPV6Enabled

    public DistributionConfig withIsIPV6Enabled(Boolean 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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

If you created a CNAME resource record set, either with Amazon Route 53 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.

Parameters:
  `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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

  If you created a CNAME resource record set, either with Amazon Route 53 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.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### isIPV6Enabled

    public Boolean 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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

If you created a CNAME resource record set, either with Amazon Route 53 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.

Returns:
  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, do not 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 Amazon Route 53 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 Amazon Route 53 Developer Guide.

  If you created a CNAME resource record set, either with Amazon Route 53 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.

#### toString

    public String toString()

Returns a string representation of this object; useful for testing and debugging.

Overrides:
  `toString` in class `Object`
Returns:
  A string representation of this object.
See Also:
  `Object.toString()`

#### equals

    public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### clone

    public DistributionConfig clone()

Overrides:
  `clone` in class `Object`