com.amazonaws.services.cloudfront.AmazonCloudFront Maven / Gradle / Ivy
Show all versions of aws-java-sdk-cloudfront Show documentation
/*
* Copyright 2014-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.cloudfront;
import javax.annotation.Generated;
import com.amazonaws.*;
import com.amazonaws.regions.*;
import com.amazonaws.services.cloudfront.model.*;
import com.amazonaws.services.cloudfront.waiters.AmazonCloudFrontWaiters;
/**
* Interface for accessing CloudFront.
*
* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from
* {@link com.amazonaws.services.cloudfront.AbstractAmazonCloudFront} instead.
*
*
* Amazon CloudFront
*
* This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about
* CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the Amazon
* CloudFront Developer Guide.
*
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public interface AmazonCloudFront {
/**
* 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 RegionUtils#getRegionsForService(String)
*/
String ENDPOINT_PREFIX = "cloudfront";
/**
* 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 {@link 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: https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-region-selection.html#region-selection-
* choose-endpoint
*
* 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.
*
* @param 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.
* @deprecated use {@link AwsClientBuilder#setEndpointConfiguration(AwsClientBuilder.EndpointConfiguration)} for
* example:
* {@code builder.setEndpointConfiguration(new EndpointConfiguration(endpoint, signingRegion));}
*/
@Deprecated
void setEndpoint(String endpoint);
/**
* An alternative to {@link AmazonCloudFront#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
* {@link 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.
*
* @param region
* The region this client will communicate with. See {@link 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 Region#getRegion(com.amazonaws.regions.Regions)
* @see Region#createClient(Class, com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration)
* @see Region#isServiceSupported(String)
* @deprecated use {@link AwsClientBuilder#setRegion(String)}
*/
@Deprecated
void setRegion(Region region);
/**
*
* 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.
*
*
* @param createCloudFrontOriginAccessIdentityRequest
* The request to create a new origin access identity (OAI). An origin access identity is a special
* CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of
* your Amazon S3 content. For more information, see Restricting Access to Amazon S3 Content by Using an Origin Access Identity in the Amazon
* CloudFront Developer Guide.
* @return 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.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws TooManyCloudFrontOriginAccessIdentitiesException
* Processing your request would cause you to exceed the maximum number of origin access identities allowed.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @sample AmazonCloudFront.CreateCloudFrontOriginAccessIdentity
* @see AWS API Documentation
*/
CreateCloudFrontOriginAccessIdentityResult createCloudFrontOriginAccessIdentity(
CreateCloudFrontOriginAccessIdentityRequest createCloudFrontOriginAccessIdentityRequest);
/**
*
* Creates a new web distribution. You create a CloudFront distribution to tell CloudFront where you want content to
* be delivered from, and the details about how to track and manage content delivery. Send a POST
* request to the /CloudFront API version/distribution
/distribution ID
resource.
*
*
*
* When you update a distribution, there are more required fields than when you create a distribution. When you
* update your distribution by using UpdateDistribution, follow the steps included in the documentation to get the current configuration and then
* make your updates. This helps to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer
* Guide.
*
*
*
* @param createDistributionRequest
* The request to create a new distribution.
* @return Result of the CreateDistribution operation returned by the service.
* @throws CNAMEAlreadyExistsException
* The CNAME specified is already defined for CloudFront.
* @throws DistributionAlreadyExistsException
* The caller reference you attempted to create the distribution with is associated with another
* distribution.
* @throws InvalidOriginException
* The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
* @throws InvalidOriginAccessIdentityException
* The origin access identity is not valid or doesn't exist.
* @throws AccessDeniedException
* Access denied.
* @throws TooManyTrustedSignersException
* Your request contains more trusted signers than are allowed per distribution.
* @throws TrustedSignerDoesNotExistException
* One or more of your trusted signers don't exist.
* @throws InvalidViewerCertificateException
* A viewer certificate specified in the response body is not valid.
* @throws InvalidMinimumProtocolVersionException
* The minimum protocol version specified is not valid.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws TooManyDistributionCNAMEsException
* Your request contains more CNAMEs than are allowed per distribution.
* @throws TooManyDistributionsException
* Processing your request would cause you to exceed the maximum number of distributions allowed.
* @throws InvalidDefaultRootObjectException
* The default root object file name is too big or contains an invalid character.
* @throws InvalidRelativePathException
* The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
* @throws InvalidErrorCodeException
* An invalid error code was specified.
* @throws InvalidResponseCodeException
* A response code specified in the response body is not valid.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws 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.
* @throws NoSuchOriginException
* No origin exists with the specified Origin Id
.
* @throws TooManyOriginsException
* You cannot create more origins for the distribution.
* @throws TooManyOriginGroupsPerDistributionException
* Processing your request would cause you to exceed the maximum number of origin groups allowed.
* @throws TooManyCacheBehaviorsException
* You cannot create more cache behaviors for the distribution.
* @throws TooManyCookieNamesInWhiteListException
* Your request contains more cookie names in the whitelist than are allowed per cache behavior.
* @throws 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.
* @throws TooManyHeadersInForwardedValuesException
* Your request contains too many headers in forwarded values.
* @throws InvalidHeadersForS3OriginException
* The headers specified are not valid for an Amazon S3 origin.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws TooManyCertificatesException
* You cannot create anymore custom SSL/TLS certificates.
* @throws InvalidLocationCodeException
* The location code specified is not valid.
* @throws InvalidGeoRestrictionParameterException
* The specified geo restriction parameter is not valid.
* @throws InvalidProtocolSettingsException
* You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that
* support Server Name Indication (SNI).
* @throws InvalidTTLOrderException
* TTL order specified in the response body is not valid.
* @throws InvalidWebACLIdException
* A web ACL id specified in the response body is not valid.
* @throws TooManyOriginCustomHeadersException
* Your request contains too many origin custom headers.
* @throws TooManyQueryStringParametersException
* Your request contains too many query string parameters.
* @throws InvalidQueryStringParametersException
* Query string parameters specified in the response body are not valid.
* @throws TooManyDistributionsWithLambdaAssociationsException
* Processing your request would cause the maximum number of distributions with Lambda function associations
* per owner to be exceeded.
* @throws TooManyLambdaFunctionAssociationsException
* Your request contains more Lambda function associations than are allowed per distribution.
* @throws InvalidLambdaFunctionAssociationException
* The specified Lambda function association is invalid.
* @throws InvalidOriginReadTimeoutException
* The read timeout specified for the origin is not valid.
* @throws InvalidOriginKeepaliveTimeoutException
* The keep alive timeout specified for the origin is not valid.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @throws IllegalFieldLevelEncryptionConfigAssociationWithCacheBehaviorException
* The specified configuration for field-level encryption can't be associated with the specified cache
* behavior.
* @throws TooManyDistributionsAssociatedToFieldLevelEncryptionConfigException
* The maximum number of distributions have been associated with the specified configuration for field-level
* encryption.
* @sample AmazonCloudFront.CreateDistribution
* @see AWS
* API Documentation
*/
CreateDistributionResult createDistribution(CreateDistributionRequest createDistributionRequest);
/**
*
* Create a new distribution with tags.
*
*
* @param createDistributionWithTagsRequest
* The request to create a new distribution with tags.
* @return Result of the CreateDistributionWithTags operation returned by the service.
* @throws CNAMEAlreadyExistsException
* The CNAME specified is already defined for CloudFront.
* @throws DistributionAlreadyExistsException
* The caller reference you attempted to create the distribution with is associated with another
* distribution.
* @throws InvalidOriginException
* The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
* @throws InvalidOriginAccessIdentityException
* The origin access identity is not valid or doesn't exist.
* @throws AccessDeniedException
* Access denied.
* @throws TooManyTrustedSignersException
* Your request contains more trusted signers than are allowed per distribution.
* @throws TrustedSignerDoesNotExistException
* One or more of your trusted signers don't exist.
* @throws InvalidViewerCertificateException
* A viewer certificate specified in the response body is not valid.
* @throws InvalidMinimumProtocolVersionException
* The minimum protocol version specified is not valid.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws TooManyDistributionCNAMEsException
* Your request contains more CNAMEs than are allowed per distribution.
* @throws TooManyDistributionsException
* Processing your request would cause you to exceed the maximum number of distributions allowed.
* @throws InvalidDefaultRootObjectException
* The default root object file name is too big or contains an invalid character.
* @throws InvalidRelativePathException
* The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
* @throws InvalidErrorCodeException
* An invalid error code was specified.
* @throws InvalidResponseCodeException
* A response code specified in the response body is not valid.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws 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.
* @throws NoSuchOriginException
* No origin exists with the specified Origin Id
.
* @throws TooManyOriginsException
* You cannot create more origins for the distribution.
* @throws TooManyOriginGroupsPerDistributionException
* Processing your request would cause you to exceed the maximum number of origin groups allowed.
* @throws TooManyCacheBehaviorsException
* You cannot create more cache behaviors for the distribution.
* @throws TooManyCookieNamesInWhiteListException
* Your request contains more cookie names in the whitelist than are allowed per cache behavior.
* @throws 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.
* @throws TooManyHeadersInForwardedValuesException
* Your request contains too many headers in forwarded values.
* @throws InvalidHeadersForS3OriginException
* The headers specified are not valid for an Amazon S3 origin.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws TooManyCertificatesException
* You cannot create anymore custom SSL/TLS certificates.
* @throws InvalidLocationCodeException
* The location code specified is not valid.
* @throws InvalidGeoRestrictionParameterException
* The specified geo restriction parameter is not valid.
* @throws InvalidProtocolSettingsException
* You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that
* support Server Name Indication (SNI).
* @throws InvalidTTLOrderException
* TTL order specified in the response body is not valid.
* @throws InvalidWebACLIdException
* A web ACL id specified in the response body is not valid.
* @throws TooManyOriginCustomHeadersException
* Your request contains too many origin custom headers.
* @throws InvalidTaggingException
* Tagging specified in the response body is not valid.
* @throws TooManyQueryStringParametersException
* Your request contains too many query string parameters.
* @throws InvalidQueryStringParametersException
* Query string parameters specified in the response body are not valid.
* @throws TooManyDistributionsWithLambdaAssociationsException
* Processing your request would cause the maximum number of distributions with Lambda function associations
* per owner to be exceeded.
* @throws TooManyLambdaFunctionAssociationsException
* Your request contains more Lambda function associations than are allowed per distribution.
* @throws InvalidLambdaFunctionAssociationException
* The specified Lambda function association is invalid.
* @throws InvalidOriginReadTimeoutException
* The read timeout specified for the origin is not valid.
* @throws InvalidOriginKeepaliveTimeoutException
* The keep alive timeout specified for the origin is not valid.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @throws IllegalFieldLevelEncryptionConfigAssociationWithCacheBehaviorException
* The specified configuration for field-level encryption can't be associated with the specified cache
* behavior.
* @throws TooManyDistributionsAssociatedToFieldLevelEncryptionConfigException
* The maximum number of distributions have been associated with the specified configuration for field-level
* encryption.
* @sample AmazonCloudFront.CreateDistributionWithTags
* @see AWS API Documentation
*/
CreateDistributionWithTagsResult createDistributionWithTags(CreateDistributionWithTagsRequest createDistributionWithTagsRequest);
/**
*
* Create a new field-level encryption configuration.
*
*
* @param createFieldLevelEncryptionConfigRequest
* @return Result of the CreateFieldLevelEncryptionConfig operation returned by the service.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws NoSuchFieldLevelEncryptionProfileException
* The specified profile for field-level encryption doesn't exist.
* @throws FieldLevelEncryptionConfigAlreadyExistsException
* The specified configuration for field-level encryption already exists.
* @throws TooManyFieldLevelEncryptionConfigsException
* The maximum number of configurations for field-level encryption have been created.
* @throws TooManyFieldLevelEncryptionQueryArgProfilesException
* The maximum number of query arg profiles for field-level encryption have been created.
* @throws TooManyFieldLevelEncryptionContentTypeProfilesException
* The maximum number of content type profiles for field-level encryption have been created.
* @throws QueryArgProfileEmptyException
* No profile specified for the field-level encryption query argument.
* @sample AmazonCloudFront.CreateFieldLevelEncryptionConfig
* @see AWS API Documentation
*/
CreateFieldLevelEncryptionConfigResult createFieldLevelEncryptionConfig(CreateFieldLevelEncryptionConfigRequest createFieldLevelEncryptionConfigRequest);
/**
*
* Create a field-level encryption profile.
*
*
* @param createFieldLevelEncryptionProfileRequest
* @return Result of the CreateFieldLevelEncryptionProfile operation returned by the service.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws NoSuchPublicKeyException
* The specified public key doesn't exist.
* @throws FieldLevelEncryptionProfileAlreadyExistsException
* The specified profile for field-level encryption already exists.
* @throws FieldLevelEncryptionProfileSizeExceededException
* The maximum size of a profile for field-level encryption was exceeded.
* @throws TooManyFieldLevelEncryptionProfilesException
* The maximum number of profiles for field-level encryption have been created.
* @throws TooManyFieldLevelEncryptionEncryptionEntitiesException
* The maximum number of encryption entities for field-level encryption have been created.
* @throws TooManyFieldLevelEncryptionFieldPatternsException
* The maximum number of field patterns for field-level encryption have been created.
* @sample AmazonCloudFront.CreateFieldLevelEncryptionProfile
* @see AWS API Documentation
*/
CreateFieldLevelEncryptionProfileResult createFieldLevelEncryptionProfile(CreateFieldLevelEncryptionProfileRequest createFieldLevelEncryptionProfileRequest);
/**
*
* Create a new invalidation.
*
*
* @param createInvalidationRequest
* The request to create an invalidation.
* @return Result of the CreateInvalidation operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws BatchTooLargeException
* Invalidation batch specified is too large.
* @throws TooManyInvalidationsInProgressException
* You have exceeded the maximum number of allowable InProgress invalidation batch requests, or invalidation
* objects.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @sample AmazonCloudFront.CreateInvalidation
* @see AWS
* API Documentation
*/
CreateInvalidationResult createInvalidation(CreateInvalidationRequest createInvalidationRequest);
/**
*
* Add a new public key to CloudFront to use, for example, for field-level encryption. You can add a maximum of 10
* public keys with one AWS account.
*
*
* @param createPublicKeyRequest
* @return Result of the CreatePublicKey operation returned by the service.
* @throws PublicKeyAlreadyExistsException
* The specified public key already exists.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws TooManyPublicKeysException
* The maximum number of public keys for field-level encryption have been created. To create a new public
* key, delete one of the existing keys.
* @sample AmazonCloudFront.CreatePublicKey
* @see AWS API
* Documentation
*/
CreatePublicKeyResult createPublicKey(CreatePublicKeyRequest createPublicKeyRequest);
/**
*
* Creates a new RTMP 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 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.
*
*
*
* 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.
*
*
*
* @param createStreamingDistributionRequest
* The request to create a new streaming distribution.
* @return Result of the CreateStreamingDistribution operation returned by the service.
* @throws CNAMEAlreadyExistsException
* The CNAME specified is already defined for CloudFront.
* @throws StreamingDistributionAlreadyExistsException
* The caller reference you attempted to create the streaming distribution with is associated with another
* distribution
* @throws InvalidOriginException
* The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
* @throws InvalidOriginAccessIdentityException
* The origin access identity is not valid or doesn't exist.
* @throws AccessDeniedException
* Access denied.
* @throws TooManyTrustedSignersException
* Your request contains more trusted signers than are allowed per distribution.
* @throws TrustedSignerDoesNotExistException
* One or more of your trusted signers don't exist.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws TooManyStreamingDistributionCNAMEsException
* Your request contains more CNAMEs than are allowed per distribution.
* @throws TooManyStreamingDistributionsException
* Processing your request would cause you to exceed the maximum number of streaming distributions allowed.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @sample AmazonCloudFront.CreateStreamingDistribution
* @see AWS API Documentation
*/
CreateStreamingDistributionResult createStreamingDistribution(CreateStreamingDistributionRequest createStreamingDistributionRequest);
/**
*
* Create a new streaming distribution with tags.
*
*
* @param createStreamingDistributionWithTagsRequest
* The request to create a new streaming distribution with tags.
* @return Result of the CreateStreamingDistributionWithTags operation returned by the service.
* @throws CNAMEAlreadyExistsException
* The CNAME specified is already defined for CloudFront.
* @throws StreamingDistributionAlreadyExistsException
* The caller reference you attempted to create the streaming distribution with is associated with another
* distribution
* @throws InvalidOriginException
* The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.
* @throws InvalidOriginAccessIdentityException
* The origin access identity is not valid or doesn't exist.
* @throws AccessDeniedException
* Access denied.
* @throws TooManyTrustedSignersException
* Your request contains more trusted signers than are allowed per distribution.
* @throws TrustedSignerDoesNotExistException
* One or more of your trusted signers don't exist.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws TooManyStreamingDistributionCNAMEsException
* Your request contains more CNAMEs than are allowed per distribution.
* @throws TooManyStreamingDistributionsException
* Processing your request would cause you to exceed the maximum number of streaming distributions allowed.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws InvalidTaggingException
* Tagging specified in the response body is not valid.
* @sample AmazonCloudFront.CreateStreamingDistributionWithTags
* @see AWS API Documentation
*/
CreateStreamingDistributionWithTagsResult createStreamingDistributionWithTags(
CreateStreamingDistributionWithTagsRequest createStreamingDistributionWithTagsRequest);
/**
*
* Delete an origin access identity.
*
*
* @param deleteCloudFrontOriginAccessIdentityRequest
* Deletes a origin access identity.
* @return Result of the DeleteCloudFrontOriginAccessIdentity operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchCloudFrontOriginAccessIdentityException
* The specified origin access identity does not exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws CloudFrontOriginAccessIdentityInUseException
* The Origin Access Identity specified is already in use.
* @sample AmazonCloudFront.DeleteCloudFrontOriginAccessIdentity
* @see AWS API Documentation
*/
DeleteCloudFrontOriginAccessIdentityResult deleteCloudFrontOriginAccessIdentity(
DeleteCloudFrontOriginAccessIdentityRequest deleteCloudFrontOriginAccessIdentityRequest);
/**
*
* Delete a distribution.
*
*
* @param 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:
*
*
* -
*
* Disable the web distribution
*
*
* -
*
* Submit a GET Distribution Config
request to get the current configuration and the
* Etag
header for the distribution.
*
*
* -
*
* Update the XML document that was returned in the response to your GET Distribution Config
* request to change the value of Enabled
to false
.
*
*
* -
*
* 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.
*
*
* -
*
* Review the response to the PUT Distribution Config
request to confirm that the distribution
* was successfully disabled.
*
*
* -
*
* Submit a GET Distribution
request to confirm that your changes have propagated. When
* propagation is complete, the value of Status
is Deployed
.
*
*
* -
*
* 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.
*
*
* -
*
* 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.
* @return Result of the DeleteDistribution operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws DistributionNotDisabledException
* The specified CloudFront distribution is not disabled. You must disable the distribution before you can
* delete it.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @sample AmazonCloudFront.DeleteDistribution
* @see AWS
* API Documentation
*/
DeleteDistributionResult deleteDistribution(DeleteDistributionRequest deleteDistributionRequest);
/**
*
* Remove a field-level encryption configuration.
*
*
* @param deleteFieldLevelEncryptionConfigRequest
* @return Result of the DeleteFieldLevelEncryptionConfig operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws FieldLevelEncryptionConfigInUseException
* The specified configuration for field-level encryption is in use.
* @sample AmazonCloudFront.DeleteFieldLevelEncryptionConfig
* @see AWS API Documentation
*/
DeleteFieldLevelEncryptionConfigResult deleteFieldLevelEncryptionConfig(DeleteFieldLevelEncryptionConfigRequest deleteFieldLevelEncryptionConfigRequest);
/**
*
* Remove a field-level encryption profile.
*
*
* @param deleteFieldLevelEncryptionProfileRequest
* @return Result of the DeleteFieldLevelEncryptionProfile operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchFieldLevelEncryptionProfileException
* The specified profile for field-level encryption doesn't exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws FieldLevelEncryptionProfileInUseException
* The specified profile for field-level encryption is in use.
* @sample AmazonCloudFront.DeleteFieldLevelEncryptionProfile
* @see AWS API Documentation
*/
DeleteFieldLevelEncryptionProfileResult deleteFieldLevelEncryptionProfile(DeleteFieldLevelEncryptionProfileRequest deleteFieldLevelEncryptionProfileRequest);
/**
*
* Remove a public key you previously added to CloudFront.
*
*
* @param deletePublicKeyRequest
* @return Result of the DeletePublicKey operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws PublicKeyInUseException
* The specified public key is in use.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchPublicKeyException
* The specified public key doesn't exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @sample AmazonCloudFront.DeletePublicKey
* @see AWS API
* Documentation
*/
DeletePublicKeyResult deletePublicKey(DeletePublicKeyRequest deletePublicKeyRequest);
/**
*
* 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:
*
*
* -
*
* Disable the RTMP distribution.
*
*
* -
*
* Submit a GET Streaming Distribution Config
request to get the current configuration and the
* Etag
header for the distribution.
*
*
* -
*
* 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
.
*
*
* -
*
* 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.
*
*
* -
*
* Review the response to the PUT Streaming Distribution Config
request to confirm that the
* distribution was successfully disabled.
*
*
* -
*
* Submit a GET Streaming Distribution Config
request to confirm that your changes have propagated.
* When propagation is complete, the value of Status
is Deployed
.
*
*
* -
*
* 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.
*
*
* -
*
* 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.
*
*
* @param deleteStreamingDistributionRequest
* The request to delete a streaming distribution.
* @return Result of the DeleteStreamingDistribution operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws StreamingDistributionNotDisabledException
* The specified CloudFront distribution is not disabled. You must disable the distribution before you can
* delete it.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchStreamingDistributionException
* The specified streaming distribution does not exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @sample AmazonCloudFront.DeleteStreamingDistribution
* @see AWS API Documentation
*/
DeleteStreamingDistributionResult deleteStreamingDistribution(DeleteStreamingDistributionRequest deleteStreamingDistributionRequest);
/**
*
* Get the information about an origin access identity.
*
*
* @param getCloudFrontOriginAccessIdentityRequest
* The request to get an origin access identity's information.
* @return Result of the GetCloudFrontOriginAccessIdentity operation returned by the service.
* @throws NoSuchCloudFrontOriginAccessIdentityException
* The specified origin access identity does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetCloudFrontOriginAccessIdentity
* @see AWS API Documentation
*/
GetCloudFrontOriginAccessIdentityResult getCloudFrontOriginAccessIdentity(GetCloudFrontOriginAccessIdentityRequest getCloudFrontOriginAccessIdentityRequest);
/**
*
* Get the configuration information about an origin access identity.
*
*
* @param getCloudFrontOriginAccessIdentityConfigRequest
* The origin access identity's configuration information. For more information, see CloudFrontOriginAccessIdentityConfig.
* @return Result of the GetCloudFrontOriginAccessIdentityConfig operation returned by the service.
* @throws NoSuchCloudFrontOriginAccessIdentityException
* The specified origin access identity does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetCloudFrontOriginAccessIdentityConfig
* @see AWS API Documentation
*/
GetCloudFrontOriginAccessIdentityConfigResult getCloudFrontOriginAccessIdentityConfig(
GetCloudFrontOriginAccessIdentityConfigRequest getCloudFrontOriginAccessIdentityConfigRequest);
/**
*
* Get the information about a distribution.
*
*
* @param getDistributionRequest
* The request to get a distribution's information.
* @return Result of the GetDistribution operation returned by the service.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetDistribution
* @see AWS API
* Documentation
*/
GetDistributionResult getDistribution(GetDistributionRequest getDistributionRequest);
/**
*
* Get the configuration information about a distribution.
*
*
* @param getDistributionConfigRequest
* The request to get a distribution configuration.
* @return Result of the GetDistributionConfig operation returned by the service.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetDistributionConfig
* @see AWS API Documentation
*/
GetDistributionConfigResult getDistributionConfig(GetDistributionConfigRequest getDistributionConfigRequest);
/**
*
* Get the field-level encryption configuration information.
*
*
* @param getFieldLevelEncryptionRequest
* @return Result of the GetFieldLevelEncryption operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @sample AmazonCloudFront.GetFieldLevelEncryption
* @see AWS API Documentation
*/
GetFieldLevelEncryptionResult getFieldLevelEncryption(GetFieldLevelEncryptionRequest getFieldLevelEncryptionRequest);
/**
*
* Get the field-level encryption configuration information.
*
*
* @param getFieldLevelEncryptionConfigRequest
* @return Result of the GetFieldLevelEncryptionConfig operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @sample AmazonCloudFront.GetFieldLevelEncryptionConfig
* @see AWS API Documentation
*/
GetFieldLevelEncryptionConfigResult getFieldLevelEncryptionConfig(GetFieldLevelEncryptionConfigRequest getFieldLevelEncryptionConfigRequest);
/**
*
* Get the field-level encryption profile information.
*
*
* @param getFieldLevelEncryptionProfileRequest
* @return Result of the GetFieldLevelEncryptionProfile operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws NoSuchFieldLevelEncryptionProfileException
* The specified profile for field-level encryption doesn't exist.
* @sample AmazonCloudFront.GetFieldLevelEncryptionProfile
* @see AWS API Documentation
*/
GetFieldLevelEncryptionProfileResult getFieldLevelEncryptionProfile(GetFieldLevelEncryptionProfileRequest getFieldLevelEncryptionProfileRequest);
/**
*
* Get the field-level encryption profile configuration information.
*
*
* @param getFieldLevelEncryptionProfileConfigRequest
* @return Result of the GetFieldLevelEncryptionProfileConfig operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws NoSuchFieldLevelEncryptionProfileException
* The specified profile for field-level encryption doesn't exist.
* @sample AmazonCloudFront.GetFieldLevelEncryptionProfileConfig
* @see AWS API Documentation
*/
GetFieldLevelEncryptionProfileConfigResult getFieldLevelEncryptionProfileConfig(
GetFieldLevelEncryptionProfileConfigRequest getFieldLevelEncryptionProfileConfigRequest);
/**
*
* Get the information about an invalidation.
*
*
* @param getInvalidationRequest
* The request to get an invalidation's information.
* @return Result of the GetInvalidation operation returned by the service.
* @throws NoSuchInvalidationException
* The specified invalidation does not exist.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetInvalidation
* @see AWS API
* Documentation
*/
GetInvalidationResult getInvalidation(GetInvalidationRequest getInvalidationRequest);
/**
*
* Get the public key information.
*
*
* @param getPublicKeyRequest
* @return Result of the GetPublicKey operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws NoSuchPublicKeyException
* The specified public key doesn't exist.
* @sample AmazonCloudFront.GetPublicKey
* @see AWS API
* Documentation
*/
GetPublicKeyResult getPublicKey(GetPublicKeyRequest getPublicKeyRequest);
/**
*
* Return public key configuration informaation
*
*
* @param getPublicKeyConfigRequest
* @return Result of the GetPublicKeyConfig operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws NoSuchPublicKeyException
* The specified public key doesn't exist.
* @sample AmazonCloudFront.GetPublicKeyConfig
* @see AWS
* API Documentation
*/
GetPublicKeyConfigResult getPublicKeyConfig(GetPublicKeyConfigRequest getPublicKeyConfigRequest);
/**
*
* Gets information about a specified RTMP distribution, including the distribution configuration.
*
*
* @param getStreamingDistributionRequest
* The request to get a streaming distribution's information.
* @return Result of the GetStreamingDistribution operation returned by the service.
* @throws NoSuchStreamingDistributionException
* The specified streaming distribution does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetStreamingDistribution
* @see AWS API Documentation
*/
GetStreamingDistributionResult getStreamingDistribution(GetStreamingDistributionRequest getStreamingDistributionRequest);
/**
*
* Get the configuration information about a streaming distribution.
*
*
* @param getStreamingDistributionConfigRequest
* To request to get a streaming distribution configuration.
* @return Result of the GetStreamingDistributionConfig operation returned by the service.
* @throws NoSuchStreamingDistributionException
* The specified streaming distribution does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.GetStreamingDistributionConfig
* @see AWS API Documentation
*/
GetStreamingDistributionConfigResult getStreamingDistributionConfig(GetStreamingDistributionConfigRequest getStreamingDistributionConfigRequest);
/**
*
* Lists origin access identities.
*
*
* @param listCloudFrontOriginAccessIdentitiesRequest
* The request to list origin access identities.
* @return Result of the ListCloudFrontOriginAccessIdentities operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @sample AmazonCloudFront.ListCloudFrontOriginAccessIdentities
* @see AWS API Documentation
*/
ListCloudFrontOriginAccessIdentitiesResult listCloudFrontOriginAccessIdentities(
ListCloudFrontOriginAccessIdentitiesRequest listCloudFrontOriginAccessIdentitiesRequest);
/**
*
* List CloudFront distributions.
*
*
* @param listDistributionsRequest
* The request to list your distributions.
* @return Result of the ListDistributions operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @sample AmazonCloudFront.ListDistributions
* @see AWS
* API Documentation
*/
ListDistributionsResult listDistributions(ListDistributionsRequest listDistributionsRequest);
/**
*
* List the distributions that are associated with a specified AWS WAF web ACL.
*
*
* @param listDistributionsByWebACLIdRequest
* The request to list distributions that are associated with a specified AWS WAF web ACL.
* @return Result of the ListDistributionsByWebACLId operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidWebACLIdException
* A web ACL id specified in the response body is not valid.
* @sample AmazonCloudFront.ListDistributionsByWebACLId
* @see AWS API Documentation
*/
ListDistributionsByWebACLIdResult listDistributionsByWebACLId(ListDistributionsByWebACLIdRequest listDistributionsByWebACLIdRequest);
/**
*
* List all field-level encryption configurations that have been created in CloudFront for this account.
*
*
* @param listFieldLevelEncryptionConfigsRequest
* @return Result of the ListFieldLevelEncryptionConfigs operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @sample AmazonCloudFront.ListFieldLevelEncryptionConfigs
* @see AWS API Documentation
*/
ListFieldLevelEncryptionConfigsResult listFieldLevelEncryptionConfigs(ListFieldLevelEncryptionConfigsRequest listFieldLevelEncryptionConfigsRequest);
/**
*
* Request a list of field-level encryption profiles that have been created in CloudFront for this account.
*
*
* @param listFieldLevelEncryptionProfilesRequest
* @return Result of the ListFieldLevelEncryptionProfiles operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @sample AmazonCloudFront.ListFieldLevelEncryptionProfiles
* @see AWS API Documentation
*/
ListFieldLevelEncryptionProfilesResult listFieldLevelEncryptionProfiles(ListFieldLevelEncryptionProfilesRequest listFieldLevelEncryptionProfilesRequest);
/**
*
* Lists invalidation batches.
*
*
* @param listInvalidationsRequest
* The request to list invalidations.
* @return Result of the ListInvalidations operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws AccessDeniedException
* Access denied.
* @sample AmazonCloudFront.ListInvalidations
* @see AWS
* API Documentation
*/
ListInvalidationsResult listInvalidations(ListInvalidationsRequest listInvalidationsRequest);
/**
*
* List all public keys that have been added to CloudFront for this account.
*
*
* @param listPublicKeysRequest
* @return Result of the ListPublicKeys operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @sample AmazonCloudFront.ListPublicKeys
* @see AWS API
* Documentation
*/
ListPublicKeysResult listPublicKeys(ListPublicKeysRequest listPublicKeysRequest);
/**
*
* List streaming distributions.
*
*
* @param listStreamingDistributionsRequest
* The request to list your streaming distributions.
* @return Result of the ListStreamingDistributions operation returned by the service.
* @throws InvalidArgumentException
* The argument is invalid.
* @sample AmazonCloudFront.ListStreamingDistributions
* @see AWS API Documentation
*/
ListStreamingDistributionsResult listStreamingDistributions(ListStreamingDistributionsRequest listStreamingDistributionsRequest);
/**
*
* List tags for a CloudFront resource.
*
*
* @param listTagsForResourceRequest
* The request to list tags for a CloudFront resource.
* @return Result of the ListTagsForResource operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidTaggingException
* Tagging specified in the response body is not valid.
* @throws NoSuchResourceException
* A resource that was specified is not valid.
* @sample AmazonCloudFront.ListTagsForResource
* @see AWS
* API Documentation
*/
ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest);
/**
*
* Add tags to a CloudFront resource.
*
*
* @param tagResourceRequest
* The request to add tags to a CloudFront resource.
* @return Result of the TagResource operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidTaggingException
* Tagging specified in the response body is not valid.
* @throws NoSuchResourceException
* A resource that was specified is not valid.
* @sample AmazonCloudFront.TagResource
* @see AWS API
* Documentation
*/
TagResourceResult tagResource(TagResourceRequest tagResourceRequest);
/**
*
* Remove tags from a CloudFront resource.
*
*
* @param untagResourceRequest
* The request to remove tags from a CloudFront resource.
* @return Result of the UntagResource operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidTaggingException
* Tagging specified in the response body is not valid.
* @throws NoSuchResourceException
* A resource that was specified is not valid.
* @sample AmazonCloudFront.UntagResource
* @see AWS API
* Documentation
*/
UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest);
/**
*
* Update an origin access identity.
*
*
* @param updateCloudFrontOriginAccessIdentityRequest
* The request to update an origin access identity.
* @return Result of the UpdateCloudFrontOriginAccessIdentity operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws IllegalUpdateException
* Origin and CallerReference
cannot be updated.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws NoSuchCloudFrontOriginAccessIdentityException
* The specified origin access identity does not exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @sample AmazonCloudFront.UpdateCloudFrontOriginAccessIdentity
* @see AWS API Documentation
*/
UpdateCloudFrontOriginAccessIdentityResult updateCloudFrontOriginAccessIdentity(
UpdateCloudFrontOriginAccessIdentityRequest updateCloudFrontOriginAccessIdentityRequest);
/**
*
* Updates the configuration for a web distribution.
*
*
*
* When you update a distribution, there are more required fields than when you create a distribution. When you
* update your distribution by using this API action, follow the steps here to get the current configuration and
* then make your updates, to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer
* Guide.
*
*
*
* The update process includes getting the current distribution configuration, updating the XML document that is
* returned to make your changes, and then submitting an UpdateDistribution
request to make the
* updates.
*
*
* For information about updating a distribution using the CloudFront console instead, see Creating a Distribution in the Amazon CloudFront Developer Guide.
*
*
* To update a web distribution using the CloudFront API
*
*
* -
*
* Submit a
* GetDistributionConfig request to get the current configuration and an Etag
header for the
* distribution.
*
*
*
* If you update the distribution again, you must get a new Etag
header.
*
*
* -
*
* Update the XML document that was returned in the response to your GetDistributionConfig
request to
* include your changes.
*
*
*
* When you edit the XML file, be aware of the following:
*
*
* -
*
* You must strip out the ETag parameter that is returned.
*
*
* -
*
* Additional fields are required when you update a distribution. There may be fields included in the XML file for
* features that you haven't configured for your distribution. This is expected and required to successfully update
* the distribution.
*
*
* -
*
* You can't change the value of CallerReference
. If you try to change this value, CloudFront returns
* an IllegalUpdate
error.
*
*
* -
*
* The new configuration replaces the existing configuration; the values that you specify in an
* UpdateDistribution
request are not merged into your existing configuration. When you add, delete, or
* replace values in an element that allows multiple values (for example, CNAME
), you must specify all
* of the values that you want to appear in the updated distribution. In addition, you must update the corresponding
* Quantity
element.
*
*
*
*
* -
*
* Submit an UpdateDistribution
request to update the configuration for your distribution:
*
*
* -
*
* In the request body, include the XML document that you updated in Step 2. The request body must include an XML
* document with a DistributionConfig
element.
*
*
* -
*
* Set the value of the HTTP If-Match
header to the value of the ETag
header that
* CloudFront returned when you submitted the GetDistributionConfig
request in Step 1.
*
*
*
*
* -
*
* Review the response to the UpdateDistribution
request to confirm that the configuration was
* successfully updated.
*
*
* -
*
* Optional: Submit a GetDistribution
* request to confirm that your changes have propagated. When propagation is complete, the value of
* Status
is Deployed
.
*
*
*
*
* @param updateDistributionRequest
* The request to update a distribution.
* @return Result of the UpdateDistribution operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws CNAMEAlreadyExistsException
* The CNAME specified is already defined for CloudFront.
* @throws IllegalUpdateException
* Origin and CallerReference
cannot be updated.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws NoSuchDistributionException
* The specified distribution does not exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws TooManyDistributionCNAMEsException
* Your request contains more CNAMEs than are allowed per distribution.
* @throws InvalidDefaultRootObjectException
* The default root object file name is too big or contains an invalid character.
* @throws InvalidRelativePathException
* The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
* @throws InvalidErrorCodeException
* An invalid error code was specified.
* @throws InvalidResponseCodeException
* A response code specified in the response body is not valid.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidOriginAccessIdentityException
* The origin access identity is not valid or doesn't exist.
* @throws TooManyTrustedSignersException
* Your request contains more trusted signers than are allowed per distribution.
* @throws TrustedSignerDoesNotExistException
* One or more of your trusted signers don't exist.
* @throws InvalidViewerCertificateException
* A viewer certificate specified in the response body is not valid.
* @throws InvalidMinimumProtocolVersionException
* The minimum protocol version specified is not valid.
* @throws 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.
* @throws NoSuchOriginException
* No origin exists with the specified Origin Id
.
* @throws TooManyOriginsException
* You cannot create more origins for the distribution.
* @throws TooManyOriginGroupsPerDistributionException
* Processing your request would cause you to exceed the maximum number of origin groups allowed.
* @throws TooManyCacheBehaviorsException
* You cannot create more cache behaviors for the distribution.
* @throws TooManyCookieNamesInWhiteListException
* Your request contains more cookie names in the whitelist than are allowed per cache behavior.
* @throws 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.
* @throws TooManyHeadersInForwardedValuesException
* Your request contains too many headers in forwarded values.
* @throws InvalidHeadersForS3OriginException
* The headers specified are not valid for an Amazon S3 origin.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws TooManyCertificatesException
* You cannot create anymore custom SSL/TLS certificates.
* @throws InvalidLocationCodeException
* The location code specified is not valid.
* @throws InvalidGeoRestrictionParameterException
* The specified geo restriction parameter is not valid.
* @throws InvalidTTLOrderException
* TTL order specified in the response body is not valid.
* @throws InvalidWebACLIdException
* A web ACL id specified in the response body is not valid.
* @throws TooManyOriginCustomHeadersException
* Your request contains too many origin custom headers.
* @throws TooManyQueryStringParametersException
* Your request contains too many query string parameters.
* @throws InvalidQueryStringParametersException
* Query string parameters specified in the response body are not valid.
* @throws TooManyDistributionsWithLambdaAssociationsException
* Processing your request would cause the maximum number of distributions with Lambda function associations
* per owner to be exceeded.
* @throws TooManyLambdaFunctionAssociationsException
* Your request contains more Lambda function associations than are allowed per distribution.
* @throws InvalidLambdaFunctionAssociationException
* The specified Lambda function association is invalid.
* @throws InvalidOriginReadTimeoutException
* The read timeout specified for the origin is not valid.
* @throws InvalidOriginKeepaliveTimeoutException
* The keep alive timeout specified for the origin is not valid.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @throws IllegalFieldLevelEncryptionConfigAssociationWithCacheBehaviorException
* The specified configuration for field-level encryption can't be associated with the specified cache
* behavior.
* @throws TooManyDistributionsAssociatedToFieldLevelEncryptionConfigException
* The maximum number of distributions have been associated with the specified configuration for field-level
* encryption.
* @sample AmazonCloudFront.UpdateDistribution
* @see AWS
* API Documentation
*/
UpdateDistributionResult updateDistribution(UpdateDistributionRequest updateDistributionRequest);
/**
*
* Update a field-level encryption configuration.
*
*
* @param updateFieldLevelEncryptionConfigRequest
* @return Result of the UpdateFieldLevelEncryptionConfig operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws IllegalUpdateException
* Origin and CallerReference
cannot be updated.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchFieldLevelEncryptionProfileException
* The specified profile for field-level encryption doesn't exist.
* @throws NoSuchFieldLevelEncryptionConfigException
* The specified configuration for field-level encryption doesn't exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws TooManyFieldLevelEncryptionQueryArgProfilesException
* The maximum number of query arg profiles for field-level encryption have been created.
* @throws TooManyFieldLevelEncryptionContentTypeProfilesException
* The maximum number of content type profiles for field-level encryption have been created.
* @throws QueryArgProfileEmptyException
* No profile specified for the field-level encryption query argument.
* @sample AmazonCloudFront.UpdateFieldLevelEncryptionConfig
* @see AWS API Documentation
*/
UpdateFieldLevelEncryptionConfigResult updateFieldLevelEncryptionConfig(UpdateFieldLevelEncryptionConfigRequest updateFieldLevelEncryptionConfigRequest);
/**
*
* Update a field-level encryption profile.
*
*
* @param updateFieldLevelEncryptionProfileRequest
* @return Result of the UpdateFieldLevelEncryptionProfile operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws FieldLevelEncryptionProfileAlreadyExistsException
* The specified profile for field-level encryption already exists.
* @throws IllegalUpdateException
* Origin and CallerReference
cannot be updated.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws NoSuchPublicKeyException
* The specified public key doesn't exist.
* @throws NoSuchFieldLevelEncryptionProfileException
* The specified profile for field-level encryption doesn't exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws FieldLevelEncryptionProfileSizeExceededException
* The maximum size of a profile for field-level encryption was exceeded.
* @throws TooManyFieldLevelEncryptionEncryptionEntitiesException
* The maximum number of encryption entities for field-level encryption have been created.
* @throws TooManyFieldLevelEncryptionFieldPatternsException
* The maximum number of field patterns for field-level encryption have been created.
* @sample AmazonCloudFront.UpdateFieldLevelEncryptionProfile
* @see AWS API Documentation
*/
UpdateFieldLevelEncryptionProfileResult updateFieldLevelEncryptionProfile(UpdateFieldLevelEncryptionProfileRequest updateFieldLevelEncryptionProfileRequest);
/**
*
* Update public key information. Note that the only value you can change is the comment.
*
*
* @param updatePublicKeyRequest
* @return Result of the UpdatePublicKey operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws CannotChangeImmutablePublicKeyFieldsException
* You can't change the value of a public key.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws IllegalUpdateException
* Origin and CallerReference
cannot be updated.
* @throws NoSuchPublicKeyException
* The specified public key doesn't exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @sample AmazonCloudFront.UpdatePublicKey
* @see AWS API
* Documentation
*/
UpdatePublicKeyResult updatePublicKey(UpdatePublicKeyRequest updatePublicKeyRequest);
/**
*
* Update a streaming distribution.
*
*
* @param updateStreamingDistributionRequest
* The request to update a streaming distribution.
* @return Result of the UpdateStreamingDistribution operation returned by the service.
* @throws AccessDeniedException
* Access denied.
* @throws CNAMEAlreadyExistsException
* The CNAME specified is already defined for CloudFront.
* @throws IllegalUpdateException
* Origin and CallerReference
cannot be updated.
* @throws InvalidIfMatchVersionException
* The If-Match
version is missing or not valid for the distribution.
* @throws MissingBodyException
* This operation requires a body. Ensure that the body is present and the Content-Type
header
* is set.
* @throws NoSuchStreamingDistributionException
* The specified streaming distribution does not exist.
* @throws PreconditionFailedException
* The precondition given in one or more of the request-header fields evaluated to false
.
* @throws TooManyStreamingDistributionCNAMEsException
* Your request contains more CNAMEs than are allowed per distribution.
* @throws InvalidArgumentException
* The argument is invalid.
* @throws InvalidOriginAccessIdentityException
* The origin access identity is not valid or doesn't exist.
* @throws TooManyTrustedSignersException
* Your request contains more trusted signers than are allowed per distribution.
* @throws TrustedSignerDoesNotExistException
* One or more of your trusted signers don't exist.
* @throws InconsistentQuantitiesException
* The value of Quantity
and the size of Items
don't match.
* @sample AmazonCloudFront.UpdateStreamingDistribution
* @see AWS API Documentation
*/
UpdateStreamingDistributionResult updateStreamingDistribution(UpdateStreamingDistributionRequest updateStreamingDistributionRequest);
/**
* 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.
*/
void shutdown();
/**
* 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.
*
* @param request
* The originally executed request.
*
* @return The response metadata for the specified request, or null if none is available.
*/
ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request);
AmazonCloudFrontWaiters waiters();
}