com.amazonaws.services.cloudfront.model

## Class DefaultCacheBehavior

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

All Implemented Interfaces:
  Serializable, Cloneable

    public class DefaultCacheBehavior
    extends Object
    implements Serializable, Cloneable

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.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`DefaultCacheBehavior()`

### Method Summary

All Methods Instance Methods Concrete Methods
`DefaultCacheBehavior` `clone()`
`boolean` `equals(Object obj)`
`AllowedMethods` `getAllowedMethods()`
`Boolean` `getCompress()` Whether you want CloudFront to automatically compress certain files for this cache behavior.
`Long` `getDefaultTTL()` The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated.
`ForwardedValues` `getForwardedValues()` A complex type that specifies how CloudFront handles query strings and cookies.
`LambdaFunctionAssociations` `getLambdaFunctionAssociations()` A complex type that contains zero or more Lambda function associations for a cache behavior.
`Long` `getMaxTTL()`
`Long` `getMinTTL()` The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated.
`Boolean` `getSmoothStreaming()` Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
`String` `getTargetOriginId()` The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
`TrustedSigners` `getTrustedSigners()` A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.
`String` `getViewerProtocolPolicy()` The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`.
`int` `hashCode()`
`Boolean` `isCompress()` Whether you want CloudFront to automatically compress certain files for this cache behavior.
`Boolean` `isSmoothStreaming()` Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
`void` `setAllowedMethods(AllowedMethods allowedMethods)`
`void` `setCompress(Boolean compress)` Whether you want CloudFront to automatically compress certain files for this cache behavior.
`void` `setDefaultTTL(Long defaultTTL)` The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated.
`void` `setForwardedValues(ForwardedValues forwardedValues)` A complex type that specifies how CloudFront handles query strings and cookies.
`void` `setLambdaFunctionAssociations(LambdaFunctionAssociations lambdaFunctionAssociations)` A complex type that contains zero or more Lambda function associations for a cache behavior.
`void` `setMaxTTL(Long maxTTL)`
`void` `setMinTTL(Long minTTL)` The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated.
`void` `setSmoothStreaming(Boolean smoothStreaming)` Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
`void` `setTargetOriginId(String targetOriginId)` The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
`void` `setTrustedSigners(TrustedSigners trustedSigners)` A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.
`void` `setViewerProtocolPolicy(String viewerProtocolPolicy)` The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`.
`void` `setViewerProtocolPolicy(ViewerProtocolPolicy viewerProtocolPolicy)` The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`.
`String` `toString()` Returns a string representation of this object; useful for testing and debugging.
`DefaultCacheBehavior` `withAllowedMethods(AllowedMethods allowedMethods)`
`DefaultCacheBehavior` `withCompress(Boolean compress)` Whether you want CloudFront to automatically compress certain files for this cache behavior.
`DefaultCacheBehavior` `withDefaultTTL(Long defaultTTL)` The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated.
`DefaultCacheBehavior` `withForwardedValues(ForwardedValues forwardedValues)` A complex type that specifies how CloudFront handles query strings and cookies.
`DefaultCacheBehavior` `withLambdaFunctionAssociations(LambdaFunctionAssociations lambdaFunctionAssociations)` A complex type that contains zero or more Lambda function associations for a cache behavior.
`DefaultCacheBehavior` `withMaxTTL(Long maxTTL)`
`DefaultCacheBehavior` `withMinTTL(Long minTTL)` The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated.
`DefaultCacheBehavior` `withSmoothStreaming(Boolean smoothStreaming)` Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior.
`DefaultCacheBehavior` `withTargetOriginId(String targetOriginId)` The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
`DefaultCacheBehavior` `withTrustedSigners(TrustedSigners trustedSigners)` A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.
`DefaultCacheBehavior` `withViewerProtocolPolicy(String viewerProtocolPolicy)` The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`.
`DefaultCacheBehavior` `withViewerProtocolPolicy(ViewerProtocolPolicy viewerProtocolPolicy)` The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`.

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

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

### Constructor Detail

#### DefaultCacheBehavior

    public DefaultCacheBehavior()

### Method Detail

#### setTargetOriginId

    public void setTargetOriginId(String targetOriginId)

The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.

Parameters:
  `targetOriginId` - The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.

#### getTargetOriginId

    public String getTargetOriginId()

The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.

Returns:
  The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.

#### withTargetOriginId

    public DefaultCacheBehavior withTargetOriginId(String targetOriginId)

The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.

Parameters:
  `targetOriginId` - The value of `ID` for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setForwardedValues

    public void setForwardedValues(ForwardedValues forwardedValues)

A complex type that specifies how CloudFront handles query strings and cookies.

Parameters:
  `forwardedValues` - A complex type that specifies how CloudFront handles query strings and cookies.

#### getForwardedValues

    public ForwardedValues getForwardedValues()

A complex type that specifies how CloudFront handles query strings and cookies.

Returns:
  A complex type that specifies how CloudFront handles query strings and cookies.

#### withForwardedValues

    public DefaultCacheBehavior withForwardedValues(ForwardedValues forwardedValues)

A complex type that specifies how CloudFront handles query strings and cookies.

Parameters:
  `forwardedValues` - A complex type that specifies how CloudFront handles query strings and cookies.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setTrustedSigners

    public void setTrustedSigners(TrustedSigners trustedSigners)

A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.

If you want to require signed URLs in requests for objects in the target origin that match the `PathPattern` for this cache behavior, specify `true` for `Enabled`, and specify the applicable values for `Quantity` and `Items`. For more information, see Serving Private Content through CloudFront in the Amazon Amazon CloudFront Developer Guide.

If you don't want to require signed URLs in requests for objects that match `PathPattern`, specify `false` for `Enabled` and `0` for `Quantity`. Omit `Items` .

To add, change, or remove one or more trusted signers, change `Enabled` to `true` (if it's currently `false`), change `Quantity` as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

Parameters:
  `trustedSigners` - A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.

  If you want to require signed URLs in requests for objects in the target origin that match the `PathPattern` for this cache behavior, specify `true` for `Enabled`, and specify the applicable values for `Quantity` and `Items`. For more information, see Serving Private Content through CloudFront in the Amazon Amazon CloudFront Developer Guide.

  If you don't want to require signed URLs in requests for objects that match `PathPattern`, specify `false` for `Enabled` and `0` for `Quantity`. Omit `Items`.

  To add, change, or remove one or more trusted signers, change `Enabled` to `true` (if it's currently `false`), change `Quantity` as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

#### getTrustedSigners

    public TrustedSigners getTrustedSigners()

A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.

If you want to require signed URLs in requests for objects in the target origin that match the `PathPattern` for this cache behavior, specify `true` for `Enabled`, and specify the applicable values for `Quantity` and `Items`. For more information, see Serving Private Content through CloudFront in the Amazon Amazon CloudFront Developer Guide.

If you don't want to require signed URLs in requests for objects that match `PathPattern`, specify `false` for `Enabled` and `0` for `Quantity`. Omit `Items` .

To add, change, or remove one or more trusted signers, change `Enabled` to `true` (if it's currently `false`), change `Quantity` as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

Returns:
  A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.

  If you want to require signed URLs in requests for objects in the target origin that match the `PathPattern` for this cache behavior, specify `true` for `Enabled`, and specify the applicable values for `Quantity` and `Items`. For more information, see Serving Private Content through CloudFront in the Amazon Amazon CloudFront Developer Guide.

  If you don't want to require signed URLs in requests for objects that match `PathPattern`, specify `false` for `Enabled` and `0` for `Quantity`. Omit `Items`.

  To add, change, or remove one or more trusted signers, change `Enabled` to `true` (if it's currently `false`), change `Quantity` as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

#### withTrustedSigners

    public DefaultCacheBehavior withTrustedSigners(TrustedSigners trustedSigners)

A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.

If you want to require signed URLs in requests for objects in the target origin that match the `PathPattern` for this cache behavior, specify `true` for `Enabled`, and specify the applicable values for `Quantity` and `Items`. For more information, see Serving Private Content through CloudFront in the Amazon Amazon CloudFront Developer Guide.

If you don't want to require signed URLs in requests for objects that match `PathPattern`, specify `false` for `Enabled` and `0` for `Quantity`. Omit `Items` .

To add, change, or remove one or more trusted signers, change `Enabled` to `true` (if it's currently `false`), change `Quantity` as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

Parameters:
  `trustedSigners` - A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content.

  If you want to require signed URLs in requests for objects in the target origin that match the `PathPattern` for this cache behavior, specify `true` for `Enabled`, and specify the applicable values for `Quantity` and `Items`. For more information, see Serving Private Content through CloudFront in the Amazon Amazon CloudFront Developer Guide.

  If you don't want to require signed URLs in requests for objects that match `PathPattern`, specify `false` for `Enabled` and `0` for `Quantity`. Omit `Items`.

  To add, change, or remove one or more trusted signers, change `Enabled` to `true` (if it's currently `false`), change `Quantity` as applicable, and specify all of the trusted signers that you want to include in the updated distribution.

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

#### setViewerProtocolPolicy

    public void setViewerProtocolPolicy(String viewerProtocolPolicy)

The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

- `allow-all`: Viewers can use HTTP or HTTPS.

- `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

- `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

<note>

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

</note>

Parameters:
  `viewerProtocolPolicy` - The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

  - `allow-all`: Viewers can use HTTP or HTTPS.

  - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  - `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

  For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

  <note>

  The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

See Also:
  `ViewerProtocolPolicy`

#### getViewerProtocolPolicy

    public String getViewerProtocolPolicy()

The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

- `allow-all`: Viewers can use HTTP or HTTPS.

- `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

- `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

<note>

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

</note>

Returns:
  The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

  - `allow-all`: Viewers can use HTTP or HTTPS.

  - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  - `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

  For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

  <note>

  The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

See Also:
  `ViewerProtocolPolicy`

#### withViewerProtocolPolicy

    public DefaultCacheBehavior withViewerProtocolPolicy(String viewerProtocolPolicy)

The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

- `allow-all`: Viewers can use HTTP or HTTPS.

- `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

- `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

<note>

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

</note>

Parameters:
  `viewerProtocolPolicy` - The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

  - `allow-all`: Viewers can use HTTP or HTTPS.

  - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  - `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

  For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

  <note>

  The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

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

#### setViewerProtocolPolicy

    public void setViewerProtocolPolicy(ViewerProtocolPolicy viewerProtocolPolicy)

The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

- `allow-all`: Viewers can use HTTP or HTTPS.

- `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

- `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

<note>

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

</note>

Parameters:
  `viewerProtocolPolicy` - The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

  - `allow-all`: Viewers can use HTTP or HTTPS.

  - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  - `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

  For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

  <note>

  The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

See Also:
  `ViewerProtocolPolicy`

#### withViewerProtocolPolicy

    public DefaultCacheBehavior withViewerProtocolPolicy(ViewerProtocolPolicy viewerProtocolPolicy)

The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

- `allow-all`: Viewers can use HTTP or HTTPS.

- `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

- `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

<note>

The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

</note>

Parameters:
  `viewerProtocolPolicy` - The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`. You can specify the following options:

  - `allow-all`: Viewers can use HTTP or HTTPS.

  - `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.

  - `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).

  For more information about requiring the HTTPS protocol, see Using an HTTPS Connection to Access Your Objects in the Amazon CloudFront Developer Guide.

  <note>

  The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

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

#### setMinTTL

    public void setMinTTL(Long minTTL)

The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon Amazon CloudFront Developer Guide.

You must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin (under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`).

Parameters:
  `minTTL` - The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon Amazon CloudFront Developer Guide.

  You must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin (under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`).

#### getMinTTL

    public Long getMinTTL()

The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon Amazon CloudFront Developer Guide.

You must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin (under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`).

Returns:
  The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon Amazon CloudFront Developer Guide.

  You must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin (under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`).

#### withMinTTL

    public DefaultCacheBehavior withMinTTL(Long minTTL)

The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon Amazon CloudFront Developer Guide.

You must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin (under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`).

Parameters:
  `minTTL` - The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon Amazon CloudFront Developer Guide.

  You must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin (under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`).

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

#### setAllowedMethods

    public void setAllowedMethods(AllowedMethods allowedMethods)

Parameters:
  `allowedMethods` -

#### getAllowedMethods

    public AllowedMethods getAllowedMethods()

Returns:

#### withAllowedMethods

    public DefaultCacheBehavior withAllowedMethods(AllowedMethods allowedMethods)

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

#### setSmoothStreaming

    public void setSmoothStreaming(Boolean smoothStreaming)

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false` . If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

Parameters:
  `smoothStreaming` - Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false`. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

#### getSmoothStreaming

    public Boolean getSmoothStreaming()

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false` . If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

Returns:
  Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false`. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

#### withSmoothStreaming

    public DefaultCacheBehavior withSmoothStreaming(Boolean smoothStreaming)

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false` . If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

Parameters:
  `smoothStreaming` - Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false`. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### isSmoothStreaming

    public Boolean isSmoothStreaming()

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false` . If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

Returns:
  Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify `true`; if not, specify `false`. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`.

#### setDefaultTTL

    public void setDefaultTTL(Long defaultTTL)

The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

Parameters:
  `defaultTTL` - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age` , `Cache-Control s-maxage`, and `Expires` to objects. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

#### getDefaultTTL

    public Long getDefaultTTL()

The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

Returns:
  The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

#### withDefaultTTL

    public DefaultCacheBehavior withDefaultTTL(Long defaultTTL)

The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.

Parameters:
  `defaultTTL` - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age` , `Cache-Control s-maxage`, and `Expires` to objects. For more information, see Specifying How Long Objects and Errors Stay in a CloudFront Edge Cache (Expiration) in the Amazon CloudFront Developer Guide.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setMaxTTL

    public void setMaxTTL(Long maxTTL)

Parameters:
  `maxTTL` -

#### getMaxTTL

    public Long getMaxTTL()

Returns:

#### withMaxTTL

    public DefaultCacheBehavior withMaxTTL(Long maxTTL)

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

#### setCompress

    public void setCompress(Boolean compress)

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

Parameters:
  `compress` - Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

#### getCompress

    public Boolean getCompress()

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

Returns:
  Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

#### withCompress

    public DefaultCacheBehavior withCompress(Boolean compress)

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

Parameters:
  `compress` - Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### isCompress

    public Boolean isCompress()

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

Returns:
  Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify `true`; if not, specify `false`. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

#### setLambdaFunctionAssociations

    public void setLambdaFunctionAssociations(LambdaFunctionAssociations lambdaFunctionAssociations)

A complex type that contains zero or more Lambda function associations for a cache behavior.

Parameters:
  `lambdaFunctionAssociations` - A complex type that contains zero or more Lambda function associations for a cache behavior.

#### getLambdaFunctionAssociations

    public LambdaFunctionAssociations getLambdaFunctionAssociations()

A complex type that contains zero or more Lambda function associations for a cache behavior.

Returns:
  A complex type that contains zero or more Lambda function associations for a cache behavior.

#### withLambdaFunctionAssociations

    public DefaultCacheBehavior withLambdaFunctionAssociations(LambdaFunctionAssociations lambdaFunctionAssociations)

A complex type that contains zero or more Lambda function associations for a cache behavior.

Parameters:
  `lambdaFunctionAssociations` - A complex type that contains zero or more Lambda function associations for a cache behavior.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### 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 DefaultCacheBehavior clone()

Overrides:
  `clone` in class `Object`