This class represents one of two things:

Arguments in a call to a service

Use the attributes of this class as arguments to methods. You shouldn't make instances of this class. Each attribute should be used as a named argument in the calls that expect this type of object.

As an example, if Att1 is expected to be a Paws::CloudFront::Headers object:

  $service_obj->Method(Att1 => { Items => $value, ..., Quantity => $value  });

Results returned from an API call

Use accessors for each attribute. If Att1 is expected to be an Paws::CloudFront::Headers object:

  $result = $service_obj->Method(...);


A complex type that specifies the request headers, if any, that you want CloudFront to base caching on for this cache behavior.

For the headers that you specify, CloudFront caches separate versions of a specified object based on the header values in viewer requests. For example, suppose viewer requests for logo.jpg contain a custom product header that has a value of either acme or apex, and you configure CloudFront to cache your content based on values in the product header. CloudFront forwards the product header to the origin and caches the response from the origin once for each header value. For more information about caching based on header values, see How CloudFront Forwards and Caches Headers ( in the Amazon CloudFront Developer Guide.


Items => ArrayRef[Str|Undef]

  A list that contains one C<Name> element for each header that you want
CloudFront to use for caching in this cache behavior. If C<Quantity> is
C<0>, omit C<Items>.

REQUIRED Quantity => Int

  The number of different headers that you want CloudFront to base
caching on for this cache behavior. You can configure each cache
behavior in a web distribution to do one of the following:
  • Forward all headers to your origin: Specify 1 for Quantity and * for Name.

    CloudFront doesn't cache the objects that are associated with this cache behavior. Instead, CloudFront sends every request to the origin.

  • Forward a whitelist of headers you specify: Specify the number of headers that you want CloudFront to base caching on. Then specify the header names in Name elements. CloudFront caches your objects based on the values in the specified headers.

  • Forward only the default headers: Specify 0 for Quantity and omit Items. In this configuration, CloudFront doesn't cache based on the values in the request headers.

Regardless of which option you choose, CloudFront forwards headers to your origin based on whether the origin is an S3 bucket or a custom origin. See the following documentation:

  • S3 bucket: See HTTP Request Headers That CloudFront Removes or Updates (

  • Custom origin: See HTTP Request Headers and CloudFront Behavior (


This class forms part of Paws, describing an object used in Paws::CloudFront


The source code is located here:

Please report bugs to: