AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Updates the configuration for a web distribution. Perform the following steps.

For information about updating a distribution using the CloudFront console, see Creating or Updating a Web Distribution Using the CloudFront Console in the Amazon CloudFront Developer Guide.

To update a web distribution using the CloudFront API

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

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

  2. Update the XML document that was returned in the response to your GetDistributionConfig request to include the desired changes. You can't change the value of CallerReference. If you try to change this value, CloudFront returns an IllegalUpdate error. Note that you must strip out the ETag parameter that is returned.

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

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

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

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

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

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

    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 distribution. 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 you're actually specifying.


For .NET Core and PCL this operation is only available in asynchronous form. Please refer to UpdateDistributionAsync.

Namespace: Amazon.CloudFront
Assembly: AWSSDK.CloudFront.dll
Version: 3.x.y.z


public abstract UpdateDistributionResponse UpdateDistribution(
         UpdateDistributionRequest request
Type: Amazon.CloudFront.Model.UpdateDistributionRequest

Container for the necessary parameters to execute the UpdateDistribution service method.

Return Value
The response from the UpdateDistribution service method, as returned by CloudFront.


AccessDeniedException Access denied.
IllegalFieldLevelEncryptionConfigAssociationWithCacheBehaviorException The specified configuration for field-level encryption can't be associated with the specified cache behavior.
IllegalUpdateException Origin and CallerReference cannot be updated.
InconsistentQuantitiesException The value of Quantity and the size of Items don't match.
InvalidArgumentException The argument is invalid.
InvalidDefaultRootObjectException The default root object file name is too big or contains an invalid character.
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.
InvalidIfMatchVersionException The If-Match version is missing or not valid for the distribution.
InvalidLambdaFunctionAssociationException The specified Lambda function association is invalid.
InvalidOriginAccessIdentityException The origin access identity is not valid or doesn't exist.
InvalidRelativePathException The relative path is too big, is not URL-encoded, or does not begin with a slash (/).
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.
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.
NoSuchFieldLevelEncryptionConfigException The specified configuration for field-level encryption doesn't exist.
NoSuchOriginException No origin exists with the specified Origin Id.
PreconditionFailedException The precondition given in one or more of the request-header fields evaluated to false.
TooManyCacheBehaviorsException You cannot create more cache behaviors for the distribution.
TooManyCertificatesException You cannot create anymore custom SSL/TLS certificates.
TooManyCookieNamesInWhiteListException Your request contains more cookie names in the whitelist than are allowed per cache behavior.
TooManyDistributionCNAMEsException Your request contains more CNAMEs than are allowed per distribution.
TooManyDistributionsAssociatedToFieldLevelEncryptionConfigException The maximum number of distributions have been associated with the specified configuration for field-level encryption.
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.
TooManyOriginsException You cannot create more origins for the distribution.
TooManyTrustedSignersException Your request contains more trusted signers than are allowed per distribution.
TrustedSignerDoesNotExistException One or more of your trusted signers don't exist.

Version Information

.NET Framework:
Supported in: 4.5, 4.0, 3.5

Portable Class Library:
Supported in: Windows Store Apps
Supported in: Windows Phone 8.1
Supported in: Xamarin Android
Supported in: Xamarin iOS (Unified)
Supported in: Xamarin.Forms

See Also