NAME

Paws::CloudFront - Perl Interface to AWS Amazon CloudFront

SYNOPSIS

  use Paws;

  my $obj = Paws->service('CloudFront');
  my $res = $obj->Method(
    Arg1 => $val1,
    Arg2 => [ 'V1', 'V2' ],
    # if Arg3 is an object, the HashRef will be used as arguments to the constructor
    # of the arguments type
    Arg3 => { Att1 => 'Val1' },
    # if Arg4 is an array of objects, the HashRefs will be passed as arguments to
    # the constructor of the arguments type
    Arg4 => [ { Att1 => 'Val1'  }, { Att1 => 'Val2' } ],
  );

DESCRIPTION

Amazon CloudFront

This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the Amazon CloudFront Developer Guide.

For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2018-11-05

METHODS

CreateCloudFrontOriginAccessIdentity

CloudFrontOriginAccessIdentityConfig => Paws::CloudFront::CloudFrontOriginAccessIdentityConfig

Each argument is described in detail in: Paws::CloudFront::CreateCloudFrontOriginAccessIdentity

Returns: a Paws::CloudFront::CreateCloudFrontOriginAccessIdentityResult instance

Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the Amazon CloudFront Developer Guide.

CreateDistribution

DistributionConfig => Paws::CloudFront::DistributionConfig

Each argument is described in detail in: Paws::CloudFront::CreateDistribution

Returns: a Paws::CloudFront::CreateDistributionResult instance

Creates a new web distribution. You create a CloudFront distribution to tell CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. Send a POST request to the /CloudFront API version/distribution/distribution ID resource.

When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using UpdateDistribution, follow the steps included in the documentation to get the current configuration and then make your updates. This helps to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview-required-fields.html) in the Amazon CloudFront Developer Guide.

If you are using Adobe Flash Media Server's RTMP protocol, you set up a different kind of CloudFront distribution. For more information, see CreateStreamingDistribution.

CreateDistributionWithTags

DistributionConfigWithTags => Paws::CloudFront::DistributionConfigWithTags

Each argument is described in detail in: Paws::CloudFront::CreateDistributionWithTags

Returns: a Paws::CloudFront::CreateDistributionWithTagsResult instance

Create a new distribution with tags.

CreateFieldLevelEncryptionConfig

FieldLevelEncryptionConfig => Paws::CloudFront::FieldLevelEncryptionConfig

Each argument is described in detail in: Paws::CloudFront::CreateFieldLevelEncryptionConfig

Returns: a Paws::CloudFront::CreateFieldLevelEncryptionConfigResult instance

Create a new field-level encryption configuration.

CreateFieldLevelEncryptionProfile

FieldLevelEncryptionProfileConfig => Paws::CloudFront::FieldLevelEncryptionProfileConfig

Each argument is described in detail in: Paws::CloudFront::CreateFieldLevelEncryptionProfile

Returns: a Paws::CloudFront::CreateFieldLevelEncryptionProfileResult instance

Create a field-level encryption profile.

CreateInvalidation

DistributionId => Str
InvalidationBatch => Paws::CloudFront::InvalidationBatch

Each argument is described in detail in: Paws::CloudFront::CreateInvalidation

Returns: a Paws::CloudFront::CreateInvalidationResult instance

Create a new invalidation.

CreatePublicKey

PublicKeyConfig => Paws::CloudFront::PublicKeyConfig

Each argument is described in detail in: Paws::CloudFront::CreatePublicKey

Returns: a Paws::CloudFront::CreatePublicKeyResult instance

Add a new public key to CloudFront to use, for example, for field-level encryption. You can add a maximum of 10 public keys with one AWS account.

CreateStreamingDistribution

StreamingDistributionConfig => Paws::CloudFront::StreamingDistributionConfig

Each argument is described in detail in: Paws::CloudFront::CreateStreamingDistribution

Returns: a Paws::CloudFront::CreateStreamingDistributionResult instance

Creates a new RMTP distribution. An RTMP distribution is similar to a web distribution, but an RTMP distribution streams media files using the Adobe Real-Time Messaging Protocol (RTMP) instead of serving files using HTTP.

To create a new web distribution, submit a POST request to the CloudFront API version/distribution resource. The request body must include a document with a StreamingDistributionConfig element. The response echoes the StreamingDistributionConfig element and returns other information about the RTMP distribution.

To get the status of your request, use the GET StreamingDistribution API action. When the value of Enabled is true and the value of Status is Deployed, your distribution is ready. A distribution usually deploys in less than 15 minutes.

For more information about web distributions, see Working with RTMP Distributions (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp.html) in the Amazon CloudFront Developer Guide.

Beginning with the 2012-05-05 version of the CloudFront API, we made substantial changes to the format of the XML document that you include in the request body when you create or update a web distribution or an RTMP distribution, and when you invalidate objects. With previous versions of the API, we discovered that it was too easy to accidentally delete one or more values for an element that accepts multiple values, for example, CNAMEs and trusted signers. Our changes for the 2012-05-05 release are intended to prevent these accidental deletions and to notify you when there's a mismatch between the number of values you say you're specifying in the Quantity element and the number of values specified.

CreateStreamingDistributionWithTags

StreamingDistributionConfigWithTags => Paws::CloudFront::StreamingDistributionConfigWithTags

Each argument is described in detail in: Paws::CloudFront::CreateStreamingDistributionWithTags

Returns: a Paws::CloudFront::CreateStreamingDistributionWithTagsResult instance

Create a new streaming distribution with tags.

DeleteCloudFrontOriginAccessIdentity

Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::DeleteCloudFrontOriginAccessIdentity

Returns: nothing

Delete an origin access identity.

DeleteDistribution

Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::DeleteDistribution

Returns: nothing

Delete a distribution.

DeleteFieldLevelEncryptionConfig

Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::DeleteFieldLevelEncryptionConfig

Returns: nothing

Remove a field-level encryption configuration.

DeleteFieldLevelEncryptionProfile

Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::DeleteFieldLevelEncryptionProfile

Returns: nothing

Remove a field-level encryption profile.

DeletePublicKey

Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::DeletePublicKey

Returns: nothing

Remove a public key you previously added to CloudFront.

DeleteStreamingDistribution

Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::DeleteStreamingDistribution

Returns: nothing

Delete a streaming distribution. To delete an RTMP distribution using the CloudFront API, perform the following steps.

To delete an RTMP distribution using the CloudFront API:

  1. Disable the RTMP distribution.

  2. Submit a GET Streaming Distribution Config request to get the current configuration and the Etag header for the distribution.

  3. Update the XML document that was returned in the response to your GET Streaming Distribution Config request to change the value of Enabled to false.

  4. Submit a PUT Streaming Distribution Config request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Then set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2.

  5. Review the response to the PUT Streaming Distribution Config request to confirm that the distribution was successfully disabled.

  6. Submit a GET Streaming Distribution Config request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed.

  7. Submit a DELETE Streaming Distribution request. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2.

  8. Review the response to your DELETE Streaming Distribution request to confirm that the distribution was successfully deleted.

For information about deleting a distribution using the CloudFront console, see Deleting a Distribution (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html) in the Amazon CloudFront Developer Guide.

GetCloudFrontOriginAccessIdentity

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetCloudFrontOriginAccessIdentity

Returns: a Paws::CloudFront::GetCloudFrontOriginAccessIdentityResult instance

Get the information about an origin access identity.

GetCloudFrontOriginAccessIdentityConfig

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetCloudFrontOriginAccessIdentityConfig

Returns: a Paws::CloudFront::GetCloudFrontOriginAccessIdentityConfigResult instance

Get the configuration information about an origin access identity.

GetDistribution

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetDistribution

Returns: a Paws::CloudFront::GetDistributionResult instance

Get the information about a distribution.

GetDistributionConfig

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetDistributionConfig

Returns: a Paws::CloudFront::GetDistributionConfigResult instance

Get the configuration information about a distribution.

GetFieldLevelEncryption

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetFieldLevelEncryption

Returns: a Paws::CloudFront::GetFieldLevelEncryptionResult instance

Get the field-level encryption configuration information.

GetFieldLevelEncryptionConfig

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetFieldLevelEncryptionConfig

Returns: a Paws::CloudFront::GetFieldLevelEncryptionConfigResult instance

Get the field-level encryption configuration information.

GetFieldLevelEncryptionProfile

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetFieldLevelEncryptionProfile

Returns: a Paws::CloudFront::GetFieldLevelEncryptionProfileResult instance

Get the field-level encryption profile information.

GetFieldLevelEncryptionProfileConfig

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetFieldLevelEncryptionProfileConfig

Returns: a Paws::CloudFront::GetFieldLevelEncryptionProfileConfigResult instance

Get the field-level encryption profile configuration information.

GetInvalidation

DistributionId => Str
Id => Str

Each argument is described in detail in: Paws::CloudFront::GetInvalidation

Returns: a Paws::CloudFront::GetInvalidationResult instance

Get the information about an invalidation.

GetPublicKey

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetPublicKey

Returns: a Paws::CloudFront::GetPublicKeyResult instance

Get the public key information.

GetPublicKeyConfig

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetPublicKeyConfig

Returns: a Paws::CloudFront::GetPublicKeyConfigResult instance

Return public key configuration informaation

GetStreamingDistribution

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetStreamingDistribution

Returns: a Paws::CloudFront::GetStreamingDistributionResult instance

Gets information about a specified RTMP distribution, including the distribution configuration.

GetStreamingDistributionConfig

Id => Str

Each argument is described in detail in: Paws::CloudFront::GetStreamingDistributionConfig

Returns: a Paws::CloudFront::GetStreamingDistributionConfigResult instance

Get the configuration information about a streaming distribution.

ListCloudFrontOriginAccessIdentities

[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListCloudFrontOriginAccessIdentities

Returns: a Paws::CloudFront::ListCloudFrontOriginAccessIdentitiesResult instance

Lists origin access identities.

ListDistributions

[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListDistributions

Returns: a Paws::CloudFront::ListDistributionsResult instance

List distributions.

ListDistributionsByWebACLId

WebACLId => Str
[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListDistributionsByWebACLId

Returns: a Paws::CloudFront::ListDistributionsByWebACLIdResult instance

List the distributions that are associated with a specified AWS WAF web ACL.

ListFieldLevelEncryptionConfigs

[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListFieldLevelEncryptionConfigs

Returns: a Paws::CloudFront::ListFieldLevelEncryptionConfigsResult instance

List all field-level encryption configurations that have been created in CloudFront for this account.

ListFieldLevelEncryptionProfiles

[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListFieldLevelEncryptionProfiles

Returns: a Paws::CloudFront::ListFieldLevelEncryptionProfilesResult instance

Request a list of field-level encryption profiles that have been created in CloudFront for this account.

ListInvalidations

DistributionId => Str
[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListInvalidations

Returns: a Paws::CloudFront::ListInvalidationsResult instance

Lists invalidation batches.

ListPublicKeys

[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListPublicKeys

Returns: a Paws::CloudFront::ListPublicKeysResult instance

List all public keys that have been added to CloudFront for this account.

ListStreamingDistributions

[Marker => Str]
[MaxItems => Str]

Each argument is described in detail in: Paws::CloudFront::ListStreamingDistributions

Returns: a Paws::CloudFront::ListStreamingDistributionsResult instance

List streaming distributions.

ListTagsForResource

Resource => Str

Each argument is described in detail in: Paws::CloudFront::ListTagsForResource

Returns: a Paws::CloudFront::ListTagsForResourceResult instance

List tags for a CloudFront resource.

TagResource

Resource => Str
Tags => Paws::CloudFront::Tags

Each argument is described in detail in: Paws::CloudFront::TagResource

Returns: nothing

Add tags to a CloudFront resource.

UntagResource

Resource => Str
TagKeys => Paws::CloudFront::TagKeys

Each argument is described in detail in: Paws::CloudFront::UntagResource

Returns: nothing

Remove tags from a CloudFront resource.

UpdateCloudFrontOriginAccessIdentity

CloudFrontOriginAccessIdentityConfig => Paws::CloudFront::CloudFrontOriginAccessIdentityConfig
Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::UpdateCloudFrontOriginAccessIdentity

Returns: a Paws::CloudFront::UpdateCloudFrontOriginAccessIdentityResult instance

Update an origin access identity.

UpdateDistribution

DistributionConfig => Paws::CloudFront::DistributionConfig
Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::UpdateDistribution

Returns: a Paws::CloudFront::UpdateDistributionResult instance

Updates the configuration for a web distribution.

When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using this API action, follow the steps here to get the current configuration and then make your updates, to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview-required-fields.html) in the Amazon CloudFront Developer Guide.

The update process includes getting the current distribution configuration, updating the XML document that is returned to make your changes, and then submitting an UpdateDistribution request to make the updates.

For information about updating a distribution using the CloudFront console instead, see Creating a Distribution (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html) in the Amazon CloudFront Developer Guide.

To update a web distribution using the CloudFront API

  1. Submit a GetDistributionConfig request to get the current configuration and an Etag header for the distribution.

    If you update the distribution again, you must get a new Etag header.

  2. Update the XML document that was returned in the response to your GetDistributionConfig request to include your changes.

    When you edit the XML file, be aware of the following:

    • You must strip out the ETag parameter that is returned.

    • Additional fields are required when you update a distribution. There may be fields included in the XML file for features that you haven't configured for your distribution. This is expected and required to successfully update the distribution.

    • You can't change the value of CallerReference. If you try to change this value, CloudFront returns an IllegalUpdate error.

    • The new configuration replaces the existing configuration; the values that you specify in an UpdateDistribution request are not merged into your existing configuration. When you add, delete, or replace values in an element that allows multiple values (for example, CNAME), you must specify all of the values that you want to appear in the updated distribution. In addition, you must update the corresponding Quantity element.

  3. Submit an UpdateDistribution request to update the configuration for your distribution:

    • In the request body, include the XML document that you updated in Step 2. The request body must include an XML document with a DistributionConfig element.

    • Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GetDistributionConfig request in Step 1.

  4. Review the response to the UpdateDistribution request to confirm that the configuration was successfully updated.

  5. Optional: Submit a GetDistribution request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed.

UpdateFieldLevelEncryptionConfig

FieldLevelEncryptionConfig => Paws::CloudFront::FieldLevelEncryptionConfig
Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::UpdateFieldLevelEncryptionConfig

Returns: a Paws::CloudFront::UpdateFieldLevelEncryptionConfigResult instance

Update a field-level encryption configuration.

UpdateFieldLevelEncryptionProfile

FieldLevelEncryptionProfileConfig => Paws::CloudFront::FieldLevelEncryptionProfileConfig
Id => Str
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::UpdateFieldLevelEncryptionProfile

Returns: a Paws::CloudFront::UpdateFieldLevelEncryptionProfileResult instance

Update a field-level encryption profile.

UpdatePublicKey

Id => Str
PublicKeyConfig => Paws::CloudFront::PublicKeyConfig
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::UpdatePublicKey

Returns: a Paws::CloudFront::UpdatePublicKeyResult instance

Update public key information. Note that the only value you can change is the comment.

UpdateStreamingDistribution

Id => Str
StreamingDistributionConfig => Paws::CloudFront::StreamingDistributionConfig
[IfMatch => Str]

Each argument is described in detail in: Paws::CloudFront::UpdateStreamingDistribution

Returns: a Paws::CloudFront::UpdateStreamingDistributionResult instance

Update a streaming distribution.

PAGINATORS

Paginator methods are helpers that repetively call methods that return partial results

ListAllCloudFrontOriginAccessIdentities(sub { },[Marker => Str, MaxItems => Str])

ListAllCloudFrontOriginAccessIdentities([Marker => Str, MaxItems => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - CloudFrontOriginAccessIdentityList.Items, passing the object as the first parameter, and the string 'CloudFrontOriginAccessIdentityList.Items' as the second parameter 

If not, it will return a a Paws::CloudFront::ListCloudFrontOriginAccessIdentitiesResult instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

ListAllDistributions(sub { },[Marker => Str, MaxItems => Str])

ListAllDistributions([Marker => Str, MaxItems => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - DistributionList.Items, passing the object as the first parameter, and the string 'DistributionList.Items' as the second parameter 

If not, it will return a a Paws::CloudFront::ListDistributionsResult instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

ListAllInvalidations(sub { },DistributionId => Str, [Marker => Str, MaxItems => Str])

ListAllInvalidations(DistributionId => Str, [Marker => Str, MaxItems => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - InvalidationList.Items, passing the object as the first parameter, and the string 'InvalidationList.Items' as the second parameter 

If not, it will return a a Paws::CloudFront::ListInvalidationsResult instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

ListAllStreamingDistributions(sub { },[Marker => Str, MaxItems => Str])

ListAllStreamingDistributions([Marker => Str, MaxItems => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

 - StreamingDistributionList.Items, passing the object as the first parameter, and the string 'StreamingDistributionList.Items' as the second parameter 

If not, it will return a a Paws::CloudFront::ListStreamingDistributionsResult instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

SEE ALSO

This service class forms part of Paws

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues