com.amazonaws.services.cloudfront

## Class AmazonCloudFrontClient

- java.lang.Object
- - com.amazonaws.AmazonWebServiceClient
  - - com.amazonaws.services.cloudfront.AmazonCloudFrontClient

All Implemented Interfaces:
  AmazonCloudFront

Direct Known Subclasses:
  AmazonCloudFrontAsyncClient

    @ThreadSafe
    public class AmazonCloudFrontClient
    extends AmazonWebServiceClient
    implements AmazonCloudFront

Client for accessing CloudFront. All service calls made using this client are blocking, and will not return until the service call completes.

<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
`protected static ClientConfigurationFactory` `configFactory` Client configuration factory providing ClientConfigurations tailored to this client
`protected List<com.amazonaws.transform.Unmarshaller<AmazonServiceException,Node>>` `exceptionUnmarshallers` List of exception unmarshallers for all modeled exceptions

### Fields inherited from class com.amazonaws.AmazonWebServiceClient

`client, clientConfiguration, endpoint, LOGGING_AWS_REQUEST_METRIC, requestHandler2s, timeOffset`

### Fields inherited from interface com.amazonaws.services.cloudfront.AmazonCloudFront

`ENDPOINT_PREFIX`

### Constructor Summary

Constructors
Constructor and Description
`AmazonCloudFrontClient()` Constructs a new client to invoke service methods on CloudFront.
`AmazonCloudFrontClient(AWSCredentials awsCredentials)` Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials.
`AmazonCloudFrontClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration)` Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials and client configuration options.
`AmazonCloudFrontClient(AWSCredentialsProvider awsCredentialsProvider)` Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials provider.
`AmazonCloudFrontClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration)` Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials provider and client configuration options.
`AmazonCloudFrontClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector)` Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials provider, client configuration options, and request metric collector.
`AmazonCloudFrontClient(ClientConfiguration clientConfiguration)` Constructs a new client to invoke service methods on CloudFront.

### Method Summary

All Methods Instance Methods Concrete 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.
`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()`

### Methods inherited from class com.amazonaws.AmazonWebServiceClient

`addRequestHandler, addRequestHandler, beforeMarshalling, calculateCRC32FromCompressedData, checkMutability, configureRegion, createExecutionContext, createExecutionContext, createExecutionContext, createSignerProvider, endClientExecution, endClientExecution, getEndpointPrefix, getRequestMetricsCollector, getServiceAbbreviation, getServiceName, getServiceNameIntern, getSigner, getSignerByURI, getSignerProvider, getSignerRegionOverride, getTimeOffset, isProfilingEnabled, isRequestMetricsEnabled, makeImmutable, removeRequestHandler, removeRequestHandler, requestMetricCollector, setEndpoint, setEndpointPrefix, setRegion, setServiceNameIntern, setSignerRegionOverride, setTimeOffset, shutdown, useStrictHostNameVerification, withEndpoint, withRegion, withRegion, withTimeOffset`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface com.amazonaws.services.cloudfront.AmazonCloudFront

`setEndpoint, setRegion, shutdown`

### Field Detail

#### configFactory

    protected static final ClientConfigurationFactory configFactory

Client configuration factory providing ClientConfigurations tailored to this client

#### exceptionUnmarshallers

    protected final List<com.amazonaws.transform.Unmarshaller<AmazonServiceException,Node>> exceptionUnmarshallers

List of exception unmarshallers for all modeled exceptions

### Constructor Detail

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient()

Constructs a new client to invoke service methods on CloudFront. A credentials provider chain will be used that searches for credentials in this order:

- Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
- Java System Properties - aws.accessKeyId and aws.secretKey
- Instance profile credentials delivered through the Amazon EC2 metadata service

All service calls made using this new client object are blocking, and will not return until the service call completes.

See Also:
  `DefaultAWSCredentialsProviderChain`

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient(ClientConfiguration clientConfiguration)

Constructs a new client to invoke service methods on CloudFront. A credentials provider chain will be used that searches for credentials in this order:

- Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
- Java System Properties - aws.accessKeyId and aws.secretKey
- Instance profile credentials delivered through the Amazon EC2 metadata service

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
  `clientConfiguration` - The client configuration options controlling how this client connects to CloudFront (ex: proxy settings, retry counts, etc.).
See Also:
  `DefaultAWSCredentialsProviderChain`

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient(AWSCredentials awsCredentials)

Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
  `awsCredentials` - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient(AWSCredentials awsCredentials,
                                  ClientConfiguration clientConfiguration)

Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials and client configuration options.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
  `awsCredentials` - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
  `clientConfiguration` - The client configuration options controlling how this client connects to CloudFront (ex: proxy settings, retry counts, etc.).

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient(AWSCredentialsProvider awsCredentialsProvider)

Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials provider.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
  `awsCredentialsProvider` - The AWS credentials provider which will provide credentials to authenticate requests with AWS services.

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient(AWSCredentialsProvider awsCredentialsProvider,
                                  ClientConfiguration clientConfiguration)

Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials provider and client configuration options.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
  `awsCredentialsProvider` - The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
  `clientConfiguration` - The client configuration options controlling how this client connects to CloudFront (ex: proxy settings, retry counts, etc.).

#### AmazonCloudFrontClient

    public AmazonCloudFrontClient(AWSCredentialsProvider awsCredentialsProvider,
                                  ClientConfiguration clientConfiguration,
                                  RequestMetricCollector requestMetricCollector)

Constructs a new client to invoke service methods on CloudFront using the specified AWS account credentials provider, client configuration options, and request metric collector.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
  `awsCredentialsProvider` - The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
  `clientConfiguration` - The client configuration options controlling how this client connects to CloudFront (ex: proxy settings, retry counts, etc.).
  `requestMetricCollector` - optional request metric collector

### Method Detail

#### createCloudFrontOriginAccessIdentity

    public 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.

Specified by:
  `createCloudFrontOriginAccessIdentity` in interface `AmazonCloudFront`
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

    public CreateDistributionResult createDistribution(CreateDistributionRequest createDistributionRequest)

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

Specified by:
  `createDistribution` in interface `AmazonCloudFront`
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

    public CreateDistributionWithTagsResult createDistributionWithTags(CreateDistributionWithTagsRequest createDistributionWithTagsRequest)

Create a new distribution with tags.

Specified by:
  `createDistributionWithTags` in interface `AmazonCloudFront`
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

    public CreateInvalidationResult createInvalidation(CreateInvalidationRequest createInvalidationRequest)

Create a new invalidation.

Specified by:
  `createInvalidation` in interface `AmazonCloudFront`
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

    public 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>

Specified by:
  `createStreamingDistribution` in interface `AmazonCloudFront`
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

    public CreateStreamingDistributionWithTagsResult createStreamingDistributionWithTags(CreateStreamingDistributionWithTagsRequest createStreamingDistributionWithTagsRequest)

Create a new streaming distribution with tags.

Specified by:
  `createStreamingDistributionWithTags` in interface `AmazonCloudFront`
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

    public DeleteCloudFrontOriginAccessIdentityResult deleteCloudFrontOriginAccessIdentity(DeleteCloudFrontOriginAccessIdentityRequest deleteCloudFrontOriginAccessIdentityRequest)

Delete an origin access identity.

Specified by:
  `deleteCloudFrontOriginAccessIdentity` in interface `AmazonCloudFront`
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

    public DeleteDistributionResult deleteDistribution(DeleteDistributionRequest deleteDistributionRequest)

Delete a distribution.

Specified by:
  `deleteDistribution` in interface `AmazonCloudFront`
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

    public 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.

Specified by:
  `deleteStreamingDistribution` in interface `AmazonCloudFront`
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

    public GetCloudFrontOriginAccessIdentityResult getCloudFrontOriginAccessIdentity(GetCloudFrontOriginAccessIdentityRequest getCloudFrontOriginAccessIdentityRequest)

Get the information about an origin access identity.

Specified by:
  `getCloudFrontOriginAccessIdentity` in interface `AmazonCloudFront`
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

    public GetCloudFrontOriginAccessIdentityConfigResult getCloudFrontOriginAccessIdentityConfig(GetCloudFrontOriginAccessIdentityConfigRequest getCloudFrontOriginAccessIdentityConfigRequest)

Get the configuration information about an origin access identity.

Specified by:
  `getCloudFrontOriginAccessIdentityConfig` in interface `AmazonCloudFront`
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

    public GetDistributionResult getDistribution(GetDistributionRequest getDistributionRequest)

Get the information about a distribution.

Specified by:
  `getDistribution` in interface `AmazonCloudFront`
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

    public GetDistributionConfigResult getDistributionConfig(GetDistributionConfigRequest getDistributionConfigRequest)

Get the configuration information about a distribution.

Specified by:
  `getDistributionConfig` in interface `AmazonCloudFront`
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

    public GetInvalidationResult getInvalidation(GetInvalidationRequest getInvalidationRequest)

Get the information about an invalidation.

Specified by:
  `getInvalidation` in interface `AmazonCloudFront`
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

    public GetStreamingDistributionResult getStreamingDistribution(GetStreamingDistributionRequest getStreamingDistributionRequest)

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

Specified by:
  `getStreamingDistribution` in interface `AmazonCloudFront`
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

    public GetStreamingDistributionConfigResult getStreamingDistributionConfig(GetStreamingDistributionConfigRequest getStreamingDistributionConfigRequest)

Get the configuration information about a streaming distribution.

Specified by:
  `getStreamingDistributionConfig` in interface `AmazonCloudFront`
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

    public ListCloudFrontOriginAccessIdentitiesResult listCloudFrontOriginAccessIdentities(ListCloudFrontOriginAccessIdentitiesRequest listCloudFrontOriginAccessIdentitiesRequest)

Lists origin access identities.

Specified by:
  `listCloudFrontOriginAccessIdentities` in interface `AmazonCloudFront`
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

    public ListDistributionsResult listDistributions(ListDistributionsRequest listDistributionsRequest)

List distributions.

Specified by:
  `listDistributions` in interface `AmazonCloudFront`
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

    public ListDistributionsByWebACLIdResult listDistributionsByWebACLId(ListDistributionsByWebACLIdRequest listDistributionsByWebACLIdRequest)

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

Specified by:
  `listDistributionsByWebACLId` in interface `AmazonCloudFront`
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

    public ListInvalidationsResult listInvalidations(ListInvalidationsRequest listInvalidationsRequest)

Lists invalidation batches.

Specified by:
  `listInvalidations` in interface `AmazonCloudFront`
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

    public ListStreamingDistributionsResult listStreamingDistributions(ListStreamingDistributionsRequest listStreamingDistributionsRequest)

List streaming distributions.

Specified by:
  `listStreamingDistributions` in interface `AmazonCloudFront`
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

    public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest)

List tags for a CloudFront resource.

Specified by:
  `listTagsForResource` in interface `AmazonCloudFront`
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

    public TagResourceResult tagResource(TagResourceRequest tagResourceRequest)

Add tags to a CloudFront resource.

Specified by:
  `tagResource` in interface `AmazonCloudFront`
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

    public UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest)

Remove tags from a CloudFront resource.

Specified by:
  `untagResource` in interface `AmazonCloudFront`
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

    public UpdateCloudFrontOriginAccessIdentityResult updateCloudFrontOriginAccessIdentity(UpdateCloudFrontOriginAccessIdentityRequest updateCloudFrontOriginAccessIdentityRequest)

Update an origin access identity.

Specified by:
  `updateCloudFrontOriginAccessIdentity` in interface `AmazonCloudFront`
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

    public UpdateDistributionResult updateDistribution(UpdateDistributionRequest updateDistributionRequest)

Update a distribution.

Specified by:
  `updateDistribution` in interface `AmazonCloudFront`
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

    public UpdateStreamingDistributionResult updateStreamingDistribution(UpdateStreamingDistributionRequest updateStreamingDistributionRequest)

Update a streaming distribution.

Specified by:
  `updateStreamingDistribution` in interface `AmazonCloudFront`
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.

#### getCachedResponseMetadata

    public 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 the request.

Specified by:
  `getCachedResponseMetadata` in interface `AmazonCloudFront`
Parameters:
  `request` - The originally executed request
Returns:
  The response metadata for the specified request, or null if none is available.

#### waiters

    public AmazonCloudFrontWaiters waiters()

Specified by:
  `waiters` in interface `AmazonCloudFront`