Skip to content

Copies the staging distribution's configuration to its corresponding primary distribution

Description

Copies the staging distribution's configuration to its corresponding primary distribution. The primary distribution retains its Aliases (also known as alternate domain names or CNAMEs) and ContinuousDeploymentPolicyId value, but otherwise its configuration is overwritten to match the staging distribution.

You can use this operation in a continuous deployment workflow after you have tested configuration changes on the staging distribution. After using a continuous deployment policy to move a portion of your domain name's traffic to the staging distribution and verifying that it works as intended, you can use this operation to copy the staging distribution's configuration to the primary distribution. This action will disable the continuous deployment policy and move your domain's traffic back to the primary distribution.

This API operation requires the following IAM permissions:

Usage

cloudfront_update_distribution_with_staging_config(Id,
  StagingDistributionId, IfMatch)

Arguments

  • Id

    [required] The identifier of the primary distribution to which you are copying a staging distribution's configuration.

  • StagingDistributionId

    The identifier of the staging distribution whose configuration you are copying to the primary distribution.

  • IfMatch

    The current versions (ETag values) of both primary and staging distributions. Provide these in the following format:

    <primary ETag>, <staging ETag>

Value

A list with the following syntax:

list(
  Distribution = list(
    Id = "string",
    ARN = "string",
    Status = "string",
    LastModifiedTime = as.POSIXct(
      "2015-01-01"
    ),
    InProgressInvalidationBatches = 123,
    DomainName = "string",
    ActiveTrustedSigners = list(
      Enabled = TRUE|FALSE,
      Quantity = 123,
      Items = list(
        list(
          AwsAccountNumber = "string",
          KeyPairIds = list(
            Quantity = 123,
            Items = list(
              "string"
            )
          )
        )
      )
    ),
    ActiveTrustedKeyGroups = list(
      Enabled = TRUE|FALSE,
      Quantity = 123,
      Items = list(
        list(
          KeyGroupId = "string",
          KeyPairIds = list(
            Quantity = 123,
            Items = list(
              "string"
            )
          )
        )
      )
    ),
    DistributionConfig = list(
      CallerReference = "string",
      Aliases = list(
        Quantity = 123,
        Items = list(
          "string"
        )
      ),
      DefaultRootObject = "string",
      Origins = list(
        Quantity = 123,
        Items = list(
          list(
            Id = "string",
            DomainName = "string",
            OriginPath = "string",
            CustomHeaders = list(
              Quantity = 123,
              Items = list(
                list(
                  HeaderName = "string",
                  HeaderValue = "string"
                )
              )
            ),
            S3OriginConfig = list(
              OriginAccessIdentity = "string",
              OriginReadTimeout = 123
            ),
            CustomOriginConfig = list(
              HTTPPort = 123,
              HTTPSPort = 123,
              OriginProtocolPolicy = "http-only"|"match-viewer"|"https-only",
              OriginSslProtocols = list(
                Quantity = 123,
                Items = list(
                  "SSLv3"|"TLSv1"|"TLSv1.1"|"TLSv1.2"
                )
              ),
              OriginReadTimeout = 123,
              OriginKeepaliveTimeout = 123,
              IpAddressType = "ipv4"|"ipv6"|"dualstack",
              OriginMtlsConfig = list(
                ClientCertificateArn = "string"
              )
            ),
            VpcOriginConfig = list(
              VpcOriginId = "string",
              OwnerAccountId = "string",
              OriginReadTimeout = 123,
              OriginKeepaliveTimeout = 123
            ),
            ConnectionAttempts = 123,
            ConnectionTimeout = 123,
            ResponseCompletionTimeout = 123,
            OriginShield = list(
              Enabled = TRUE|FALSE,
              OriginShieldRegion = "string"
            ),
            OriginAccessControlId = "string"
          )
        )
      ),
      OriginGroups = list(
        Quantity = 123,
        Items = list(
          list(
            Id = "string",
            FailoverCriteria = list(
              StatusCodes = list(
                Quantity = 123,
                Items = list(
                  123
                )
              )
            ),
            Members = list(
              Quantity = 123,
              Items = list(
                list(
                  OriginId = "string"
                )
              )
            ),
            SelectionCriteria = "default"|"media-quality-based"
          )
        )
      ),
      DefaultCacheBehavior = list(
        TargetOriginId = "string",
        TrustedSigners = list(
          Enabled = TRUE|FALSE,
          Quantity = 123,
          Items = list(
            "string"
          )
        ),
        TrustedKeyGroups = list(
          Enabled = TRUE|FALSE,
          Quantity = 123,
          Items = list(
            "string"
          )
        ),
        ViewerProtocolPolicy = "allow-all"|"https-only"|"redirect-to-https",
        AllowedMethods = list(
          Quantity = 123,
          Items = list(
            "GET"|"HEAD"|"POST"|"PUT"|"PATCH"|"OPTIONS"|"DELETE"
          ),
          CachedMethods = list(
            Quantity = 123,
            Items = list(
              "GET"|"HEAD"|"POST"|"PUT"|"PATCH"|"OPTIONS"|"DELETE"
            )
          )
        ),
        SmoothStreaming = TRUE|FALSE,
        Compress = TRUE|FALSE,
        LambdaFunctionAssociations = list(
          Quantity = 123,
          Items = list(
            list(
              LambdaFunctionARN = "string",
              EventType = "viewer-request"|"viewer-response"|"origin-request"|"origin-response",
              IncludeBody = TRUE|FALSE
            )
          )
        ),
        FunctionAssociations = list(
          Quantity = 123,
          Items = list(
            list(
              FunctionARN = "string",
              EventType = "viewer-request"|"viewer-response"|"origin-request"|"origin-response"
            )
          )
        ),
        FieldLevelEncryptionId = "string",
        RealtimeLogConfigArn = "string",
        CachePolicyId = "string",
        OriginRequestPolicyId = "string",
        ResponseHeadersPolicyId = "string",
        GrpcConfig = list(
          Enabled = TRUE|FALSE
        ),
        ForwardedValues = list(
          QueryString = TRUE|FALSE,
          Cookies = list(
            Forward = "none"|"whitelist"|"all",
            WhitelistedNames = list(
              Quantity = 123,
              Items = list(
                "string"
              )
            )
          ),
          Headers = list(
            Quantity = 123,
            Items = list(
              "string"
            )
          ),
          QueryStringCacheKeys = list(
            Quantity = 123,
            Items = list(
              "string"
            )
          )
        ),
        MinTTL = 123,
        DefaultTTL = 123,
        MaxTTL = 123
      ),
      CacheBehaviors = list(
        Quantity = 123,
        Items = list(
          list(
            PathPattern = "string",
            TargetOriginId = "string",
            TrustedSigners = list(
              Enabled = TRUE|FALSE,
              Quantity = 123,
              Items = list(
                "string"
              )
            ),
            TrustedKeyGroups = list(
              Enabled = TRUE|FALSE,
              Quantity = 123,
              Items = list(
                "string"
              )
            ),
            ViewerProtocolPolicy = "allow-all"|"https-only"|"redirect-to-https",
            AllowedMethods = list(
              Quantity = 123,
              Items = list(
                "GET"|"HEAD"|"POST"|"PUT"|"PATCH"|"OPTIONS"|"DELETE"
              ),
              CachedMethods = list(
                Quantity = 123,
                Items = list(
                  "GET"|"HEAD"|"POST"|"PUT"|"PATCH"|"OPTIONS"|"DELETE"
                )
              )
            ),
            SmoothStreaming = TRUE|FALSE,
            Compress = TRUE|FALSE,
            LambdaFunctionAssociations = list(
              Quantity = 123,
              Items = list(
                list(
                  LambdaFunctionARN = "string",
                  EventType = "viewer-request"|"viewer-response"|"origin-request"|"origin-response",
                  IncludeBody = TRUE|FALSE
                )
              )
            ),
            FunctionAssociations = list(
              Quantity = 123,
              Items = list(
                list(
                  FunctionARN = "string",
                  EventType = "viewer-request"|"viewer-response"|"origin-request"|"origin-response"
                )
              )
            ),
            FieldLevelEncryptionId = "string",
            RealtimeLogConfigArn = "string",
            CachePolicyId = "string",
            OriginRequestPolicyId = "string",
            ResponseHeadersPolicyId = "string",
            GrpcConfig = list(
              Enabled = TRUE|FALSE
            ),
            ForwardedValues = list(
              QueryString = TRUE|FALSE,
              Cookies = list(
                Forward = "none"|"whitelist"|"all",
                WhitelistedNames = list(
                  Quantity = 123,
                  Items = list(
                    "string"
                  )
                )
              ),
              Headers = list(
                Quantity = 123,
                Items = list(
                  "string"
                )
              ),
              QueryStringCacheKeys = list(
                Quantity = 123,
                Items = list(
                  "string"
                )
              )
            ),
            MinTTL = 123,
            DefaultTTL = 123,
            MaxTTL = 123
          )
        )
      ),
      CustomErrorResponses = list(
        Quantity = 123,
        Items = list(
          list(
            ErrorCode = 123,
            ResponsePagePath = "string",
            ResponseCode = "string",
            ErrorCachingMinTTL = 123
          )
        )
      ),
      Comment = "string",
      Logging = list(
        Enabled = TRUE|FALSE,
        IncludeCookies = TRUE|FALSE,
        Bucket = "string",
        Prefix = "string"
      ),
      PriceClass = "PriceClass_100"|"PriceClass_200"|"PriceClass_All"|"None",
      Enabled = TRUE|FALSE,
      ViewerCertificate = list(
        CloudFrontDefaultCertificate = TRUE|FALSE,
        IAMCertificateId = "string",
        ACMCertificateArn = "string",
        SSLSupportMethod = "sni-only"|"vip"|"static-ip",
        MinimumProtocolVersion = "SSLv3"|"TLSv1"|"TLSv1_2016"|"TLSv1.1_2016"|"TLSv1.2_2018"|"TLSv1.2_2019"|"TLSv1.2_2021"|"TLSv1.3_2025"|"TLSv1.2_2025",
        Certificate = "string",
        CertificateSource = "cloudfront"|"iam"|"acm"
      ),
      Restrictions = list(
        GeoRestriction = list(
          RestrictionType = "blacklist"|"whitelist"|"none",
          Quantity = 123,
          Items = list(
            "string"
          )
        )
      ),
      WebACLId = "string",
      HttpVersion = "http1.1"|"http2"|"http3"|"http2and3",
      IsIPV6Enabled = TRUE|FALSE,
      ContinuousDeploymentPolicyId = "string",
      Staging = TRUE|FALSE,
      AnycastIpListId = "string",
      TenantConfig = list(
        ParameterDefinitions = list(
          list(
            Name = "string",
            Definition = list(
              StringSchema = list(
                Comment = "string",
                DefaultValue = "string",
                Required = TRUE|FALSE
              )
            )
          )
        )
      ),
      ConnectionMode = "direct"|"tenant-only",
      ViewerMtlsConfig = list(
        Mode = "required"|"optional"|"passthrough",
        TrustStoreConfig = list(
          TrustStoreId = "string",
          AdvertiseTrustStoreCaNames = TRUE|FALSE,
          IgnoreCertificateExpiry = TRUE|FALSE
        )
      ),
      ConnectionFunctionAssociation = list(
        Id = "string"
      ),
      CacheTagConfig = list(
        HeaderName = "string"
      )
    ),
    AliasICPRecordals = list(
      list(
        CNAME = "string",
        ICPRecordalStatus = "APPROVED"|"SUSPENDED"|"PENDING"
      )
    )
  ),
  ETag = "string"
)

Request syntax

svc$update_distribution_with_staging_config(
  Id = "string",
  StagingDistributionId = "string",
  IfMatch = "string"
)