com.amazonaws.services.cloudfront

## Interface AmazonCloudFront

All Known Subinterfaces:
  AmazonCloudFrontAsync

All Known Implementing Classes:
  AbstractAmazonCloudFront, AbstractAmazonCloudFrontAsync, AmazonCloudFrontAsyncClient, AmazonCloudFrontClient

    public interface AmazonCloudFront

Interface for accessing CloudFront.

Note: Do not directly implement this interface, new methods are added to it regularly. Extend from `AbstractAmazonCloudFront` instead.

<fullname>Amazon CloudFront</fullname>

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

### Field Summary

Fields
`static String` `ENDPOINT_PREFIX` The region metadata service name for computing region endpoints.

### Method Summary

All Methods Instance Methods Abstract Methods
`CreateCloudFrontOriginAccessIdentityResult` `createCloudFrontOriginAccessIdentity(CreateCloudFrontOriginAccessIdentityRequest createCloudFrontOriginAccessIdentityRequest)` Creates a new origin access identity.
`CreateDistributionResult` `createDistribution(CreateDistributionRequest createDistributionRequest)` Creates a new web distribution.
`CreateDistributionWithTagsResult` `createDistributionWithTags(CreateDistributionWithTagsRequest createDistributionWithTagsRequest)` Create a new distribution with tags.
`CreateInvalidationResult` `createInvalidation(CreateInvalidationRequest createInvalidationRequest)` Create a new invalidation.
`CreateStreamingDistributionResult` `createStreamingDistribution(CreateStreamingDistributionRequest createStreamingDistributionRequest)` Creates a new RMTP distribution.
`CreateStreamingDistributionWithTagsResult` `createStreamingDistributionWithTags(CreateStreamingDistributionWithTagsRequest createStreamingDistributionWithTagsRequest)` Create a new streaming distribution with tags.
`DeleteCloudFrontOriginAccessIdentityResult` `deleteCloudFrontOriginAccessIdentity(DeleteCloudFrontOriginAccessIdentityRequest deleteCloudFrontOriginAccessIdentityRequest)` Delete an origin access identity.
`DeleteDistributionResult` `deleteDistribution(DeleteDistributionRequest deleteDistributionRequest)` Delete a distribution.
`DeleteStreamingDistributionResult` `deleteStreamingDistribution(DeleteStreamingDistributionRequest deleteStreamingDistributionRequest)` Delete a streaming distribution.
`ResponseMetadata` `getCachedResponseMetadata(AmazonWebServiceRequest request)` Returns additional metadata for a previously executed successful request, typically used for debugging issues where a service isn't acting as expected.
`GetCloudFrontOriginAccessIdentityResult` `getCloudFrontOriginAccessIdentity(GetCloudFrontOriginAccessIdentityRequest getCloudFrontOriginAccessIdentityRequest)` Get the information about an origin access identity.
`GetCloudFrontOriginAccessIdentityConfigResult` `getCloudFrontOriginAccessIdentityConfig(GetCloudFrontOriginAccessIdentityConfigRequest getCloudFrontOriginAccessIdentityConfigRequest)` Get the configuration information about an origin access identity.
`GetDistributionResult` `getDistribution(GetDistributionRequest getDistributionRequest)` Get the information about a distribution.
`GetDistributionConfigResult` `getDistributionConfig(GetDistributionConfigRequest getDistributionConfigRequest)` Get the configuration information about a distribution.
`GetInvalidationResult` `getInvalidation(GetInvalidationRequest getInvalidationRequest)` Get the information about an invalidation.
`GetStreamingDistributionResult` `getStreamingDistribution(GetStreamingDistributionRequest getStreamingDistributionRequest)` Gets information about a specified RTMP distribution, including the distribution configuration.
`GetStreamingDistributionConfigResult` `getStreamingDistributionConfig(GetStreamingDistributionConfigRequest getStreamingDistributionConfigRequest)` Get the configuration information about a streaming distribution.
`ListCloudFrontOriginAccessIdentitiesResult` `listCloudFrontOriginAccessIdentities(ListCloudFrontOriginAccessIdentitiesRequest listCloudFrontOriginAccessIdentitiesRequest)` Lists origin access identities.
`ListDistributionsResult` `listDistributions(ListDistributionsRequest listDistributionsRequest)` List distributions.
`ListDistributionsByWebACLIdResult` `listDistributionsByWebACLId(ListDistributionsByWebACLIdRequest listDistributionsByWebACLIdRequest)` List the distributions that are associated with a specified AWS WAF web ACL.
`ListInvalidationsResult` `listInvalidations(ListInvalidationsRequest listInvalidationsRequest)` Lists invalidation batches.
`ListStreamingDistributionsResult` `listStreamingDistributions(ListStreamingDistributionsRequest listStreamingDistributionsRequest)` List streaming distributions.
`ListTagsForResourceResult` `listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest)` List tags for a CloudFront resource.
`void` `setEndpoint(String endpoint)` Overrides the default endpoint for this client ("https://cloudfront.amazonaws.com/").
`void` `setRegion(Region region)` An alternative to `setEndpoint(String)`, sets the regional endpoint for this client's service calls.
`void` `shutdown()` Shuts down this client object, releasing any resources that might be held open.
`TagResourceResult` `tagResource(TagResourceRequest tagResourceRequest)` Add tags to a CloudFront resource.
`UntagResourceResult` `untagResource(UntagResourceRequest untagResourceRequest)` Remove tags from a CloudFront resource.
`UpdateCloudFrontOriginAccessIdentityResult` `updateCloudFrontOriginAccessIdentity(UpdateCloudFrontOriginAccessIdentityRequest updateCloudFrontOriginAccessIdentityRequest)` Update an origin access identity.
`UpdateDistributionResult` `updateDistribution(UpdateDistributionRequest updateDistributionRequest)` Update a distribution.
`UpdateStreamingDistributionResult` `updateStreamingDistribution(UpdateStreamingDistributionRequest updateStreamingDistributionRequest)` Update a streaming distribution.
`AmazonCloudFrontWaiters` `waiters()`

### Field Detail

#### ENDPOINT_PREFIX

    static final String ENDPOINT_PREFIX

The region metadata service name for computing region endpoints. You can use this value to retrieve metadata (such as supported regions) of the service.

See Also:
  `RegionUtils.getRegionsForService(String)`, Constant Field Values

### Method Detail

#### setEndpoint

    void setEndpoint(String endpoint)

Overrides the default endpoint for this client ("https://cloudfront.amazonaws.com/"). Callers can use this method to control which AWS region they want to work with.

Callers can pass in just the endpoint (ex: "cloudfront.amazonaws.com/") or a full URL, including the protocol (ex: "https://cloudfront.amazonaws.com/"). If the protocol is not specified here, the default protocol from this client's `ClientConfiguration` will be used, which by default is HTTPS.

For more information on using AWS regions with the AWS SDK for Java, and a complete list of all available endpoints for all AWS services, see: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3912

This method is not threadsafe. An endpoint should be configured when the client is created and before any service requests are made. Changing it afterwards creates inevitable race conditions for any service requests in transit or retrying.

Parameters:
  `endpoint` - The endpoint (ex: "cloudfront.amazonaws.com/") or a full URL, including the protocol (ex: "https://cloudfront.amazonaws.com/") of the region specific AWS endpoint this client will communicate with.

#### setRegion

    void setRegion(Region region)

An alternative to `setEndpoint(String)`, sets the regional endpoint for this client's service calls. Callers can use this method to control which AWS region they want to work with.

By default, all service endpoints in all regions use the https protocol. To use http instead, specify it in the `ClientConfiguration` supplied at construction.

This method is not threadsafe. A region should be configured when the client is created and before any service requests are made. Changing it afterwards creates inevitable race conditions for any service requests in transit or retrying.

Parameters:
  `region` - The region this client will communicate with. See `Region.getRegion(com.amazonaws.regions.Regions)` for accessing a given region. Must not be null and must be a region where the service is available.
See Also:
  `Region.getRegion(com.amazonaws.regions.Regions)`, `Region.createClient(Class, com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration)`, `Region.isServiceSupported(String)`

#### createCloudFrontOriginAccessIdentity

    CreateCloudFrontOriginAccessIdentityResult createCloudFrontOriginAccessIdentity(CreateCloudFrontOriginAccessIdentityRequest createCloudFrontOriginAccessIdentityRequest)

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 in the Amazon CloudFront Developer Guide.

Parameters:
  `createCloudFrontOriginAccessIdentityRequest` - The request to create a new origin access identity.
Returns:
  Result of the CreateCloudFrontOriginAccessIdentity operation returned by the service.
Throws:
  `CloudFrontOriginAccessIdentityAlreadyExistsException` - If the `CallerReference` is a value you already sent in a previous request to create an identity but the content of the `CloudFrontOriginAccessIdentityConfig` is different from the original request, CloudFront returns a `CloudFrontOriginAccessIdentityAlreadyExists` error.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `TooManyCloudFrontOriginAccessIdentitiesException` - Processing your request would cause you to exceed the maximum number of origin access identities allowed.
  `InvalidArgumentException` - The argument is invalid.
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.

#### createDistribution

    CreateDistributionResult createDistribution(CreateDistributionRequest createDistributionRequest)

Creates a new web distribution. Send a `GET` request to the `/CloudFront API version/distribution`/`distribution ID` resource.

Parameters:
  `createDistributionRequest` - The request to create a new distribution.
Returns:
  Result of the CreateDistribution operation returned by the service.
Throws:
  `CNAMEAlreadyExistsException`
  `DistributionAlreadyExistsException` - The caller reference you attempted to create the distribution with is associated with another distribution.
  `InvalidOriginException` - The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
  `InvalidOriginAccessIdentityException` - The origin access identity is not valid or doesn't exist.
  `AccessDeniedException` - Access denied.
  `TooManyTrustedSignersException` - Your request contains more trusted signers than are allowed per distribution.
  `TrustedSignerDoesNotExistException` - One or more of your trusted signers do not exist.
  `InvalidViewerCertificateException`
  `InvalidMinimumProtocolVersionException`
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `TooManyDistributionCNAMEsException` - Your request contains more CNAMEs than are allowed per distribution.
  `TooManyDistributionsException` - Processing your request would cause you to exceed the maximum number of distributions allowed.
  `InvalidDefaultRootObjectException` - The default root object file name is too big or contains an invalid character.
  `InvalidRelativePathException` - The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
  `InvalidErrorCodeException`
  `InvalidResponseCodeException`
  `InvalidArgumentException` - The argument is invalid.
  `InvalidRequiredProtocolException` - This operation requires the HTTPS protocol. Ensure that you specify the HTTPS protocol in your request, or omit the `RequiredProtocols` element from your distribution configuration.
  `NoSuchOriginException` - No origin exists with the specified `Origin Id`.
  `TooManyOriginsException` - You cannot create more origins for the distribution.
  `TooManyCacheBehaviorsException` - You cannot create more cache behaviors for the distribution.
  `TooManyCookieNamesInWhiteListException` - Your request contains more cookie names in the whitelist than are allowed per cache behavior.
  `InvalidForwardCookiesException` - Your request contains forward cookies option which doesn't match with the expectation for the `whitelisted` list of cookie names. Either list of cookie names has been specified when not allowed or list of cookie names is missing when expected.
  `TooManyHeadersInForwardedValuesException`
  `InvalidHeadersForS3OriginException`
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.
  `TooManyCertificatesException` - You cannot create anymore custom SSL/TLS certificates.
  `InvalidLocationCodeException`
  `InvalidGeoRestrictionParameterException`
  `InvalidProtocolSettingsException` - You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that support Server Name Indication (SNI).
  `InvalidTTLOrderException`
  `InvalidWebACLIdException`
  `TooManyOriginCustomHeadersException`
  `TooManyQueryStringParametersException`
  `InvalidQueryStringParametersException`
  `TooManyDistributionsWithLambdaAssociationsException` - Processing your request would cause the maximum number of distributions with Lambda function associations per owner to be exceeded.
  `TooManyLambdaFunctionAssociationsException` - Your request contains more Lambda function associations than are allowed per distribution.
  `InvalidLambdaFunctionAssociationException` - The specified Lambda function association is invalid.

#### createDistributionWithTags

    CreateDistributionWithTagsResult createDistributionWithTags(CreateDistributionWithTagsRequest createDistributionWithTagsRequest)

Create a new distribution with tags.

Parameters:
  `createDistributionWithTagsRequest` - The request to create a new distribution with tags.
Returns:
  Result of the CreateDistributionWithTags operation returned by the service.
Throws:
  `CNAMEAlreadyExistsException`
  `DistributionAlreadyExistsException` - The caller reference you attempted to create the distribution with is associated with another distribution.
  `InvalidOriginException` - The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
  `InvalidOriginAccessIdentityException` - The origin access identity is not valid or doesn't exist.
  `AccessDeniedException` - Access denied.
  `TooManyTrustedSignersException` - Your request contains more trusted signers than are allowed per distribution.
  `TrustedSignerDoesNotExistException` - One or more of your trusted signers do not exist.
  `InvalidViewerCertificateException`
  `InvalidMinimumProtocolVersionException`
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `TooManyDistributionCNAMEsException` - Your request contains more CNAMEs than are allowed per distribution.
  `TooManyDistributionsException` - Processing your request would cause you to exceed the maximum number of distributions allowed.
  `InvalidDefaultRootObjectException` - The default root object file name is too big or contains an invalid character.
  `InvalidRelativePathException` - The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
  `InvalidErrorCodeException`
  `InvalidResponseCodeException`
  `InvalidArgumentException` - The argument is invalid.
  `InvalidRequiredProtocolException` - This operation requires the HTTPS protocol. Ensure that you specify the HTTPS protocol in your request, or omit the `RequiredProtocols` element from your distribution configuration.
  `NoSuchOriginException` - No origin exists with the specified `Origin Id`.
  `TooManyOriginsException` - You cannot create more origins for the distribution.
  `TooManyCacheBehaviorsException` - You cannot create more cache behaviors for the distribution.
  `TooManyCookieNamesInWhiteListException` - Your request contains more cookie names in the whitelist than are allowed per cache behavior.
  `InvalidForwardCookiesException` - Your request contains forward cookies option which doesn't match with the expectation for the `whitelisted` list of cookie names. Either list of cookie names has been specified when not allowed or list of cookie names is missing when expected.
  `TooManyHeadersInForwardedValuesException`
  `InvalidHeadersForS3OriginException`
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.
  `TooManyCertificatesException` - You cannot create anymore custom SSL/TLS certificates.
  `InvalidLocationCodeException`
  `InvalidGeoRestrictionParameterException`
  `InvalidProtocolSettingsException` - You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that support Server Name Indication (SNI).
  `InvalidTTLOrderException`
  `InvalidWebACLIdException`
  `TooManyOriginCustomHeadersException`
  `InvalidTaggingException`
  `TooManyQueryStringParametersException`
  `InvalidQueryStringParametersException`
  `TooManyDistributionsWithLambdaAssociationsException` - Processing your request would cause the maximum number of distributions with Lambda function associations per owner to be exceeded.
  `TooManyLambdaFunctionAssociationsException` - Your request contains more Lambda function associations than are allowed per distribution.
  `InvalidLambdaFunctionAssociationException` - The specified Lambda function association is invalid.

#### createInvalidation

    CreateInvalidationResult createInvalidation(CreateInvalidationRequest createInvalidationRequest)

Create a new invalidation.

Parameters:
  `createInvalidationRequest` - The request to create an invalidation.
Returns:
  Result of the CreateInvalidation operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `InvalidArgumentException` - The argument is invalid.
  `NoSuchDistributionException` - The specified distribution does not exist.
  `BatchTooLargeException`
  `TooManyInvalidationsInProgressException` - You have exceeded the maximum number of allowable InProgress invalidation batch requests, or invalidation objects.
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.

#### createStreamingDistribution

    CreateStreamingDistributionResult createStreamingDistribution(CreateStreamingDistributionRequest createStreamingDistributionRequest)

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 in the Amazon CloudFront Developer Guide.

<important>

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.

</important>

Parameters:
  `createStreamingDistributionRequest` - The request to create a new streaming distribution.
Returns:
  Result of the CreateStreamingDistribution operation returned by the service.
Throws:
  `CNAMEAlreadyExistsException`
  `StreamingDistributionAlreadyExistsException`
  `InvalidOriginException` - The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
  `InvalidOriginAccessIdentityException` - The origin access identity is not valid or doesn't exist.
  `AccessDeniedException` - Access denied.
  `TooManyTrustedSignersException` - Your request contains more trusted signers than are allowed per distribution.
  `TrustedSignerDoesNotExistException` - One or more of your trusted signers do not exist.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `TooManyStreamingDistributionCNAMEsException`
  `TooManyStreamingDistributionsException` - Processing your request would cause you to exceed the maximum number of streaming distributions allowed.
  `InvalidArgumentException` - The argument is invalid.
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.

#### createStreamingDistributionWithTags

    CreateStreamingDistributionWithTagsResult createStreamingDistributionWithTags(CreateStreamingDistributionWithTagsRequest createStreamingDistributionWithTagsRequest)

Create a new streaming distribution with tags.

Parameters:
  `createStreamingDistributionWithTagsRequest` - The request to create a new streaming distribution with tags.
Returns:
  Result of the CreateStreamingDistributionWithTags operation returned by the service.
Throws:
  `CNAMEAlreadyExistsException`
  `StreamingDistributionAlreadyExistsException`
  `InvalidOriginException` - The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
  `InvalidOriginAccessIdentityException` - The origin access identity is not valid or doesn't exist.
  `AccessDeniedException` - Access denied.
  `TooManyTrustedSignersException` - Your request contains more trusted signers than are allowed per distribution.
  `TrustedSignerDoesNotExistException` - One or more of your trusted signers do not exist.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `TooManyStreamingDistributionCNAMEsException`
  `TooManyStreamingDistributionsException` - Processing your request would cause you to exceed the maximum number of streaming distributions allowed.
  `InvalidArgumentException` - The argument is invalid.
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.
  `InvalidTaggingException`

#### deleteCloudFrontOriginAccessIdentity

    DeleteCloudFrontOriginAccessIdentityResult deleteCloudFrontOriginAccessIdentity(DeleteCloudFrontOriginAccessIdentityRequest deleteCloudFrontOriginAccessIdentityRequest)

Delete an origin access identity.

Parameters:
  `deleteCloudFrontOriginAccessIdentityRequest` - Deletes a origin access identity.
Returns:
  Result of the DeleteCloudFrontOriginAccessIdentity operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `InvalidIfMatchVersionException` - The `If-Match` version is missing or not valid for the distribution.
  `NoSuchCloudFrontOriginAccessIdentityException` - The specified origin access identity does not exist.
  `PreconditionFailedException` - The precondition given in one or more of the request-header fields evaluated to `false`.
  `CloudFrontOriginAccessIdentityInUseException`

#### deleteDistribution

    DeleteDistributionResult deleteDistribution(DeleteDistributionRequest deleteDistributionRequest)

Delete a distribution.

Parameters:
  `deleteDistributionRequest` - This action deletes a web distribution. To delete a web distribution using the CloudFront API, perform the following steps.

  To delete a web distribution using the CloudFront API:

  1. Disable the web distribution

  2. Submit a `GET 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 Distribution Config` request to change the value of `Enabled` to `false`.

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

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

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

  7. Submit a `DELETE 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 Distribution Config` request in Step 6.

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

  For information about deleting a distribution using the CloudFront console, see Deleting a Distribution in the Amazon CloudFront Developer Guide.

Returns:
  Result of the DeleteDistribution operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `DistributionNotDisabledException`
  `InvalidIfMatchVersionException` - The `If-Match` version is missing or not valid for the distribution.
  `NoSuchDistributionException` - The specified distribution does not exist.
  `PreconditionFailedException` - The precondition given in one or more of the request-header fields evaluated to `false`.

#### deleteStreamingDistribution

    DeleteStreamingDistributionResult deleteStreamingDistribution(DeleteStreamingDistributionRequest deleteStreamingDistributionRequest)

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 in the Amazon CloudFront Developer Guide.

Parameters:
  `deleteStreamingDistributionRequest` - The request to delete a streaming distribution.
Returns:
  Result of the DeleteStreamingDistribution operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `StreamingDistributionNotDisabledException`
  `InvalidIfMatchVersionException` - The `If-Match` version is missing or not valid for the distribution.
  `NoSuchStreamingDistributionException` - The specified streaming distribution does not exist.
  `PreconditionFailedException` - The precondition given in one or more of the request-header fields evaluated to `false`.

#### getCloudFrontOriginAccessIdentity

    GetCloudFrontOriginAccessIdentityResult getCloudFrontOriginAccessIdentity(GetCloudFrontOriginAccessIdentityRequest getCloudFrontOriginAccessIdentityRequest)

Get the information about an origin access identity.

Parameters:
  `getCloudFrontOriginAccessIdentityRequest` - The request to get an origin access identity's information.
Returns:
  Result of the GetCloudFrontOriginAccessIdentity operation returned by the service.
Throws:
  `NoSuchCloudFrontOriginAccessIdentityException` - The specified origin access identity does not exist.
  `AccessDeniedException` - Access denied.

#### getCloudFrontOriginAccessIdentityConfig

    GetCloudFrontOriginAccessIdentityConfigResult getCloudFrontOriginAccessIdentityConfig(GetCloudFrontOriginAccessIdentityConfigRequest getCloudFrontOriginAccessIdentityConfigRequest)

Get the configuration information about an origin access identity.

Parameters:
  `getCloudFrontOriginAccessIdentityConfigRequest` - The origin access identity's configuration information. For more information, see CloudFrontOriginAccessIdentityConfigComplexType.
Returns:
  Result of the GetCloudFrontOriginAccessIdentityConfig operation returned by the service.
Throws:
  `NoSuchCloudFrontOriginAccessIdentityException` - The specified origin access identity does not exist.
  `AccessDeniedException` - Access denied.

#### getDistribution

    GetDistributionResult getDistribution(GetDistributionRequest getDistributionRequest)

Get the information about a distribution.

Parameters:
  `getDistributionRequest` - The request to get a distribution's information.
Returns:
  Result of the GetDistribution operation returned by the service.
Throws:
  `NoSuchDistributionException` - The specified distribution does not exist.
  `AccessDeniedException` - Access denied.

#### getDistributionConfig

    GetDistributionConfigResult getDistributionConfig(GetDistributionConfigRequest getDistributionConfigRequest)

Get the configuration information about a distribution.

Parameters:
  `getDistributionConfigRequest` - The request to get a distribution configuration.
Returns:
  Result of the GetDistributionConfig operation returned by the service.
Throws:
  `NoSuchDistributionException` - The specified distribution does not exist.
  `AccessDeniedException` - Access denied.

#### getInvalidation

    GetInvalidationResult getInvalidation(GetInvalidationRequest getInvalidationRequest)

Get the information about an invalidation.

Parameters:
  `getInvalidationRequest` - The request to get an invalidation's information.
Returns:
  Result of the GetInvalidation operation returned by the service.
Throws:
  `NoSuchInvalidationException` - The specified invalidation does not exist.
  `NoSuchDistributionException` - The specified distribution does not exist.
  `AccessDeniedException` - Access denied.

#### getStreamingDistribution

    GetStreamingDistributionResult getStreamingDistribution(GetStreamingDistributionRequest getStreamingDistributionRequest)

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

Parameters:
  `getStreamingDistributionRequest` - The request to get a streaming distribution's information.
Returns:
  Result of the GetStreamingDistribution operation returned by the service.
Throws:
  `NoSuchStreamingDistributionException` - The specified streaming distribution does not exist.
  `AccessDeniedException` - Access denied.

#### getStreamingDistributionConfig

    GetStreamingDistributionConfigResult getStreamingDistributionConfig(GetStreamingDistributionConfigRequest getStreamingDistributionConfigRequest)

Get the configuration information about a streaming distribution.

Parameters:
  `getStreamingDistributionConfigRequest` - To request to get a streaming distribution configuration.
Returns:
  Result of the GetStreamingDistributionConfig operation returned by the service.
Throws:
  `NoSuchStreamingDistributionException` - The specified streaming distribution does not exist.
  `AccessDeniedException` - Access denied.

#### listCloudFrontOriginAccessIdentities

    ListCloudFrontOriginAccessIdentitiesResult listCloudFrontOriginAccessIdentities(ListCloudFrontOriginAccessIdentitiesRequest listCloudFrontOriginAccessIdentitiesRequest)

Lists origin access identities.

Parameters:
  `listCloudFrontOriginAccessIdentitiesRequest` - The request to list origin access identities.
Returns:
  Result of the ListCloudFrontOriginAccessIdentities operation returned by the service.
Throws:
  `InvalidArgumentException` - The argument is invalid.

#### listDistributions

    ListDistributionsResult listDistributions(ListDistributionsRequest listDistributionsRequest)

List distributions.

Parameters:
  `listDistributionsRequest` - The request to list your distributions.
Returns:
  Result of the ListDistributions operation returned by the service.
Throws:
  `InvalidArgumentException` - The argument is invalid.

#### listDistributionsByWebACLId

    ListDistributionsByWebACLIdResult listDistributionsByWebACLId(ListDistributionsByWebACLIdRequest listDistributionsByWebACLIdRequest)

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

Parameters:
  `listDistributionsByWebACLIdRequest` - The request to list distributions that are associated with a specified AWS WAF web ACL.
Returns:
  Result of the ListDistributionsByWebACLId operation returned by the service.
Throws:
  `InvalidArgumentException` - The argument is invalid.
  `InvalidWebACLIdException`

#### listInvalidations

    ListInvalidationsResult listInvalidations(ListInvalidationsRequest listInvalidationsRequest)

Lists invalidation batches.

Parameters:
  `listInvalidationsRequest` - The request to list invalidations.
Returns:
  Result of the ListInvalidations operation returned by the service.
Throws:
  `InvalidArgumentException` - The argument is invalid.
  `NoSuchDistributionException` - The specified distribution does not exist.
  `AccessDeniedException` - Access denied.

#### listStreamingDistributions

    ListStreamingDistributionsResult listStreamingDistributions(ListStreamingDistributionsRequest listStreamingDistributionsRequest)

List streaming distributions.

Parameters:
  `listStreamingDistributionsRequest` - The request to list your streaming distributions.
Returns:
  Result of the ListStreamingDistributions operation returned by the service.
Throws:
  `InvalidArgumentException` - The argument is invalid.

#### listTagsForResource

    ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest)

List tags for a CloudFront resource.

Parameters:
  `listTagsForResourceRequest` - The request to list tags for a CloudFront resource.
Returns:
  Result of the ListTagsForResource operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `InvalidArgumentException` - The argument is invalid.
  `InvalidTaggingException`
  `NoSuchResourceException`

#### tagResource

    TagResourceResult tagResource(TagResourceRequest tagResourceRequest)

Add tags to a CloudFront resource.

Parameters:
  `tagResourceRequest` - The request to add tags to a CloudFront resource.
Returns:
  Result of the TagResource operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `InvalidArgumentException` - The argument is invalid.
  `InvalidTaggingException`
  `NoSuchResourceException`

#### untagResource

    UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest)

Remove tags from a CloudFront resource.

Parameters:
  `untagResourceRequest` - The request to remove tags from a CloudFront resource.
Returns:
  Result of the UntagResource operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `InvalidArgumentException` - The argument is invalid.
  `InvalidTaggingException`
  `NoSuchResourceException`

#### updateCloudFrontOriginAccessIdentity

    UpdateCloudFrontOriginAccessIdentityResult updateCloudFrontOriginAccessIdentity(UpdateCloudFrontOriginAccessIdentityRequest updateCloudFrontOriginAccessIdentityRequest)

Update an origin access identity.

Parameters:
  `updateCloudFrontOriginAccessIdentityRequest` - The request to update an origin access identity.
Returns:
  Result of the UpdateCloudFrontOriginAccessIdentity operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `IllegalUpdateException` - Origin and `CallerReference` cannot be updated.
  `InvalidIfMatchVersionException` - The `If-Match` version is missing or not valid for the distribution.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `NoSuchCloudFrontOriginAccessIdentityException` - The specified origin access identity does not exist.
  `PreconditionFailedException` - The precondition given in one or more of the request-header fields evaluated to `false`.
  `InvalidArgumentException` - The argument is invalid.
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.

#### updateDistribution

    UpdateDistributionResult updateDistribution(UpdateDistributionRequest updateDistributionRequest)

Update a distribution.

Parameters:
  `updateDistributionRequest` - The request to update a distribution.
Returns:
  Result of the UpdateDistribution operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `CNAMEAlreadyExistsException`
  `IllegalUpdateException` - Origin and `CallerReference` cannot be updated.
  `InvalidIfMatchVersionException` - The `If-Match` version is missing or not valid for the distribution.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `NoSuchDistributionException` - The specified distribution does not exist.
  `PreconditionFailedException` - The precondition given in one or more of the request-header fields evaluated to `false`.
  `TooManyDistributionCNAMEsException` - Your request contains more CNAMEs than are allowed per distribution.
  `InvalidDefaultRootObjectException` - The default root object file name is too big or contains an invalid character.
  `InvalidRelativePathException` - The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
  `InvalidErrorCodeException`
  `InvalidResponseCodeException`
  `InvalidArgumentException` - The argument is invalid.
  `InvalidOriginAccessIdentityException` - The origin access identity is not valid or doesn't exist.
  `TooManyTrustedSignersException` - Your request contains more trusted signers than are allowed per distribution.
  `TrustedSignerDoesNotExistException` - One or more of your trusted signers do not exist.
  `InvalidViewerCertificateException`
  `InvalidMinimumProtocolVersionException`
  `InvalidRequiredProtocolException` - This operation requires the HTTPS protocol. Ensure that you specify the HTTPS protocol in your request, or omit the `RequiredProtocols` element from your distribution configuration.
  `NoSuchOriginException` - No origin exists with the specified `Origin Id`.
  `TooManyOriginsException` - You cannot create more origins for the distribution.
  `TooManyCacheBehaviorsException` - You cannot create more cache behaviors for the distribution.
  `TooManyCookieNamesInWhiteListException` - Your request contains more cookie names in the whitelist than are allowed per cache behavior.
  `InvalidForwardCookiesException` - Your request contains forward cookies option which doesn't match with the expectation for the `whitelisted` list of cookie names. Either list of cookie names has been specified when not allowed or list of cookie names is missing when expected.
  `TooManyHeadersInForwardedValuesException`
  `InvalidHeadersForS3OriginException`
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.
  `TooManyCertificatesException` - You cannot create anymore custom SSL/TLS certificates.
  `InvalidLocationCodeException`
  `InvalidGeoRestrictionParameterException`
  `InvalidTTLOrderException`
  `InvalidWebACLIdException`
  `TooManyOriginCustomHeadersException`
  `TooManyQueryStringParametersException`
  `InvalidQueryStringParametersException`
  `TooManyDistributionsWithLambdaAssociationsException` - Processing your request would cause the maximum number of distributions with Lambda function associations per owner to be exceeded.
  `TooManyLambdaFunctionAssociationsException` - Your request contains more Lambda function associations than are allowed per distribution.
  `InvalidLambdaFunctionAssociationException` - The specified Lambda function association is invalid.

#### updateStreamingDistribution

    UpdateStreamingDistributionResult updateStreamingDistribution(UpdateStreamingDistributionRequest updateStreamingDistributionRequest)

Update a streaming distribution.

Parameters:
  `updateStreamingDistributionRequest` - The request to update a streaming distribution.
Returns:
  Result of the UpdateStreamingDistribution operation returned by the service.
Throws:
  `AccessDeniedException` - Access denied.
  `CNAMEAlreadyExistsException`
  `IllegalUpdateException` - Origin and `CallerReference` cannot be updated.
  `InvalidIfMatchVersionException` - The `If-Match` version is missing or not valid for the distribution.
  `MissingBodyException` - This operation requires a body. Ensure that the body is present and the Content-Type header is set.
  `NoSuchStreamingDistributionException` - The specified streaming distribution does not exist.
  `PreconditionFailedException` - The precondition given in one or more of the request-header fields evaluated to `false`.
  `TooManyStreamingDistributionCNAMEsException`
  `InvalidArgumentException` - The argument is invalid.
  `InvalidOriginAccessIdentityException` - The origin access identity is not valid or doesn't exist.
  `TooManyTrustedSignersException` - Your request contains more trusted signers than are allowed per distribution.
  `TrustedSignerDoesNotExistException` - One or more of your trusted signers do not exist.
  `InconsistentQuantitiesException` - The value of `Quantity` and the size of `Items` do not match.

#### shutdown

    void shutdown()

Shuts down this client object, releasing any resources that might be held open. This is an optional method, and callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client has been shutdown, it should not be used to make any more requests.

#### getCachedResponseMetadata

    ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request)

Returns additional metadata for a previously executed successful request, typically used for debugging issues where a service isn't acting as expected. This data isn't considered part of the result data returned by an operation, so it's available through this separate, diagnostic interface.

Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic information for an executed request, you should use this method to retrieve it as soon as possible after executing a request.

Parameters:
  `request` - The originally executed request.
Returns:
  The response metadata for the specified request, or null if none is available.

#### waiters

    AmazonCloudFrontWaiters waiters()