1. Packages
  2. AWS Classic
  3. API Docs
  4. cloudfront
  5. Distribution

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.40.0 published on Wednesday, Jun 12, 2024 by Pulumi

aws.cloudfront.Distribution

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.40.0 published on Wednesday, Jun 12, 2024 by Pulumi

    Creates an Amazon CloudFront web distribution.

    For information about CloudFront distributions, see the Amazon CloudFront Developer Guide. For specific information about creating CloudFront web distributions, see the POST Distribution page in the Amazon CloudFront API Reference.

    NOTE: CloudFront distributions take about 15 minutes to reach a deployed state after creation or modification. During this time, deletes to resources will be blocked. If you need to delete a distribution that is enabled and you do not want to wait, you need to use the retain_on_delete flag.

    Example Usage

    S3 Origin

    The example below creates a CloudFront distribution with an S3 origin.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const b = new aws.s3.BucketV2("b", {
        bucket: "mybucket",
        tags: {
            Name: "My bucket",
        },
    });
    const bAcl = new aws.s3.BucketAclV2("b_acl", {
        bucket: b.id,
        acl: "private",
    });
    const s3OriginId = "myS3Origin";
    const s3Distribution = new aws.cloudfront.Distribution("s3_distribution", {
        origins: [{
            domainName: b.bucketRegionalDomainName,
            originAccessControlId: _default.id,
            originId: s3OriginId,
        }],
        enabled: true,
        isIpv6Enabled: true,
        comment: "Some comment",
        defaultRootObject: "index.html",
        loggingConfig: {
            includeCookies: false,
            bucket: "mylogs.s3.amazonaws.com",
            prefix: "myprefix",
        },
        aliases: [
            "mysite.example.com",
            "yoursite.example.com",
        ],
        defaultCacheBehavior: {
            allowedMethods: [
                "DELETE",
                "GET",
                "HEAD",
                "OPTIONS",
                "PATCH",
                "POST",
                "PUT",
            ],
            cachedMethods: [
                "GET",
                "HEAD",
            ],
            targetOriginId: s3OriginId,
            forwardedValues: {
                queryString: false,
                cookies: {
                    forward: "none",
                },
            },
            viewerProtocolPolicy: "allow-all",
            minTtl: 0,
            defaultTtl: 3600,
            maxTtl: 86400,
        },
        orderedCacheBehaviors: [
            {
                pathPattern: "/content/immutable/*",
                allowedMethods: [
                    "GET",
                    "HEAD",
                    "OPTIONS",
                ],
                cachedMethods: [
                    "GET",
                    "HEAD",
                    "OPTIONS",
                ],
                targetOriginId: s3OriginId,
                forwardedValues: {
                    queryString: false,
                    headers: ["Origin"],
                    cookies: {
                        forward: "none",
                    },
                },
                minTtl: 0,
                defaultTtl: 86400,
                maxTtl: 31536000,
                compress: true,
                viewerProtocolPolicy: "redirect-to-https",
            },
            {
                pathPattern: "/content/*",
                allowedMethods: [
                    "GET",
                    "HEAD",
                    "OPTIONS",
                ],
                cachedMethods: [
                    "GET",
                    "HEAD",
                ],
                targetOriginId: s3OriginId,
                forwardedValues: {
                    queryString: false,
                    cookies: {
                        forward: "none",
                    },
                },
                minTtl: 0,
                defaultTtl: 3600,
                maxTtl: 86400,
                compress: true,
                viewerProtocolPolicy: "redirect-to-https",
            },
        ],
        priceClass: "PriceClass_200",
        restrictions: {
            geoRestriction: {
                restrictionType: "whitelist",
                locations: [
                    "US",
                    "CA",
                    "GB",
                    "DE",
                ],
            },
        },
        tags: {
            Environment: "production",
        },
        viewerCertificate: {
            cloudfrontDefaultCertificate: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    b = aws.s3.BucketV2("b",
        bucket="mybucket",
        tags={
            "Name": "My bucket",
        })
    b_acl = aws.s3.BucketAclV2("b_acl",
        bucket=b.id,
        acl="private")
    s3_origin_id = "myS3Origin"
    s3_distribution = aws.cloudfront.Distribution("s3_distribution",
        origins=[aws.cloudfront.DistributionOriginArgs(
            domain_name=b.bucket_regional_domain_name,
            origin_access_control_id=default["id"],
            origin_id=s3_origin_id,
        )],
        enabled=True,
        is_ipv6_enabled=True,
        comment="Some comment",
        default_root_object="index.html",
        logging_config=aws.cloudfront.DistributionLoggingConfigArgs(
            include_cookies=False,
            bucket="mylogs.s3.amazonaws.com",
            prefix="myprefix",
        ),
        aliases=[
            "mysite.example.com",
            "yoursite.example.com",
        ],
        default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(
            allowed_methods=[
                "DELETE",
                "GET",
                "HEAD",
                "OPTIONS",
                "PATCH",
                "POST",
                "PUT",
            ],
            cached_methods=[
                "GET",
                "HEAD",
            ],
            target_origin_id=s3_origin_id,
            forwarded_values=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs(
                query_string=False,
                cookies=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs(
                    forward="none",
                ),
            ),
            viewer_protocol_policy="allow-all",
            min_ttl=0,
            default_ttl=3600,
            max_ttl=86400,
        ),
        ordered_cache_behaviors=[
            aws.cloudfront.DistributionOrderedCacheBehaviorArgs(
                path_pattern="/content/immutable/*",
                allowed_methods=[
                    "GET",
                    "HEAD",
                    "OPTIONS",
                ],
                cached_methods=[
                    "GET",
                    "HEAD",
                    "OPTIONS",
                ],
                target_origin_id=s3_origin_id,
                forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(
                    query_string=False,
                    headers=["Origin"],
                    cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(
                        forward="none",
                    ),
                ),
                min_ttl=0,
                default_ttl=86400,
                max_ttl=31536000,
                compress=True,
                viewer_protocol_policy="redirect-to-https",
            ),
            aws.cloudfront.DistributionOrderedCacheBehaviorArgs(
                path_pattern="/content/*",
                allowed_methods=[
                    "GET",
                    "HEAD",
                    "OPTIONS",
                ],
                cached_methods=[
                    "GET",
                    "HEAD",
                ],
                target_origin_id=s3_origin_id,
                forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(
                    query_string=False,
                    cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(
                        forward="none",
                    ),
                ),
                min_ttl=0,
                default_ttl=3600,
                max_ttl=86400,
                compress=True,
                viewer_protocol_policy="redirect-to-https",
            ),
        ],
        price_class="PriceClass_200",
        restrictions=aws.cloudfront.DistributionRestrictionsArgs(
            geo_restriction=aws.cloudfront.DistributionRestrictionsGeoRestrictionArgs(
                restriction_type="whitelist",
                locations=[
                    "US",
                    "CA",
                    "GB",
                    "DE",
                ],
            ),
        ),
        tags={
            "Environment": "production",
        },
        viewer_certificate=aws.cloudfront.DistributionViewerCertificateArgs(
            cloudfront_default_certificate=True,
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		b, err := s3.NewBucketV2(ctx, "b", &s3.BucketV2Args{
    			Bucket: pulumi.String("mybucket"),
    			Tags: pulumi.StringMap{
    				"Name": pulumi.String("My bucket"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = s3.NewBucketAclV2(ctx, "b_acl", &s3.BucketAclV2Args{
    			Bucket: b.ID(),
    			Acl:    pulumi.String("private"),
    		})
    		if err != nil {
    			return err
    		}
    		s3OriginId := "myS3Origin"
    		_, err = cloudfront.NewDistribution(ctx, "s3_distribution", &cloudfront.DistributionArgs{
    			Origins: cloudfront.DistributionOriginArray{
    				&cloudfront.DistributionOriginArgs{
    					DomainName:            b.BucketRegionalDomainName,
    					OriginAccessControlId: pulumi.Any(_default.Id),
    					OriginId:              pulumi.String(s3OriginId),
    				},
    			},
    			Enabled:           pulumi.Bool(true),
    			IsIpv6Enabled:     pulumi.Bool(true),
    			Comment:           pulumi.String("Some comment"),
    			DefaultRootObject: pulumi.String("index.html"),
    			LoggingConfig: &cloudfront.DistributionLoggingConfigArgs{
    				IncludeCookies: pulumi.Bool(false),
    				Bucket:         pulumi.String("mylogs.s3.amazonaws.com"),
    				Prefix:         pulumi.String("myprefix"),
    			},
    			Aliases: pulumi.StringArray{
    				pulumi.String("mysite.example.com"),
    				pulumi.String("yoursite.example.com"),
    			},
    			DefaultCacheBehavior: &cloudfront.DistributionDefaultCacheBehaviorArgs{
    				AllowedMethods: pulumi.StringArray{
    					pulumi.String("DELETE"),
    					pulumi.String("GET"),
    					pulumi.String("HEAD"),
    					pulumi.String("OPTIONS"),
    					pulumi.String("PATCH"),
    					pulumi.String("POST"),
    					pulumi.String("PUT"),
    				},
    				CachedMethods: pulumi.StringArray{
    					pulumi.String("GET"),
    					pulumi.String("HEAD"),
    				},
    				TargetOriginId: pulumi.String(s3OriginId),
    				ForwardedValues: &cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs{
    					QueryString: pulumi.Bool(false),
    					Cookies: &cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs{
    						Forward: pulumi.String("none"),
    					},
    				},
    				ViewerProtocolPolicy: pulumi.String("allow-all"),
    				MinTtl:               pulumi.Int(0),
    				DefaultTtl:           pulumi.Int(3600),
    				MaxTtl:               pulumi.Int(86400),
    			},
    			OrderedCacheBehaviors: cloudfront.DistributionOrderedCacheBehaviorArray{
    				&cloudfront.DistributionOrderedCacheBehaviorArgs{
    					PathPattern: pulumi.String("/content/immutable/*"),
    					AllowedMethods: pulumi.StringArray{
    						pulumi.String("GET"),
    						pulumi.String("HEAD"),
    						pulumi.String("OPTIONS"),
    					},
    					CachedMethods: pulumi.StringArray{
    						pulumi.String("GET"),
    						pulumi.String("HEAD"),
    						pulumi.String("OPTIONS"),
    					},
    					TargetOriginId: pulumi.String(s3OriginId),
    					ForwardedValues: &cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{
    						QueryString: pulumi.Bool(false),
    						Headers: pulumi.StringArray{
    							pulumi.String("Origin"),
    						},
    						Cookies: &cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{
    							Forward: pulumi.String("none"),
    						},
    					},
    					MinTtl:               pulumi.Int(0),
    					DefaultTtl:           pulumi.Int(86400),
    					MaxTtl:               pulumi.Int(31536000),
    					Compress:             pulumi.Bool(true),
    					ViewerProtocolPolicy: pulumi.String("redirect-to-https"),
    				},
    				&cloudfront.DistributionOrderedCacheBehaviorArgs{
    					PathPattern: pulumi.String("/content/*"),
    					AllowedMethods: pulumi.StringArray{
    						pulumi.String("GET"),
    						pulumi.String("HEAD"),
    						pulumi.String("OPTIONS"),
    					},
    					CachedMethods: pulumi.StringArray{
    						pulumi.String("GET"),
    						pulumi.String("HEAD"),
    					},
    					TargetOriginId: pulumi.String(s3OriginId),
    					ForwardedValues: &cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{
    						QueryString: pulumi.Bool(false),
    						Cookies: &cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{
    							Forward: pulumi.String("none"),
    						},
    					},
    					MinTtl:               pulumi.Int(0),
    					DefaultTtl:           pulumi.Int(3600),
    					MaxTtl:               pulumi.Int(86400),
    					Compress:             pulumi.Bool(true),
    					ViewerProtocolPolicy: pulumi.String("redirect-to-https"),
    				},
    			},
    			PriceClass: pulumi.String("PriceClass_200"),
    			Restrictions: &cloudfront.DistributionRestrictionsArgs{
    				GeoRestriction: &cloudfront.DistributionRestrictionsGeoRestrictionArgs{
    					RestrictionType: pulumi.String("whitelist"),
    					Locations: pulumi.StringArray{
    						pulumi.String("US"),
    						pulumi.String("CA"),
    						pulumi.String("GB"),
    						pulumi.String("DE"),
    					},
    				},
    			},
    			Tags: pulumi.StringMap{
    				"Environment": pulumi.String("production"),
    			},
    			ViewerCertificate: &cloudfront.DistributionViewerCertificateArgs{
    				CloudfrontDefaultCertificate: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var b = new Aws.S3.BucketV2("b", new()
        {
            Bucket = "mybucket",
            Tags = 
            {
                { "Name", "My bucket" },
            },
        });
    
        var bAcl = new Aws.S3.BucketAclV2("b_acl", new()
        {
            Bucket = b.Id,
            Acl = "private",
        });
    
        var s3OriginId = "myS3Origin";
    
        var s3Distribution = new Aws.CloudFront.Distribution("s3_distribution", new()
        {
            Origins = new[]
            {
                new Aws.CloudFront.Inputs.DistributionOriginArgs
                {
                    DomainName = b.BucketRegionalDomainName,
                    OriginAccessControlId = @default.Id,
                    OriginId = s3OriginId,
                },
            },
            Enabled = true,
            IsIpv6Enabled = true,
            Comment = "Some comment",
            DefaultRootObject = "index.html",
            LoggingConfig = new Aws.CloudFront.Inputs.DistributionLoggingConfigArgs
            {
                IncludeCookies = false,
                Bucket = "mylogs.s3.amazonaws.com",
                Prefix = "myprefix",
            },
            Aliases = new[]
            {
                "mysite.example.com",
                "yoursite.example.com",
            },
            DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs
            {
                AllowedMethods = new[]
                {
                    "DELETE",
                    "GET",
                    "HEAD",
                    "OPTIONS",
                    "PATCH",
                    "POST",
                    "PUT",
                },
                CachedMethods = new[]
                {
                    "GET",
                    "HEAD",
                },
                TargetOriginId = s3OriginId,
                ForwardedValues = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs
                {
                    QueryString = false,
                    Cookies = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs
                    {
                        Forward = "none",
                    },
                },
                ViewerProtocolPolicy = "allow-all",
                MinTtl = 0,
                DefaultTtl = 3600,
                MaxTtl = 86400,
            },
            OrderedCacheBehaviors = new[]
            {
                new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs
                {
                    PathPattern = "/content/immutable/*",
                    AllowedMethods = new[]
                    {
                        "GET",
                        "HEAD",
                        "OPTIONS",
                    },
                    CachedMethods = new[]
                    {
                        "GET",
                        "HEAD",
                        "OPTIONS",
                    },
                    TargetOriginId = s3OriginId,
                    ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs
                    {
                        QueryString = false,
                        Headers = new[]
                        {
                            "Origin",
                        },
                        Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs
                        {
                            Forward = "none",
                        },
                    },
                    MinTtl = 0,
                    DefaultTtl = 86400,
                    MaxTtl = 31536000,
                    Compress = true,
                    ViewerProtocolPolicy = "redirect-to-https",
                },
                new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs
                {
                    PathPattern = "/content/*",
                    AllowedMethods = new[]
                    {
                        "GET",
                        "HEAD",
                        "OPTIONS",
                    },
                    CachedMethods = new[]
                    {
                        "GET",
                        "HEAD",
                    },
                    TargetOriginId = s3OriginId,
                    ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs
                    {
                        QueryString = false,
                        Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs
                        {
                            Forward = "none",
                        },
                    },
                    MinTtl = 0,
                    DefaultTtl = 3600,
                    MaxTtl = 86400,
                    Compress = true,
                    ViewerProtocolPolicy = "redirect-to-https",
                },
            },
            PriceClass = "PriceClass_200",
            Restrictions = new Aws.CloudFront.Inputs.DistributionRestrictionsArgs
            {
                GeoRestriction = new Aws.CloudFront.Inputs.DistributionRestrictionsGeoRestrictionArgs
                {
                    RestrictionType = "whitelist",
                    Locations = new[]
                    {
                        "US",
                        "CA",
                        "GB",
                        "DE",
                    },
                },
            },
            Tags = 
            {
                { "Environment", "production" },
            },
            ViewerCertificate = new Aws.CloudFront.Inputs.DistributionViewerCertificateArgs
            {
                CloudfrontDefaultCertificate = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.s3.BucketV2;
    import com.pulumi.aws.s3.BucketV2Args;
    import com.pulumi.aws.s3.BucketAclV2;
    import com.pulumi.aws.s3.BucketAclV2Args;
    import com.pulumi.aws.cloudfront.Distribution;
    import com.pulumi.aws.cloudfront.DistributionArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionLoggingConfigArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsGeoRestrictionArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionViewerCertificateArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var b = new BucketV2("b", BucketV2Args.builder()
                .bucket("mybucket")
                .tags(Map.of("Name", "My bucket"))
                .build());
    
            var bAcl = new BucketAclV2("bAcl", BucketAclV2Args.builder()
                .bucket(b.id())
                .acl("private")
                .build());
    
            final var s3OriginId = "myS3Origin";
    
            var s3Distribution = new Distribution("s3Distribution", DistributionArgs.builder()
                .origins(DistributionOriginArgs.builder()
                    .domainName(b.bucketRegionalDomainName())
                    .originAccessControlId(default_.id())
                    .originId(s3OriginId)
                    .build())
                .enabled(true)
                .isIpv6Enabled(true)
                .comment("Some comment")
                .defaultRootObject("index.html")
                .loggingConfig(DistributionLoggingConfigArgs.builder()
                    .includeCookies(false)
                    .bucket("mylogs.s3.amazonaws.com")
                    .prefix("myprefix")
                    .build())
                .aliases(            
                    "mysite.example.com",
                    "yoursite.example.com")
                .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()
                    .allowedMethods(                
                        "DELETE",
                        "GET",
                        "HEAD",
                        "OPTIONS",
                        "PATCH",
                        "POST",
                        "PUT")
                    .cachedMethods(                
                        "GET",
                        "HEAD")
                    .targetOriginId(s3OriginId)
                    .forwardedValues(DistributionDefaultCacheBehaviorForwardedValuesArgs.builder()
                        .queryString(false)
                        .cookies(DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs.builder()
                            .forward("none")
                            .build())
                        .build())
                    .viewerProtocolPolicy("allow-all")
                    .minTtl(0)
                    .defaultTtl(3600)
                    .maxTtl(86400)
                    .build())
                .orderedCacheBehaviors(            
                    DistributionOrderedCacheBehaviorArgs.builder()
                        .pathPattern("/content/immutable/*")
                        .allowedMethods(                    
                            "GET",
                            "HEAD",
                            "OPTIONS")
                        .cachedMethods(                    
                            "GET",
                            "HEAD",
                            "OPTIONS")
                        .targetOriginId(s3OriginId)
                        .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()
                            .queryString(false)
                            .headers("Origin")
                            .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()
                                .forward("none")
                                .build())
                            .build())
                        .minTtl(0)
                        .defaultTtl(86400)
                        .maxTtl(31536000)
                        .compress(true)
                        .viewerProtocolPolicy("redirect-to-https")
                        .build(),
                    DistributionOrderedCacheBehaviorArgs.builder()
                        .pathPattern("/content/*")
                        .allowedMethods(                    
                            "GET",
                            "HEAD",
                            "OPTIONS")
                        .cachedMethods(                    
                            "GET",
                            "HEAD")
                        .targetOriginId(s3OriginId)
                        .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()
                            .queryString(false)
                            .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()
                                .forward("none")
                                .build())
                            .build())
                        .minTtl(0)
                        .defaultTtl(3600)
                        .maxTtl(86400)
                        .compress(true)
                        .viewerProtocolPolicy("redirect-to-https")
                        .build())
                .priceClass("PriceClass_200")
                .restrictions(DistributionRestrictionsArgs.builder()
                    .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder()
                        .restrictionType("whitelist")
                        .locations(                    
                            "US",
                            "CA",
                            "GB",
                            "DE")
                        .build())
                    .build())
                .tags(Map.of("Environment", "production"))
                .viewerCertificate(DistributionViewerCertificateArgs.builder()
                    .cloudfrontDefaultCertificate(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      b:
        type: aws:s3:BucketV2
        properties:
          bucket: mybucket
          tags:
            Name: My bucket
      bAcl:
        type: aws:s3:BucketAclV2
        name: b_acl
        properties:
          bucket: ${b.id}
          acl: private
      s3Distribution:
        type: aws:cloudfront:Distribution
        name: s3_distribution
        properties:
          origins:
            - domainName: ${b.bucketRegionalDomainName}
              originAccessControlId: ${default.id}
              originId: ${s3OriginId}
          enabled: true
          isIpv6Enabled: true
          comment: Some comment
          defaultRootObject: index.html
          loggingConfig:
            includeCookies: false
            bucket: mylogs.s3.amazonaws.com
            prefix: myprefix
          aliases:
            - mysite.example.com
            - yoursite.example.com
          defaultCacheBehavior:
            allowedMethods:
              - DELETE
              - GET
              - HEAD
              - OPTIONS
              - PATCH
              - POST
              - PUT
            cachedMethods:
              - GET
              - HEAD
            targetOriginId: ${s3OriginId}
            forwardedValues:
              queryString: false
              cookies:
                forward: none
            viewerProtocolPolicy: allow-all
            minTtl: 0
            defaultTtl: 3600
            maxTtl: 86400
          orderedCacheBehaviors:
            - pathPattern: /content/immutable/*
              allowedMethods:
                - GET
                - HEAD
                - OPTIONS
              cachedMethods:
                - GET
                - HEAD
                - OPTIONS
              targetOriginId: ${s3OriginId}
              forwardedValues:
                queryString: false
                headers:
                  - Origin
                cookies:
                  forward: none
              minTtl: 0
              defaultTtl: 86400
              maxTtl: 3.1536e+07
              compress: true
              viewerProtocolPolicy: redirect-to-https
            - pathPattern: /content/*
              allowedMethods:
                - GET
                - HEAD
                - OPTIONS
              cachedMethods:
                - GET
                - HEAD
              targetOriginId: ${s3OriginId}
              forwardedValues:
                queryString: false
                cookies:
                  forward: none
              minTtl: 0
              defaultTtl: 3600
              maxTtl: 86400
              compress: true
              viewerProtocolPolicy: redirect-to-https
          priceClass: PriceClass_200
          restrictions:
            geoRestriction:
              restrictionType: whitelist
              locations:
                - US
                - CA
                - GB
                - DE
          tags:
            Environment: production
          viewerCertificate:
            cloudfrontDefaultCertificate: true
    variables:
      s3OriginId: myS3Origin
    

    With Failover Routing

    The example below creates a CloudFront distribution with an origin group for failover routing.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const s3Distribution = new aws.cloudfront.Distribution("s3_distribution", {
        originGroups: [{
            originId: "groupS3",
            failoverCriteria: {
                statusCodes: [
                    403,
                    404,
                    500,
                    502,
                ],
            },
            members: [
                {
                    originId: "primaryS3",
                },
                {
                    originId: "failoverS3",
                },
            ],
        }],
        origins: [
            {
                domainName: primary.bucketRegionalDomainName,
                originId: "primaryS3",
                s3OriginConfig: {
                    originAccessIdentity: _default.cloudfrontAccessIdentityPath,
                },
            },
            {
                domainName: failover.bucketRegionalDomainName,
                originId: "failoverS3",
                s3OriginConfig: {
                    originAccessIdentity: _default.cloudfrontAccessIdentityPath,
                },
            },
        ],
        defaultCacheBehavior: {
            targetOriginId: "groupS3",
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    s3_distribution = aws.cloudfront.Distribution("s3_distribution",
        origin_groups=[aws.cloudfront.DistributionOriginGroupArgs(
            origin_id="groupS3",
            failover_criteria=aws.cloudfront.DistributionOriginGroupFailoverCriteriaArgs(
                status_codes=[
                    403,
                    404,
                    500,
                    502,
                ],
            ),
            members=[
                aws.cloudfront.DistributionOriginGroupMemberArgs(
                    origin_id="primaryS3",
                ),
                aws.cloudfront.DistributionOriginGroupMemberArgs(
                    origin_id="failoverS3",
                ),
            ],
        )],
        origins=[
            aws.cloudfront.DistributionOriginArgs(
                domain_name=primary["bucketRegionalDomainName"],
                origin_id="primaryS3",
                s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(
                    origin_access_identity=default["cloudfrontAccessIdentityPath"],
                ),
            ),
            aws.cloudfront.DistributionOriginArgs(
                domain_name=failover["bucketRegionalDomainName"],
                origin_id="failoverS3",
                s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(
                    origin_access_identity=default["cloudfrontAccessIdentityPath"],
                ),
            ),
        ],
        default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(
            target_origin_id="groupS3",
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := cloudfront.NewDistribution(ctx, "s3_distribution", &cloudfront.DistributionArgs{
    			OriginGroups: cloudfront.DistributionOriginGroupArray{
    				&cloudfront.DistributionOriginGroupArgs{
    					OriginId: pulumi.String("groupS3"),
    					FailoverCriteria: &cloudfront.DistributionOriginGroupFailoverCriteriaArgs{
    						StatusCodes: pulumi.IntArray{
    							pulumi.Int(403),
    							pulumi.Int(404),
    							pulumi.Int(500),
    							pulumi.Int(502),
    						},
    					},
    					Members: cloudfront.DistributionOriginGroupMemberArray{
    						&cloudfront.DistributionOriginGroupMemberArgs{
    							OriginId: pulumi.String("primaryS3"),
    						},
    						&cloudfront.DistributionOriginGroupMemberArgs{
    							OriginId: pulumi.String("failoverS3"),
    						},
    					},
    				},
    			},
    			Origins: cloudfront.DistributionOriginArray{
    				&cloudfront.DistributionOriginArgs{
    					DomainName: pulumi.Any(primary.BucketRegionalDomainName),
    					OriginId:   pulumi.String("primaryS3"),
    					S3OriginConfig: &cloudfront.DistributionOriginS3OriginConfigArgs{
    						OriginAccessIdentity: pulumi.Any(_default.CloudfrontAccessIdentityPath),
    					},
    				},
    				&cloudfront.DistributionOriginArgs{
    					DomainName: pulumi.Any(failover.BucketRegionalDomainName),
    					OriginId:   pulumi.String("failoverS3"),
    					S3OriginConfig: &cloudfront.DistributionOriginS3OriginConfigArgs{
    						OriginAccessIdentity: pulumi.Any(_default.CloudfrontAccessIdentityPath),
    					},
    				},
    			},
    			DefaultCacheBehavior: &cloudfront.DistributionDefaultCacheBehaviorArgs{
    				TargetOriginId: pulumi.String("groupS3"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var s3Distribution = new Aws.CloudFront.Distribution("s3_distribution", new()
        {
            OriginGroups = new[]
            {
                new Aws.CloudFront.Inputs.DistributionOriginGroupArgs
                {
                    OriginId = "groupS3",
                    FailoverCriteria = new Aws.CloudFront.Inputs.DistributionOriginGroupFailoverCriteriaArgs
                    {
                        StatusCodes = new[]
                        {
                            403,
                            404,
                            500,
                            502,
                        },
                    },
                    Members = new[]
                    {
                        new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs
                        {
                            OriginId = "primaryS3",
                        },
                        new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs
                        {
                            OriginId = "failoverS3",
                        },
                    },
                },
            },
            Origins = new[]
            {
                new Aws.CloudFront.Inputs.DistributionOriginArgs
                {
                    DomainName = primary.BucketRegionalDomainName,
                    OriginId = "primaryS3",
                    S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs
                    {
                        OriginAccessIdentity = @default.CloudfrontAccessIdentityPath,
                    },
                },
                new Aws.CloudFront.Inputs.DistributionOriginArgs
                {
                    DomainName = failover.BucketRegionalDomainName,
                    OriginId = "failoverS3",
                    S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs
                    {
                        OriginAccessIdentity = @default.CloudfrontAccessIdentityPath,
                    },
                },
            },
            DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs
            {
                TargetOriginId = "groupS3",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.cloudfront.Distribution;
    import com.pulumi.aws.cloudfront.DistributionArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupFailoverCriteriaArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var s3Distribution = new Distribution("s3Distribution", DistributionArgs.builder()
                .originGroups(DistributionOriginGroupArgs.builder()
                    .originId("groupS3")
                    .failoverCriteria(DistributionOriginGroupFailoverCriteriaArgs.builder()
                        .statusCodes(                    
                            403,
                            404,
                            500,
                            502)
                        .build())
                    .members(                
                        DistributionOriginGroupMemberArgs.builder()
                            .originId("primaryS3")
                            .build(),
                        DistributionOriginGroupMemberArgs.builder()
                            .originId("failoverS3")
                            .build())
                    .build())
                .origins(            
                    DistributionOriginArgs.builder()
                        .domainName(primary.bucketRegionalDomainName())
                        .originId("primaryS3")
                        .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()
                            .originAccessIdentity(default_.cloudfrontAccessIdentityPath())
                            .build())
                        .build(),
                    DistributionOriginArgs.builder()
                        .domainName(failover.bucketRegionalDomainName())
                        .originId("failoverS3")
                        .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()
                            .originAccessIdentity(default_.cloudfrontAccessIdentityPath())
                            .build())
                        .build())
                .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()
                    .targetOriginId("groupS3")
                    .build())
                .build());
    
        }
    }
    
    resources:
      s3Distribution:
        type: aws:cloudfront:Distribution
        name: s3_distribution
        properties:
          originGroups:
            - originId: groupS3
              failoverCriteria:
                statusCodes:
                  - 403
                  - 404
                  - 500
                  - 502
              members:
                - originId: primaryS3
                - originId: failoverS3
          origins:
            - domainName: ${primary.bucketRegionalDomainName}
              originId: primaryS3
              s3OriginConfig:
                originAccessIdentity: ${default.cloudfrontAccessIdentityPath}
            - domainName: ${failover.bucketRegionalDomainName}
              originId: failoverS3
              s3OriginConfig:
                originAccessIdentity: ${default.cloudfrontAccessIdentityPath}
          defaultCacheBehavior:
            targetOriginId: groupS3
    

    With Managed Caching Policy

    The example below creates a CloudFront distribution with an AWS managed caching policy.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const s3OriginId = "myS3Origin";
    const s3Distribution = new aws.cloudfront.Distribution("s3_distribution", {
        origins: [{
            domainName: primary.bucketRegionalDomainName,
            originId: "myS3Origin",
            s3OriginConfig: {
                originAccessIdentity: _default.cloudfrontAccessIdentityPath,
            },
        }],
        enabled: true,
        isIpv6Enabled: true,
        comment: "Some comment",
        defaultRootObject: "index.html",
        defaultCacheBehavior: {
            cachePolicyId: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
            allowedMethods: [
                "GET",
                "HEAD",
                "OPTIONS",
            ],
            targetOriginId: s3OriginId,
        },
        restrictions: {
            geoRestriction: {
                restrictionType: "whitelist",
                locations: [
                    "US",
                    "CA",
                    "GB",
                    "DE",
                ],
            },
        },
        viewerCertificate: {
            cloudfrontDefaultCertificate: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    s3_origin_id = "myS3Origin"
    s3_distribution = aws.cloudfront.Distribution("s3_distribution",
        origins=[aws.cloudfront.DistributionOriginArgs(
            domain_name=primary["bucketRegionalDomainName"],
            origin_id="myS3Origin",
            s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(
                origin_access_identity=default["cloudfrontAccessIdentityPath"],
            ),
        )],
        enabled=True,
        is_ipv6_enabled=True,
        comment="Some comment",
        default_root_object="index.html",
        default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(
            cache_policy_id="4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
            allowed_methods=[
                "GET",
                "HEAD",
                "OPTIONS",
            ],
            target_origin_id=s3_origin_id,
        ),
        restrictions=aws.cloudfront.DistributionRestrictionsArgs(
            geo_restriction=aws.cloudfront.DistributionRestrictionsGeoRestrictionArgs(
                restriction_type="whitelist",
                locations=[
                    "US",
                    "CA",
                    "GB",
                    "DE",
                ],
            ),
        ),
        viewer_certificate=aws.cloudfront.DistributionViewerCertificateArgs(
            cloudfront_default_certificate=True,
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		s3OriginId := "myS3Origin"
    		_, err := cloudfront.NewDistribution(ctx, "s3_distribution", &cloudfront.DistributionArgs{
    			Origins: cloudfront.DistributionOriginArray{
    				&cloudfront.DistributionOriginArgs{
    					DomainName: pulumi.Any(primary.BucketRegionalDomainName),
    					OriginId:   pulumi.String("myS3Origin"),
    					S3OriginConfig: &cloudfront.DistributionOriginS3OriginConfigArgs{
    						OriginAccessIdentity: pulumi.Any(_default.CloudfrontAccessIdentityPath),
    					},
    				},
    			},
    			Enabled:           pulumi.Bool(true),
    			IsIpv6Enabled:     pulumi.Bool(true),
    			Comment:           pulumi.String("Some comment"),
    			DefaultRootObject: pulumi.String("index.html"),
    			DefaultCacheBehavior: &cloudfront.DistributionDefaultCacheBehaviorArgs{
    				CachePolicyId: pulumi.String("4135ea2d-6df8-44a3-9df3-4b5a84be39ad"),
    				AllowedMethods: pulumi.StringArray{
    					pulumi.String("GET"),
    					pulumi.String("HEAD"),
    					pulumi.String("OPTIONS"),
    				},
    				TargetOriginId: pulumi.String(s3OriginId),
    			},
    			Restrictions: &cloudfront.DistributionRestrictionsArgs{
    				GeoRestriction: &cloudfront.DistributionRestrictionsGeoRestrictionArgs{
    					RestrictionType: pulumi.String("whitelist"),
    					Locations: pulumi.StringArray{
    						pulumi.String("US"),
    						pulumi.String("CA"),
    						pulumi.String("GB"),
    						pulumi.String("DE"),
    					},
    				},
    			},
    			ViewerCertificate: &cloudfront.DistributionViewerCertificateArgs{
    				CloudfrontDefaultCertificate: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var s3OriginId = "myS3Origin";
    
        var s3Distribution = new Aws.CloudFront.Distribution("s3_distribution", new()
        {
            Origins = new[]
            {
                new Aws.CloudFront.Inputs.DistributionOriginArgs
                {
                    DomainName = primary.BucketRegionalDomainName,
                    OriginId = "myS3Origin",
                    S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs
                    {
                        OriginAccessIdentity = @default.CloudfrontAccessIdentityPath,
                    },
                },
            },
            Enabled = true,
            IsIpv6Enabled = true,
            Comment = "Some comment",
            DefaultRootObject = "index.html",
            DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs
            {
                CachePolicyId = "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
                AllowedMethods = new[]
                {
                    "GET",
                    "HEAD",
                    "OPTIONS",
                },
                TargetOriginId = s3OriginId,
            },
            Restrictions = new Aws.CloudFront.Inputs.DistributionRestrictionsArgs
            {
                GeoRestriction = new Aws.CloudFront.Inputs.DistributionRestrictionsGeoRestrictionArgs
                {
                    RestrictionType = "whitelist",
                    Locations = new[]
                    {
                        "US",
                        "CA",
                        "GB",
                        "DE",
                    },
                },
            },
            ViewerCertificate = new Aws.CloudFront.Inputs.DistributionViewerCertificateArgs
            {
                CloudfrontDefaultCertificate = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.cloudfront.Distribution;
    import com.pulumi.aws.cloudfront.DistributionArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsGeoRestrictionArgs;
    import com.pulumi.aws.cloudfront.inputs.DistributionViewerCertificateArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var s3OriginId = "myS3Origin";
    
            var s3Distribution = new Distribution("s3Distribution", DistributionArgs.builder()
                .origins(DistributionOriginArgs.builder()
                    .domainName(primary.bucketRegionalDomainName())
                    .originId("myS3Origin")
                    .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()
                        .originAccessIdentity(default_.cloudfrontAccessIdentityPath())
                        .build())
                    .build())
                .enabled(true)
                .isIpv6Enabled(true)
                .comment("Some comment")
                .defaultRootObject("index.html")
                .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()
                    .cachePolicyId("4135ea2d-6df8-44a3-9df3-4b5a84be39ad")
                    .allowedMethods(                
                        "GET",
                        "HEAD",
                        "OPTIONS")
                    .targetOriginId(s3OriginId)
                    .build())
                .restrictions(DistributionRestrictionsArgs.builder()
                    .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder()
                        .restrictionType("whitelist")
                        .locations(                    
                            "US",
                            "CA",
                            "GB",
                            "DE")
                        .build())
                    .build())
                .viewerCertificate(DistributionViewerCertificateArgs.builder()
                    .cloudfrontDefaultCertificate(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      s3Distribution:
        type: aws:cloudfront:Distribution
        name: s3_distribution
        properties:
          origins:
            - domainName: ${primary.bucketRegionalDomainName}
              originId: myS3Origin
              s3OriginConfig:
                originAccessIdentity: ${default.cloudfrontAccessIdentityPath}
          enabled: true
          isIpv6Enabled: true
          comment: Some comment
          defaultRootObject: index.html
          defaultCacheBehavior:
            cachePolicyId: 4135ea2d-6df8-44a3-9df3-4b5a84be39ad
            allowedMethods:
              - GET
              - HEAD
              - OPTIONS
            targetOriginId: ${s3OriginId}
          restrictions:
            geoRestriction:
              restrictionType: whitelist
              locations:
                - US
                - CA
                - GB
                - DE
          viewerCertificate:
            cloudfrontDefaultCertificate: true
    variables:
      s3OriginId: myS3Origin
    

    Create Distribution Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Distribution(name: string, args: DistributionArgs, opts?: CustomResourceOptions);
    @overload
    def Distribution(resource_name: str,
                     args: DistributionArgs,
                     opts: Optional[ResourceOptions] = None)
    
    @overload
    def Distribution(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     enabled: Optional[bool] = None,
                     viewer_certificate: Optional[DistributionViewerCertificateArgs] = None,
                     restrictions: Optional[DistributionRestrictionsArgs] = None,
                     origins: Optional[Sequence[DistributionOriginArgs]] = None,
                     default_cache_behavior: Optional[DistributionDefaultCacheBehaviorArgs] = None,
                     ordered_cache_behaviors: Optional[Sequence[DistributionOrderedCacheBehaviorArgs]] = None,
                     custom_error_responses: Optional[Sequence[DistributionCustomErrorResponseArgs]] = None,
                     http_version: Optional[str] = None,
                     is_ipv6_enabled: Optional[bool] = None,
                     logging_config: Optional[DistributionLoggingConfigArgs] = None,
                     aliases: Optional[Sequence[str]] = None,
                     origin_groups: Optional[Sequence[DistributionOriginGroupArgs]] = None,
                     default_root_object: Optional[str] = None,
                     price_class: Optional[str] = None,
                     continuous_deployment_policy_id: Optional[str] = None,
                     retain_on_delete: Optional[bool] = None,
                     staging: Optional[bool] = None,
                     tags: Optional[Mapping[str, str]] = None,
                     comment: Optional[str] = None,
                     wait_for_deployment: Optional[bool] = None,
                     web_acl_id: Optional[str] = None)
    func NewDistribution(ctx *Context, name string, args DistributionArgs, opts ...ResourceOption) (*Distribution, error)
    public Distribution(string name, DistributionArgs args, CustomResourceOptions? opts = null)
    public Distribution(String name, DistributionArgs args)
    public Distribution(String name, DistributionArgs args, CustomResourceOptions options)
    
    type: aws:cloudfront:Distribution
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args DistributionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args DistributionArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args DistributionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args DistributionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args DistributionArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var distributionResource = new Aws.CloudFront.Distribution("distributionResource", new()
    {
        Enabled = false,
        ViewerCertificate = new Aws.CloudFront.Inputs.DistributionViewerCertificateArgs
        {
            AcmCertificateArn = "string",
            CloudfrontDefaultCertificate = false,
            IamCertificateId = "string",
            MinimumProtocolVersion = "string",
            SslSupportMethod = "string",
        },
        Restrictions = new Aws.CloudFront.Inputs.DistributionRestrictionsArgs
        {
            GeoRestriction = new Aws.CloudFront.Inputs.DistributionRestrictionsGeoRestrictionArgs
            {
                RestrictionType = "string",
                Locations = new[]
                {
                    "string",
                },
            },
        },
        Origins = new[]
        {
            new Aws.CloudFront.Inputs.DistributionOriginArgs
            {
                DomainName = "string",
                OriginId = "string",
                ConnectionAttempts = 0,
                ConnectionTimeout = 0,
                CustomHeaders = new[]
                {
                    new Aws.CloudFront.Inputs.DistributionOriginCustomHeaderArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                CustomOriginConfig = new Aws.CloudFront.Inputs.DistributionOriginCustomOriginConfigArgs
                {
                    HttpPort = 0,
                    HttpsPort = 0,
                    OriginProtocolPolicy = "string",
                    OriginSslProtocols = new[]
                    {
                        "string",
                    },
                    OriginKeepaliveTimeout = 0,
                    OriginReadTimeout = 0,
                },
                OriginAccessControlId = "string",
                OriginPath = "string",
                OriginShield = new Aws.CloudFront.Inputs.DistributionOriginOriginShieldArgs
                {
                    Enabled = false,
                    OriginShieldRegion = "string",
                },
                S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs
                {
                    OriginAccessIdentity = "string",
                },
            },
        },
        DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs
        {
            AllowedMethods = new[]
            {
                "string",
            },
            ViewerProtocolPolicy = "string",
            CachedMethods = new[]
            {
                "string",
            },
            TargetOriginId = "string",
            LambdaFunctionAssociations = new[]
            {
                new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs
                {
                    EventType = "string",
                    LambdaArn = "string",
                    IncludeBody = false,
                },
            },
            OriginRequestPolicyId = "string",
            ForwardedValues = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs
            {
                Cookies = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs
                {
                    Forward = "string",
                    WhitelistedNames = new[]
                    {
                        "string",
                    },
                },
                QueryString = false,
                Headers = new[]
                {
                    "string",
                },
                QueryStringCacheKeys = new[]
                {
                    "string",
                },
            },
            FunctionAssociations = new[]
            {
                new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorFunctionAssociationArgs
                {
                    EventType = "string",
                    FunctionArn = "string",
                },
            },
            DefaultTtl = 0,
            MaxTtl = 0,
            MinTtl = 0,
            FieldLevelEncryptionId = "string",
            RealtimeLogConfigArn = "string",
            ResponseHeadersPolicyId = "string",
            SmoothStreaming = false,
            Compress = false,
            TrustedKeyGroups = new[]
            {
                "string",
            },
            TrustedSigners = new[]
            {
                "string",
            },
            CachePolicyId = "string",
        },
        OrderedCacheBehaviors = new[]
        {
            new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs
            {
                AllowedMethods = new[]
                {
                    "string",
                },
                ViewerProtocolPolicy = "string",
                CachedMethods = new[]
                {
                    "string",
                },
                TargetOriginId = "string",
                PathPattern = "string",
                MinTtl = 0,
                DefaultTtl = 0,
                FunctionAssociations = new[]
                {
                    new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorFunctionAssociationArgs
                    {
                        EventType = "string",
                        FunctionArn = "string",
                    },
                },
                LambdaFunctionAssociations = new[]
                {
                    new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs
                    {
                        EventType = "string",
                        LambdaArn = "string",
                        IncludeBody = false,
                    },
                },
                MaxTtl = 0,
                FieldLevelEncryptionId = "string",
                OriginRequestPolicyId = "string",
                ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs
                {
                    Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs
                    {
                        Forward = "string",
                        WhitelistedNames = new[]
                        {
                            "string",
                        },
                    },
                    QueryString = false,
                    Headers = new[]
                    {
                        "string",
                    },
                    QueryStringCacheKeys = new[]
                    {
                        "string",
                    },
                },
                RealtimeLogConfigArn = "string",
                ResponseHeadersPolicyId = "string",
                SmoothStreaming = false,
                Compress = false,
                TrustedKeyGroups = new[]
                {
                    "string",
                },
                TrustedSigners = new[]
                {
                    "string",
                },
                CachePolicyId = "string",
            },
        },
        CustomErrorResponses = new[]
        {
            new Aws.CloudFront.Inputs.DistributionCustomErrorResponseArgs
            {
                ErrorCode = 0,
                ErrorCachingMinTtl = 0,
                ResponseCode = 0,
                ResponsePagePath = "string",
            },
        },
        HttpVersion = "string",
        IsIpv6Enabled = false,
        LoggingConfig = new Aws.CloudFront.Inputs.DistributionLoggingConfigArgs
        {
            Bucket = "string",
            IncludeCookies = false,
            Prefix = "string",
        },
        Aliases = new[]
        {
            "string",
        },
        OriginGroups = new[]
        {
            new Aws.CloudFront.Inputs.DistributionOriginGroupArgs
            {
                FailoverCriteria = new Aws.CloudFront.Inputs.DistributionOriginGroupFailoverCriteriaArgs
                {
                    StatusCodes = new[]
                    {
                        0,
                    },
                },
                Members = new[]
                {
                    new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs
                    {
                        OriginId = "string",
                    },
                },
                OriginId = "string",
            },
        },
        DefaultRootObject = "string",
        PriceClass = "string",
        ContinuousDeploymentPolicyId = "string",
        RetainOnDelete = false,
        Staging = false,
        Tags = 
        {
            { "string", "string" },
        },
        Comment = "string",
        WaitForDeployment = false,
        WebAclId = "string",
    });
    
    example, err := cloudfront.NewDistribution(ctx, "distributionResource", &cloudfront.DistributionArgs{
    	Enabled: pulumi.Bool(false),
    	ViewerCertificate: &cloudfront.DistributionViewerCertificateArgs{
    		AcmCertificateArn:            pulumi.String("string"),
    		CloudfrontDefaultCertificate: pulumi.Bool(false),
    		IamCertificateId:             pulumi.String("string"),
    		MinimumProtocolVersion:       pulumi.String("string"),
    		SslSupportMethod:             pulumi.String("string"),
    	},
    	Restrictions: &cloudfront.DistributionRestrictionsArgs{
    		GeoRestriction: &cloudfront.DistributionRestrictionsGeoRestrictionArgs{
    			RestrictionType: pulumi.String("string"),
    			Locations: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	Origins: cloudfront.DistributionOriginArray{
    		&cloudfront.DistributionOriginArgs{
    			DomainName:         pulumi.String("string"),
    			OriginId:           pulumi.String("string"),
    			ConnectionAttempts: pulumi.Int(0),
    			ConnectionTimeout:  pulumi.Int(0),
    			CustomHeaders: cloudfront.DistributionOriginCustomHeaderArray{
    				&cloudfront.DistributionOriginCustomHeaderArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			CustomOriginConfig: &cloudfront.DistributionOriginCustomOriginConfigArgs{
    				HttpPort:             pulumi.Int(0),
    				HttpsPort:            pulumi.Int(0),
    				OriginProtocolPolicy: pulumi.String("string"),
    				OriginSslProtocols: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				OriginKeepaliveTimeout: pulumi.Int(0),
    				OriginReadTimeout:      pulumi.Int(0),
    			},
    			OriginAccessControlId: pulumi.String("string"),
    			OriginPath:            pulumi.String("string"),
    			OriginShield: &cloudfront.DistributionOriginOriginShieldArgs{
    				Enabled:            pulumi.Bool(false),
    				OriginShieldRegion: pulumi.String("string"),
    			},
    			S3OriginConfig: &cloudfront.DistributionOriginS3OriginConfigArgs{
    				OriginAccessIdentity: pulumi.String("string"),
    			},
    		},
    	},
    	DefaultCacheBehavior: &cloudfront.DistributionDefaultCacheBehaviorArgs{
    		AllowedMethods: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		ViewerProtocolPolicy: pulumi.String("string"),
    		CachedMethods: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		TargetOriginId: pulumi.String("string"),
    		LambdaFunctionAssociations: cloudfront.DistributionDefaultCacheBehaviorLambdaFunctionAssociationArray{
    			&cloudfront.DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs{
    				EventType:   pulumi.String("string"),
    				LambdaArn:   pulumi.String("string"),
    				IncludeBody: pulumi.Bool(false),
    			},
    		},
    		OriginRequestPolicyId: pulumi.String("string"),
    		ForwardedValues: &cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs{
    			Cookies: &cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs{
    				Forward: pulumi.String("string"),
    				WhitelistedNames: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    			QueryString: pulumi.Bool(false),
    			Headers: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			QueryStringCacheKeys: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		FunctionAssociations: cloudfront.DistributionDefaultCacheBehaviorFunctionAssociationArray{
    			&cloudfront.DistributionDefaultCacheBehaviorFunctionAssociationArgs{
    				EventType:   pulumi.String("string"),
    				FunctionArn: pulumi.String("string"),
    			},
    		},
    		DefaultTtl:              pulumi.Int(0),
    		MaxTtl:                  pulumi.Int(0),
    		MinTtl:                  pulumi.Int(0),
    		FieldLevelEncryptionId:  pulumi.String("string"),
    		RealtimeLogConfigArn:    pulumi.String("string"),
    		ResponseHeadersPolicyId: pulumi.String("string"),
    		SmoothStreaming:         pulumi.Bool(false),
    		Compress:                pulumi.Bool(false),
    		TrustedKeyGroups: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		TrustedSigners: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		CachePolicyId: pulumi.String("string"),
    	},
    	OrderedCacheBehaviors: cloudfront.DistributionOrderedCacheBehaviorArray{
    		&cloudfront.DistributionOrderedCacheBehaviorArgs{
    			AllowedMethods: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ViewerProtocolPolicy: pulumi.String("string"),
    			CachedMethods: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			TargetOriginId: pulumi.String("string"),
    			PathPattern:    pulumi.String("string"),
    			MinTtl:         pulumi.Int(0),
    			DefaultTtl:     pulumi.Int(0),
    			FunctionAssociations: cloudfront.DistributionOrderedCacheBehaviorFunctionAssociationArray{
    				&cloudfront.DistributionOrderedCacheBehaviorFunctionAssociationArgs{
    					EventType:   pulumi.String("string"),
    					FunctionArn: pulumi.String("string"),
    				},
    			},
    			LambdaFunctionAssociations: cloudfront.DistributionOrderedCacheBehaviorLambdaFunctionAssociationArray{
    				&cloudfront.DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs{
    					EventType:   pulumi.String("string"),
    					LambdaArn:   pulumi.String("string"),
    					IncludeBody: pulumi.Bool(false),
    				},
    			},
    			MaxTtl:                 pulumi.Int(0),
    			FieldLevelEncryptionId: pulumi.String("string"),
    			OriginRequestPolicyId:  pulumi.String("string"),
    			ForwardedValues: &cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{
    				Cookies: &cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{
    					Forward: pulumi.String("string"),
    					WhitelistedNames: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				QueryString: pulumi.Bool(false),
    				Headers: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				QueryStringCacheKeys: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    			RealtimeLogConfigArn:    pulumi.String("string"),
    			ResponseHeadersPolicyId: pulumi.String("string"),
    			SmoothStreaming:         pulumi.Bool(false),
    			Compress:                pulumi.Bool(false),
    			TrustedKeyGroups: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			TrustedSigners: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			CachePolicyId: pulumi.String("string"),
    		},
    	},
    	CustomErrorResponses: cloudfront.DistributionCustomErrorResponseArray{
    		&cloudfront.DistributionCustomErrorResponseArgs{
    			ErrorCode:          pulumi.Int(0),
    			ErrorCachingMinTtl: pulumi.Int(0),
    			ResponseCode:       pulumi.Int(0),
    			ResponsePagePath:   pulumi.String("string"),
    		},
    	},
    	HttpVersion:   pulumi.String("string"),
    	IsIpv6Enabled: pulumi.Bool(false),
    	LoggingConfig: &cloudfront.DistributionLoggingConfigArgs{
    		Bucket:         pulumi.String("string"),
    		IncludeCookies: pulumi.Bool(false),
    		Prefix:         pulumi.String("string"),
    	},
    	Aliases: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	OriginGroups: cloudfront.DistributionOriginGroupArray{
    		&cloudfront.DistributionOriginGroupArgs{
    			FailoverCriteria: &cloudfront.DistributionOriginGroupFailoverCriteriaArgs{
    				StatusCodes: pulumi.IntArray{
    					pulumi.Int(0),
    				},
    			},
    			Members: cloudfront.DistributionOriginGroupMemberArray{
    				&cloudfront.DistributionOriginGroupMemberArgs{
    					OriginId: pulumi.String("string"),
    				},
    			},
    			OriginId: pulumi.String("string"),
    		},
    	},
    	DefaultRootObject:            pulumi.String("string"),
    	PriceClass:                   pulumi.String("string"),
    	ContinuousDeploymentPolicyId: pulumi.String("string"),
    	RetainOnDelete:               pulumi.Bool(false),
    	Staging:                      pulumi.Bool(false),
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Comment:           pulumi.String("string"),
    	WaitForDeployment: pulumi.Bool(false),
    	WebAclId:          pulumi.String("string"),
    })
    
    var distributionResource = new Distribution("distributionResource", DistributionArgs.builder()
        .enabled(false)
        .viewerCertificate(DistributionViewerCertificateArgs.builder()
            .acmCertificateArn("string")
            .cloudfrontDefaultCertificate(false)
            .iamCertificateId("string")
            .minimumProtocolVersion("string")
            .sslSupportMethod("string")
            .build())
        .restrictions(DistributionRestrictionsArgs.builder()
            .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder()
                .restrictionType("string")
                .locations("string")
                .build())
            .build())
        .origins(DistributionOriginArgs.builder()
            .domainName("string")
            .originId("string")
            .connectionAttempts(0)
            .connectionTimeout(0)
            .customHeaders(DistributionOriginCustomHeaderArgs.builder()
                .name("string")
                .value("string")
                .build())
            .customOriginConfig(DistributionOriginCustomOriginConfigArgs.builder()
                .httpPort(0)
                .httpsPort(0)
                .originProtocolPolicy("string")
                .originSslProtocols("string")
                .originKeepaliveTimeout(0)
                .originReadTimeout(0)
                .build())
            .originAccessControlId("string")
            .originPath("string")
            .originShield(DistributionOriginOriginShieldArgs.builder()
                .enabled(false)
                .originShieldRegion("string")
                .build())
            .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()
                .originAccessIdentity("string")
                .build())
            .build())
        .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()
            .allowedMethods("string")
            .viewerProtocolPolicy("string")
            .cachedMethods("string")
            .targetOriginId("string")
            .lambdaFunctionAssociations(DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs.builder()
                .eventType("string")
                .lambdaArn("string")
                .includeBody(false)
                .build())
            .originRequestPolicyId("string")
            .forwardedValues(DistributionDefaultCacheBehaviorForwardedValuesArgs.builder()
                .cookies(DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs.builder()
                    .forward("string")
                    .whitelistedNames("string")
                    .build())
                .queryString(false)
                .headers("string")
                .queryStringCacheKeys("string")
                .build())
            .functionAssociations(DistributionDefaultCacheBehaviorFunctionAssociationArgs.builder()
                .eventType("string")
                .functionArn("string")
                .build())
            .defaultTtl(0)
            .maxTtl(0)
            .minTtl(0)
            .fieldLevelEncryptionId("string")
            .realtimeLogConfigArn("string")
            .responseHeadersPolicyId("string")
            .smoothStreaming(false)
            .compress(false)
            .trustedKeyGroups("string")
            .trustedSigners("string")
            .cachePolicyId("string")
            .build())
        .orderedCacheBehaviors(DistributionOrderedCacheBehaviorArgs.builder()
            .allowedMethods("string")
            .viewerProtocolPolicy("string")
            .cachedMethods("string")
            .targetOriginId("string")
            .pathPattern("string")
            .minTtl(0)
            .defaultTtl(0)
            .functionAssociations(DistributionOrderedCacheBehaviorFunctionAssociationArgs.builder()
                .eventType("string")
                .functionArn("string")
                .build())
            .lambdaFunctionAssociations(DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs.builder()
                .eventType("string")
                .lambdaArn("string")
                .includeBody(false)
                .build())
            .maxTtl(0)
            .fieldLevelEncryptionId("string")
            .originRequestPolicyId("string")
            .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()
                .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()
                    .forward("string")
                    .whitelistedNames("string")
                    .build())
                .queryString(false)
                .headers("string")
                .queryStringCacheKeys("string")
                .build())
            .realtimeLogConfigArn("string")
            .responseHeadersPolicyId("string")
            .smoothStreaming(false)
            .compress(false)
            .trustedKeyGroups("string")
            .trustedSigners("string")
            .cachePolicyId("string")
            .build())
        .customErrorResponses(DistributionCustomErrorResponseArgs.builder()
            .errorCode(0)
            .errorCachingMinTtl(0)
            .responseCode(0)
            .responsePagePath("string")
            .build())
        .httpVersion("string")
        .isIpv6Enabled(false)
        .loggingConfig(DistributionLoggingConfigArgs.builder()
            .bucket("string")
            .includeCookies(false)
            .prefix("string")
            .build())
        .aliases("string")
        .originGroups(DistributionOriginGroupArgs.builder()
            .failoverCriteria(DistributionOriginGroupFailoverCriteriaArgs.builder()
                .statusCodes(0)
                .build())
            .members(DistributionOriginGroupMemberArgs.builder()
                .originId("string")
                .build())
            .originId("string")
            .build())
        .defaultRootObject("string")
        .priceClass("string")
        .continuousDeploymentPolicyId("string")
        .retainOnDelete(false)
        .staging(false)
        .tags(Map.of("string", "string"))
        .comment("string")
        .waitForDeployment(false)
        .webAclId("string")
        .build());
    
    distribution_resource = aws.cloudfront.Distribution("distributionResource",
        enabled=False,
        viewer_certificate=aws.cloudfront.DistributionViewerCertificateArgs(
            acm_certificate_arn="string",
            cloudfront_default_certificate=False,
            iam_certificate_id="string",
            minimum_protocol_version="string",
            ssl_support_method="string",
        ),
        restrictions=aws.cloudfront.DistributionRestrictionsArgs(
            geo_restriction=aws.cloudfront.DistributionRestrictionsGeoRestrictionArgs(
                restriction_type="string",
                locations=["string"],
            ),
        ),
        origins=[aws.cloudfront.DistributionOriginArgs(
            domain_name="string",
            origin_id="string",
            connection_attempts=0,
            connection_timeout=0,
            custom_headers=[aws.cloudfront.DistributionOriginCustomHeaderArgs(
                name="string",
                value="string",
            )],
            custom_origin_config=aws.cloudfront.DistributionOriginCustomOriginConfigArgs(
                http_port=0,
                https_port=0,
                origin_protocol_policy="string",
                origin_ssl_protocols=["string"],
                origin_keepalive_timeout=0,
                origin_read_timeout=0,
            ),
            origin_access_control_id="string",
            origin_path="string",
            origin_shield=aws.cloudfront.DistributionOriginOriginShieldArgs(
                enabled=False,
                origin_shield_region="string",
            ),
            s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(
                origin_access_identity="string",
            ),
        )],
        default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(
            allowed_methods=["string"],
            viewer_protocol_policy="string",
            cached_methods=["string"],
            target_origin_id="string",
            lambda_function_associations=[aws.cloudfront.DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs(
                event_type="string",
                lambda_arn="string",
                include_body=False,
            )],
            origin_request_policy_id="string",
            forwarded_values=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs(
                cookies=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs(
                    forward="string",
                    whitelisted_names=["string"],
                ),
                query_string=False,
                headers=["string"],
                query_string_cache_keys=["string"],
            ),
            function_associations=[aws.cloudfront.DistributionDefaultCacheBehaviorFunctionAssociationArgs(
                event_type="string",
                function_arn="string",
            )],
            default_ttl=0,
            max_ttl=0,
            min_ttl=0,
            field_level_encryption_id="string",
            realtime_log_config_arn="string",
            response_headers_policy_id="string",
            smooth_streaming=False,
            compress=False,
            trusted_key_groups=["string"],
            trusted_signers=["string"],
            cache_policy_id="string",
        ),
        ordered_cache_behaviors=[aws.cloudfront.DistributionOrderedCacheBehaviorArgs(
            allowed_methods=["string"],
            viewer_protocol_policy="string",
            cached_methods=["string"],
            target_origin_id="string",
            path_pattern="string",
            min_ttl=0,
            default_ttl=0,
            function_associations=[aws.cloudfront.DistributionOrderedCacheBehaviorFunctionAssociationArgs(
                event_type="string",
                function_arn="string",
            )],
            lambda_function_associations=[aws.cloudfront.DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs(
                event_type="string",
                lambda_arn="string",
                include_body=False,
            )],
            max_ttl=0,
            field_level_encryption_id="string",
            origin_request_policy_id="string",
            forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(
                cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(
                    forward="string",
                    whitelisted_names=["string"],
                ),
                query_string=False,
                headers=["string"],
                query_string_cache_keys=["string"],
            ),
            realtime_log_config_arn="string",
            response_headers_policy_id="string",
            smooth_streaming=False,
            compress=False,
            trusted_key_groups=["string"],
            trusted_signers=["string"],
            cache_policy_id="string",
        )],
        custom_error_responses=[aws.cloudfront.DistributionCustomErrorResponseArgs(
            error_code=0,
            error_caching_min_ttl=0,
            response_code=0,
            response_page_path="string",
        )],
        http_version="string",
        is_ipv6_enabled=False,
        logging_config=aws.cloudfront.DistributionLoggingConfigArgs(
            bucket="string",
            include_cookies=False,
            prefix="string",
        ),
        aliases=["string"],
        origin_groups=[aws.cloudfront.DistributionOriginGroupArgs(
            failover_criteria=aws.cloudfront.DistributionOriginGroupFailoverCriteriaArgs(
                status_codes=[0],
            ),
            members=[aws.cloudfront.DistributionOriginGroupMemberArgs(
                origin_id="string",
            )],
            origin_id="string",
        )],
        default_root_object="string",
        price_class="string",
        continuous_deployment_policy_id="string",
        retain_on_delete=False,
        staging=False,
        tags={
            "string": "string",
        },
        comment="string",
        wait_for_deployment=False,
        web_acl_id="string")
    
    const distributionResource = new aws.cloudfront.Distribution("distributionResource", {
        enabled: false,
        viewerCertificate: {
            acmCertificateArn: "string",
            cloudfrontDefaultCertificate: false,
            iamCertificateId: "string",
            minimumProtocolVersion: "string",
            sslSupportMethod: "string",
        },
        restrictions: {
            geoRestriction: {
                restrictionType: "string",
                locations: ["string"],
            },
        },
        origins: [{
            domainName: "string",
            originId: "string",
            connectionAttempts: 0,
            connectionTimeout: 0,
            customHeaders: [{
                name: "string",
                value: "string",
            }],
            customOriginConfig: {
                httpPort: 0,
                httpsPort: 0,
                originProtocolPolicy: "string",
                originSslProtocols: ["string"],
                originKeepaliveTimeout: 0,
                originReadTimeout: 0,
            },
            originAccessControlId: "string",
            originPath: "string",
            originShield: {
                enabled: false,
                originShieldRegion: "string",
            },
            s3OriginConfig: {
                originAccessIdentity: "string",
            },
        }],
        defaultCacheBehavior: {
            allowedMethods: ["string"],
            viewerProtocolPolicy: "string",
            cachedMethods: ["string"],
            targetOriginId: "string",
            lambdaFunctionAssociations: [{
                eventType: "string",
                lambdaArn: "string",
                includeBody: false,
            }],
            originRequestPolicyId: "string",
            forwardedValues: {
                cookies: {
                    forward: "string",
                    whitelistedNames: ["string"],
                },
                queryString: false,
                headers: ["string"],
                queryStringCacheKeys: ["string"],
            },
            functionAssociations: [{
                eventType: "string",
                functionArn: "string",
            }],
            defaultTtl: 0,
            maxTtl: 0,
            minTtl: 0,
            fieldLevelEncryptionId: "string",
            realtimeLogConfigArn: "string",
            responseHeadersPolicyId: "string",
            smoothStreaming: false,
            compress: false,
            trustedKeyGroups: ["string"],
            trustedSigners: ["string"],
            cachePolicyId: "string",
        },
        orderedCacheBehaviors: [{
            allowedMethods: ["string"],
            viewerProtocolPolicy: "string",
            cachedMethods: ["string"],
            targetOriginId: "string",
            pathPattern: "string",
            minTtl: 0,
            defaultTtl: 0,
            functionAssociations: [{
                eventType: "string",
                functionArn: "string",
            }],
            lambdaFunctionAssociations: [{
                eventType: "string",
                lambdaArn: "string",
                includeBody: false,
            }],
            maxTtl: 0,
            fieldLevelEncryptionId: "string",
            originRequestPolicyId: "string",
            forwardedValues: {
                cookies: {
                    forward: "string",
                    whitelistedNames: ["string"],
                },
                queryString: false,
                headers: ["string"],
                queryStringCacheKeys: ["string"],
            },
            realtimeLogConfigArn: "string",
            responseHeadersPolicyId: "string",
            smoothStreaming: false,
            compress: false,
            trustedKeyGroups: ["string"],
            trustedSigners: ["string"],
            cachePolicyId: "string",
        }],
        customErrorResponses: [{
            errorCode: 0,
            errorCachingMinTtl: 0,
            responseCode: 0,
            responsePagePath: "string",
        }],
        httpVersion: "string",
        isIpv6Enabled: false,
        loggingConfig: {
            bucket: "string",
            includeCookies: false,
            prefix: "string",
        },
        aliases: ["string"],
        originGroups: [{
            failoverCriteria: {
                statusCodes: [0],
            },
            members: [{
                originId: "string",
            }],
            originId: "string",
        }],
        defaultRootObject: "string",
        priceClass: "string",
        continuousDeploymentPolicyId: "string",
        retainOnDelete: false,
        staging: false,
        tags: {
            string: "string",
        },
        comment: "string",
        waitForDeployment: false,
        webAclId: "string",
    });
    
    type: aws:cloudfront:Distribution
    properties:
        aliases:
            - string
        comment: string
        continuousDeploymentPolicyId: string
        customErrorResponses:
            - errorCachingMinTtl: 0
              errorCode: 0
              responseCode: 0
              responsePagePath: string
        defaultCacheBehavior:
            allowedMethods:
                - string
            cachePolicyId: string
            cachedMethods:
                - string
            compress: false
            defaultTtl: 0
            fieldLevelEncryptionId: string
            forwardedValues:
                cookies:
                    forward: string
                    whitelistedNames:
                        - string
                headers:
                    - string
                queryString: false
                queryStringCacheKeys:
                    - string
            functionAssociations:
                - eventType: string
                  functionArn: string
            lambdaFunctionAssociations:
                - eventType: string
                  includeBody: false
                  lambdaArn: string
            maxTtl: 0
            minTtl: 0
            originRequestPolicyId: string
            realtimeLogConfigArn: string
            responseHeadersPolicyId: string
            smoothStreaming: false
            targetOriginId: string
            trustedKeyGroups:
                - string
            trustedSigners:
                - string
            viewerProtocolPolicy: string
        defaultRootObject: string
        enabled: false
        httpVersion: string
        isIpv6Enabled: false
        loggingConfig:
            bucket: string
            includeCookies: false
            prefix: string
        orderedCacheBehaviors:
            - allowedMethods:
                - string
              cachePolicyId: string
              cachedMethods:
                - string
              compress: false
              defaultTtl: 0
              fieldLevelEncryptionId: string
              forwardedValues:
                cookies:
                    forward: string
                    whitelistedNames:
                        - string
                headers:
                    - string
                queryString: false
                queryStringCacheKeys:
                    - string
              functionAssociations:
                - eventType: string
                  functionArn: string
              lambdaFunctionAssociations:
                - eventType: string
                  includeBody: false
                  lambdaArn: string
              maxTtl: 0
              minTtl: 0
              originRequestPolicyId: string
              pathPattern: string
              realtimeLogConfigArn: string
              responseHeadersPolicyId: string
              smoothStreaming: false
              targetOriginId: string
              trustedKeyGroups:
                - string
              trustedSigners:
                - string
              viewerProtocolPolicy: string
        originGroups:
            - failoverCriteria:
                statusCodes:
                    - 0
              members:
                - originId: string
              originId: string
        origins:
            - connectionAttempts: 0
              connectionTimeout: 0
              customHeaders:
                - name: string
                  value: string
              customOriginConfig:
                httpPort: 0
                httpsPort: 0
                originKeepaliveTimeout: 0
                originProtocolPolicy: string
                originReadTimeout: 0
                originSslProtocols:
                    - string
              domainName: string
              originAccessControlId: string
              originId: string
              originPath: string
              originShield:
                enabled: false
                originShieldRegion: string
              s3OriginConfig:
                originAccessIdentity: string
        priceClass: string
        restrictions:
            geoRestriction:
                locations:
                    - string
                restrictionType: string
        retainOnDelete: false
        staging: false
        tags:
            string: string
        viewerCertificate:
            acmCertificateArn: string
            cloudfrontDefaultCertificate: false
            iamCertificateId: string
            minimumProtocolVersion: string
            sslSupportMethod: string
        waitForDeployment: false
        webAclId: string
    

    Distribution Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Distribution resource accepts the following input properties:

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Distribution resource produces the following output properties:

    Arn string
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    CallerReference string
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    DomainName string
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    Etag string
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    HostedZoneId string
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    Id string
    The provider-assigned unique ID for this managed resource.
    InProgressValidationBatches int
    Number of invalidation batches currently in progress.
    LastModifiedTime string
    Date and time the distribution was last modified.
    Status string
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    TrustedKeyGroups List<DistributionTrustedKeyGroup>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners List<DistributionTrustedSigner>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    Arn string
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    CallerReference string
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    DomainName string
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    Etag string
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    HostedZoneId string
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    Id string
    The provider-assigned unique ID for this managed resource.
    InProgressValidationBatches int
    Number of invalidation batches currently in progress.
    LastModifiedTime string
    Date and time the distribution was last modified.
    Status string
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    TagsAll map[string]string
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    TrustedKeyGroups []DistributionTrustedKeyGroup
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners []DistributionTrustedSigner
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    arn String
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    callerReference String
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    domainName String
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    etag String
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hostedZoneId String
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    id String
    The provider-assigned unique ID for this managed resource.
    inProgressValidationBatches Integer
    Number of invalidation batches currently in progress.
    lastModifiedTime String
    Date and time the distribution was last modified.
    status String
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trustedKeyGroups List<DistributionTrustedKeyGroup>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<DistributionTrustedSigner>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    arn string
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    callerReference string
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    domainName string
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    etag string
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hostedZoneId string
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    id string
    The provider-assigned unique ID for this managed resource.
    inProgressValidationBatches number
    Number of invalidation batches currently in progress.
    lastModifiedTime string
    Date and time the distribution was last modified.
    status string
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trustedKeyGroups DistributionTrustedKeyGroup[]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners DistributionTrustedSigner[]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    arn str
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    caller_reference str
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    domain_name str
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    etag str
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hosted_zone_id str
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    id str
    The provider-assigned unique ID for this managed resource.
    in_progress_validation_batches int
    Number of invalidation batches currently in progress.
    last_modified_time str
    Date and time the distribution was last modified.
    status str
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trusted_key_groups Sequence[DistributionTrustedKeyGroup]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trusted_signers Sequence[DistributionTrustedSigner]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    arn String
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    callerReference String
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    domainName String
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    etag String
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hostedZoneId String
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    id String
    The provider-assigned unique ID for this managed resource.
    inProgressValidationBatches Number
    Number of invalidation batches currently in progress.
    lastModifiedTime String
    Date and time the distribution was last modified.
    status String
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tagsAll Map<String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trustedKeyGroups List<Property Map>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<Property Map>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.

    Look up Existing Distribution Resource

    Get an existing Distribution resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: DistributionState, opts?: CustomResourceOptions): Distribution
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            aliases: Optional[Sequence[str]] = None,
            arn: Optional[str] = None,
            caller_reference: Optional[str] = None,
            comment: Optional[str] = None,
            continuous_deployment_policy_id: Optional[str] = None,
            custom_error_responses: Optional[Sequence[DistributionCustomErrorResponseArgs]] = None,
            default_cache_behavior: Optional[DistributionDefaultCacheBehaviorArgs] = None,
            default_root_object: Optional[str] = None,
            domain_name: Optional[str] = None,
            enabled: Optional[bool] = None,
            etag: Optional[str] = None,
            hosted_zone_id: Optional[str] = None,
            http_version: Optional[str] = None,
            in_progress_validation_batches: Optional[int] = None,
            is_ipv6_enabled: Optional[bool] = None,
            last_modified_time: Optional[str] = None,
            logging_config: Optional[DistributionLoggingConfigArgs] = None,
            ordered_cache_behaviors: Optional[Sequence[DistributionOrderedCacheBehaviorArgs]] = None,
            origin_groups: Optional[Sequence[DistributionOriginGroupArgs]] = None,
            origins: Optional[Sequence[DistributionOriginArgs]] = None,
            price_class: Optional[str] = None,
            restrictions: Optional[DistributionRestrictionsArgs] = None,
            retain_on_delete: Optional[bool] = None,
            staging: Optional[bool] = None,
            status: Optional[str] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            trusted_key_groups: Optional[Sequence[DistributionTrustedKeyGroupArgs]] = None,
            trusted_signers: Optional[Sequence[DistributionTrustedSignerArgs]] = None,
            viewer_certificate: Optional[DistributionViewerCertificateArgs] = None,
            wait_for_deployment: Optional[bool] = None,
            web_acl_id: Optional[str] = None) -> Distribution
    func GetDistribution(ctx *Context, name string, id IDInput, state *DistributionState, opts ...ResourceOption) (*Distribution, error)
    public static Distribution Get(string name, Input<string> id, DistributionState? state, CustomResourceOptions? opts = null)
    public static Distribution get(String name, Output<String> id, DistributionState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Aliases List<string>
    Arn string
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    CallerReference string
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    Comment string
    ContinuousDeploymentPolicyId string
    CustomErrorResponses List<DistributionCustomErrorResponse>
    DefaultCacheBehavior DistributionDefaultCacheBehavior
    DefaultRootObject string
    DomainName string
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    Etag string
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    HostedZoneId string
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    HttpVersion string
    InProgressValidationBatches int
    Number of invalidation batches currently in progress.
    IsIpv6Enabled bool
    LastModifiedTime string
    Date and time the distribution was last modified.
    LoggingConfig DistributionLoggingConfig
    OrderedCacheBehaviors List<DistributionOrderedCacheBehavior>
    OriginGroups List<DistributionOriginGroup>
    Origins List<DistributionOrigin>
    PriceClass string
    Restrictions DistributionRestrictions
    RetainOnDelete bool
    Staging bool
    Status string
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    Tags Dictionary<string, string>
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    TrustedKeyGroups List<DistributionTrustedKeyGroup>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners List<DistributionTrustedSigner>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    ViewerCertificate DistributionViewerCertificate
    WaitForDeployment bool
    WebAclId string
    Aliases []string
    Arn string
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    CallerReference string
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    Comment string
    ContinuousDeploymentPolicyId string
    CustomErrorResponses []DistributionCustomErrorResponseArgs
    DefaultCacheBehavior DistributionDefaultCacheBehaviorArgs
    DefaultRootObject string
    DomainName string
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    Etag string
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    HostedZoneId string
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    HttpVersion string
    InProgressValidationBatches int
    Number of invalidation batches currently in progress.
    IsIpv6Enabled bool
    LastModifiedTime string
    Date and time the distribution was last modified.
    LoggingConfig DistributionLoggingConfigArgs
    OrderedCacheBehaviors []DistributionOrderedCacheBehaviorArgs
    OriginGroups []DistributionOriginGroupArgs
    Origins []DistributionOriginArgs
    PriceClass string
    Restrictions DistributionRestrictionsArgs
    RetainOnDelete bool
    Staging bool
    Status string
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    Tags map[string]string
    TagsAll map[string]string
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    TrustedKeyGroups []DistributionTrustedKeyGroupArgs
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners []DistributionTrustedSignerArgs
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    ViewerCertificate DistributionViewerCertificateArgs
    WaitForDeployment bool
    WebAclId string
    aliases List<String>
    arn String
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    callerReference String
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    comment String
    continuousDeploymentPolicyId String
    customErrorResponses List<DistributionCustomErrorResponse>
    defaultCacheBehavior DistributionDefaultCacheBehavior
    defaultRootObject String
    domainName String
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    etag String
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hostedZoneId String
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    httpVersion String
    inProgressValidationBatches Integer
    Number of invalidation batches currently in progress.
    isIpv6Enabled Boolean
    lastModifiedTime String
    Date and time the distribution was last modified.
    loggingConfig DistributionLoggingConfig
    orderedCacheBehaviors List<DistributionOrderedCacheBehavior>
    originGroups List<DistributionOriginGroup>
    origins List<DistributionOrigin>
    priceClass String
    restrictions DistributionRestrictions
    retainOnDelete Boolean
    staging Boolean
    status String
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tags Map<String,String>
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trustedKeyGroups List<DistributionTrustedKeyGroup>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<DistributionTrustedSigner>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    viewerCertificate DistributionViewerCertificate
    waitForDeployment Boolean
    webAclId String
    aliases string[]
    arn string
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    callerReference string
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    comment string
    continuousDeploymentPolicyId string
    customErrorResponses DistributionCustomErrorResponse[]
    defaultCacheBehavior DistributionDefaultCacheBehavior
    defaultRootObject string
    domainName string
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    enabled boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    etag string
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hostedZoneId string
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    httpVersion string
    inProgressValidationBatches number
    Number of invalidation batches currently in progress.
    isIpv6Enabled boolean
    lastModifiedTime string
    Date and time the distribution was last modified.
    loggingConfig DistributionLoggingConfig
    orderedCacheBehaviors DistributionOrderedCacheBehavior[]
    originGroups DistributionOriginGroup[]
    origins DistributionOrigin[]
    priceClass string
    restrictions DistributionRestrictions
    retainOnDelete boolean
    staging boolean
    status string
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tags {[key: string]: string}
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trustedKeyGroups DistributionTrustedKeyGroup[]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners DistributionTrustedSigner[]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    viewerCertificate DistributionViewerCertificate
    waitForDeployment boolean
    webAclId string
    aliases Sequence[str]
    arn str
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    caller_reference str
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    comment str
    continuous_deployment_policy_id str
    custom_error_responses Sequence[DistributionCustomErrorResponseArgs]
    default_cache_behavior DistributionDefaultCacheBehaviorArgs
    default_root_object str
    domain_name str
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    etag str
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hosted_zone_id str
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    http_version str
    in_progress_validation_batches int
    Number of invalidation batches currently in progress.
    is_ipv6_enabled bool
    last_modified_time str
    Date and time the distribution was last modified.
    logging_config DistributionLoggingConfigArgs
    ordered_cache_behaviors Sequence[DistributionOrderedCacheBehaviorArgs]
    origin_groups Sequence[DistributionOriginGroupArgs]
    origins Sequence[DistributionOriginArgs]
    price_class str
    restrictions DistributionRestrictionsArgs
    retain_on_delete bool
    staging bool
    status str
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tags Mapping[str, str]
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trusted_key_groups Sequence[DistributionTrustedKeyGroupArgs]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trusted_signers Sequence[DistributionTrustedSignerArgs]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    viewer_certificate DistributionViewerCertificateArgs
    wait_for_deployment bool
    web_acl_id str
    aliases List<String>
    arn String
    ARN for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.
    callerReference String
    Internal value used by CloudFront to allow future updates to the distribution configuration.
    comment String
    continuousDeploymentPolicyId String
    customErrorResponses List<Property Map>
    defaultCacheBehavior Property Map
    defaultRootObject String
    domainName String
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    etag String
    Current version of the distribution's information. For example: E2QWRUHAPOMQZL.
    hostedZoneId String
    CloudFront Route 53 zone ID that can be used to route an Alias Resource Record Set to. This attribute is simply an alias for the zone ID Z2FDTNDATAQYW2.
    httpVersion String
    inProgressValidationBatches Number
    Number of invalidation batches currently in progress.
    isIpv6Enabled Boolean
    lastModifiedTime String
    Date and time the distribution was last modified.
    loggingConfig Property Map
    orderedCacheBehaviors List<Property Map>
    originGroups List<Property Map>
    origins List<Property Map>
    priceClass String
    restrictions Property Map
    retainOnDelete Boolean
    staging Boolean
    status String
    Current status of the distribution. Deployed if the distribution's information is fully propagated throughout the Amazon CloudFront system.
    tags Map<String>
    tagsAll Map<String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    trustedKeyGroups List<Property Map>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<Property Map>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    viewerCertificate Property Map
    waitForDeployment Boolean
    webAclId String

    Supporting Types

    DistributionCustomErrorResponse, DistributionCustomErrorResponseArgs

    DistributionDefaultCacheBehavior, DistributionDefaultCacheBehaviorArgs

    AllowedMethods List<string>
    CachedMethods List<string>
    TargetOriginId string
    ViewerProtocolPolicy string
    CachePolicyId string
    Compress bool
    DefaultTtl int
    FieldLevelEncryptionId string
    ForwardedValues DistributionDefaultCacheBehaviorForwardedValues
    FunctionAssociations List<DistributionDefaultCacheBehaviorFunctionAssociation>
    LambdaFunctionAssociations List<DistributionDefaultCacheBehaviorLambdaFunctionAssociation>
    MaxTtl int
    MinTtl int
    OriginRequestPolicyId string
    RealtimeLogConfigArn string
    ResponseHeadersPolicyId string
    SmoothStreaming bool
    TrustedKeyGroups List<string>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners List<string>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    AllowedMethods []string
    CachedMethods []string
    TargetOriginId string
    ViewerProtocolPolicy string
    CachePolicyId string
    Compress bool
    DefaultTtl int
    FieldLevelEncryptionId string
    ForwardedValues DistributionDefaultCacheBehaviorForwardedValues
    FunctionAssociations []DistributionDefaultCacheBehaviorFunctionAssociation
    LambdaFunctionAssociations []DistributionDefaultCacheBehaviorLambdaFunctionAssociation
    MaxTtl int
    MinTtl int
    OriginRequestPolicyId string
    RealtimeLogConfigArn string
    ResponseHeadersPolicyId string
    SmoothStreaming bool
    TrustedKeyGroups []string
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners []string
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowedMethods List<String>
    cachedMethods List<String>
    targetOriginId String
    viewerProtocolPolicy String
    cachePolicyId String
    compress Boolean
    defaultTtl Integer
    fieldLevelEncryptionId String
    forwardedValues DistributionDefaultCacheBehaviorForwardedValues
    functionAssociations List<DistributionDefaultCacheBehaviorFunctionAssociation>
    lambdaFunctionAssociations List<DistributionDefaultCacheBehaviorLambdaFunctionAssociation>
    maxTtl Integer
    minTtl Integer
    originRequestPolicyId String
    realtimeLogConfigArn String
    responseHeadersPolicyId String
    smoothStreaming Boolean
    trustedKeyGroups List<String>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<String>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowedMethods string[]
    cachedMethods string[]
    targetOriginId string
    viewerProtocolPolicy string
    cachePolicyId string
    compress boolean
    defaultTtl number
    fieldLevelEncryptionId string
    forwardedValues DistributionDefaultCacheBehaviorForwardedValues
    functionAssociations DistributionDefaultCacheBehaviorFunctionAssociation[]
    lambdaFunctionAssociations DistributionDefaultCacheBehaviorLambdaFunctionAssociation[]
    maxTtl number
    minTtl number
    originRequestPolicyId string
    realtimeLogConfigArn string
    responseHeadersPolicyId string
    smoothStreaming boolean
    trustedKeyGroups string[]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners string[]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowed_methods Sequence[str]
    cached_methods Sequence[str]
    target_origin_id str
    viewer_protocol_policy str
    cache_policy_id str
    compress bool
    default_ttl int
    field_level_encryption_id str
    forwarded_values DistributionDefaultCacheBehaviorForwardedValues
    function_associations Sequence[DistributionDefaultCacheBehaviorFunctionAssociation]
    lambda_function_associations Sequence[DistributionDefaultCacheBehaviorLambdaFunctionAssociation]
    max_ttl int
    min_ttl int
    origin_request_policy_id str
    realtime_log_config_arn str
    response_headers_policy_id str
    smooth_streaming bool
    trusted_key_groups Sequence[str]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trusted_signers Sequence[str]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowedMethods List<String>
    cachedMethods List<String>
    targetOriginId String
    viewerProtocolPolicy String
    cachePolicyId String
    compress Boolean
    defaultTtl Number
    fieldLevelEncryptionId String
    forwardedValues Property Map
    functionAssociations List<Property Map>
    lambdaFunctionAssociations List<Property Map>
    maxTtl Number
    minTtl Number
    originRequestPolicyId String
    realtimeLogConfigArn String
    responseHeadersPolicyId String
    smoothStreaming Boolean
    trustedKeyGroups List<String>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<String>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.

    DistributionDefaultCacheBehaviorForwardedValues, DistributionDefaultCacheBehaviorForwardedValuesArgs

    DistributionDefaultCacheBehaviorForwardedValuesCookies, DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs

    Forward string
    WhitelistedNames List<string>
    Forward string
    WhitelistedNames []string
    forward String
    whitelistedNames List<String>
    forward string
    whitelistedNames string[]
    forward str
    whitelisted_names Sequence[str]
    forward String
    whitelistedNames List<String>

    DistributionDefaultCacheBehaviorFunctionAssociation, DistributionDefaultCacheBehaviorFunctionAssociationArgs

    EventType string
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    FunctionArn string
    ARN of the CloudFront function.
    EventType string
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    FunctionArn string
    ARN of the CloudFront function.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    functionArn String
    ARN of the CloudFront function.
    eventType string
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    functionArn string
    ARN of the CloudFront function.
    event_type str
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    function_arn str
    ARN of the CloudFront function.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    functionArn String
    ARN of the CloudFront function.

    DistributionDefaultCacheBehaviorLambdaFunctionAssociation, DistributionDefaultCacheBehaviorLambdaFunctionAssociationArgs

    EventType string
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    LambdaArn string
    ARN of the Lambda function.
    IncludeBody bool
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    EventType string
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    LambdaArn string
    ARN of the Lambda function.
    IncludeBody bool
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambdaArn String
    ARN of the Lambda function.
    includeBody Boolean
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    eventType string
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambdaArn string
    ARN of the Lambda function.
    includeBody boolean
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    event_type str
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambda_arn str
    ARN of the Lambda function.
    include_body bool
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambdaArn String
    ARN of the Lambda function.
    includeBody Boolean
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.

    DistributionLoggingConfig, DistributionLoggingConfigArgs

    Bucket string
    IncludeCookies bool
    Prefix string
    Bucket string
    IncludeCookies bool
    Prefix string
    bucket String
    includeCookies Boolean
    prefix String
    bucket string
    includeCookies boolean
    prefix string
    bucket String
    includeCookies Boolean
    prefix String

    DistributionOrderedCacheBehavior, DistributionOrderedCacheBehaviorArgs

    AllowedMethods List<string>
    CachedMethods List<string>
    PathPattern string
    TargetOriginId string
    ViewerProtocolPolicy string
    CachePolicyId string
    Compress bool
    DefaultTtl int
    FieldLevelEncryptionId string
    ForwardedValues DistributionOrderedCacheBehaviorForwardedValues
    FunctionAssociations List<DistributionOrderedCacheBehaviorFunctionAssociation>
    LambdaFunctionAssociations List<DistributionOrderedCacheBehaviorLambdaFunctionAssociation>
    MaxTtl int
    MinTtl int
    OriginRequestPolicyId string
    RealtimeLogConfigArn string
    ResponseHeadersPolicyId string
    SmoothStreaming bool
    TrustedKeyGroups List<string>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners List<string>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    AllowedMethods []string
    CachedMethods []string
    PathPattern string
    TargetOriginId string
    ViewerProtocolPolicy string
    CachePolicyId string
    Compress bool
    DefaultTtl int
    FieldLevelEncryptionId string
    ForwardedValues DistributionOrderedCacheBehaviorForwardedValues
    FunctionAssociations []DistributionOrderedCacheBehaviorFunctionAssociation
    LambdaFunctionAssociations []DistributionOrderedCacheBehaviorLambdaFunctionAssociation
    MaxTtl int
    MinTtl int
    OriginRequestPolicyId string
    RealtimeLogConfigArn string
    ResponseHeadersPolicyId string
    SmoothStreaming bool
    TrustedKeyGroups []string
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    TrustedSigners []string
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowedMethods List<String>
    cachedMethods List<String>
    pathPattern String
    targetOriginId String
    viewerProtocolPolicy String
    cachePolicyId String
    compress Boolean
    defaultTtl Integer
    fieldLevelEncryptionId String
    forwardedValues DistributionOrderedCacheBehaviorForwardedValues
    functionAssociations List<DistributionOrderedCacheBehaviorFunctionAssociation>
    lambdaFunctionAssociations List<DistributionOrderedCacheBehaviorLambdaFunctionAssociation>
    maxTtl Integer
    minTtl Integer
    originRequestPolicyId String
    realtimeLogConfigArn String
    responseHeadersPolicyId String
    smoothStreaming Boolean
    trustedKeyGroups List<String>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<String>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowedMethods string[]
    cachedMethods string[]
    pathPattern string
    targetOriginId string
    viewerProtocolPolicy string
    cachePolicyId string
    compress boolean
    defaultTtl number
    fieldLevelEncryptionId string
    forwardedValues DistributionOrderedCacheBehaviorForwardedValues
    functionAssociations DistributionOrderedCacheBehaviorFunctionAssociation[]
    lambdaFunctionAssociations DistributionOrderedCacheBehaviorLambdaFunctionAssociation[]
    maxTtl number
    minTtl number
    originRequestPolicyId string
    realtimeLogConfigArn string
    responseHeadersPolicyId string
    smoothStreaming boolean
    trustedKeyGroups string[]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners string[]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowed_methods Sequence[str]
    cached_methods Sequence[str]
    path_pattern str
    target_origin_id str
    viewer_protocol_policy str
    cache_policy_id str
    compress bool
    default_ttl int
    field_level_encryption_id str
    forwarded_values DistributionOrderedCacheBehaviorForwardedValues
    function_associations Sequence[DistributionOrderedCacheBehaviorFunctionAssociation]
    lambda_function_associations Sequence[DistributionOrderedCacheBehaviorLambdaFunctionAssociation]
    max_ttl int
    min_ttl int
    origin_request_policy_id str
    realtime_log_config_arn str
    response_headers_policy_id str
    smooth_streaming bool
    trusted_key_groups Sequence[str]
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trusted_signers Sequence[str]
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
    allowedMethods List<String>
    cachedMethods List<String>
    pathPattern String
    targetOriginId String
    viewerProtocolPolicy String
    cachePolicyId String
    compress Boolean
    defaultTtl Number
    fieldLevelEncryptionId String
    forwardedValues Property Map
    functionAssociations List<Property Map>
    lambdaFunctionAssociations List<Property Map>
    maxTtl Number
    minTtl Number
    originRequestPolicyId String
    realtimeLogConfigArn String
    responseHeadersPolicyId String
    smoothStreaming Boolean
    trustedKeyGroups List<String>
    List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
    trustedSigners List<String>
    List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.

    DistributionOrderedCacheBehaviorForwardedValues, DistributionOrderedCacheBehaviorForwardedValuesArgs

    DistributionOrderedCacheBehaviorForwardedValuesCookies, DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs

    Forward string
    WhitelistedNames List<string>
    Forward string
    WhitelistedNames []string
    forward String
    whitelistedNames List<String>
    forward string
    whitelistedNames string[]
    forward str
    whitelisted_names Sequence[str]
    forward String
    whitelistedNames List<String>

    DistributionOrderedCacheBehaviorFunctionAssociation, DistributionOrderedCacheBehaviorFunctionAssociationArgs

    EventType string
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    FunctionArn string
    ARN of the CloudFront function.
    EventType string
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    FunctionArn string
    ARN of the CloudFront function.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    functionArn String
    ARN of the CloudFront function.
    eventType string
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    functionArn string
    ARN of the CloudFront function.
    event_type str
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    function_arn str
    ARN of the CloudFront function.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request or viewer-response.
    functionArn String
    ARN of the CloudFront function.

    DistributionOrderedCacheBehaviorLambdaFunctionAssociation, DistributionOrderedCacheBehaviorLambdaFunctionAssociationArgs

    EventType string
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    LambdaArn string
    ARN of the Lambda function.
    IncludeBody bool
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    EventType string
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    LambdaArn string
    ARN of the Lambda function.
    IncludeBody bool
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambdaArn String
    ARN of the Lambda function.
    includeBody Boolean
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    eventType string
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambdaArn string
    ARN of the Lambda function.
    includeBody boolean
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    event_type str
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambda_arn str
    ARN of the Lambda function.
    include_body bool
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.
    eventType String
    Specific event to trigger this function. Valid values: viewer-request, origin-request, viewer-response, origin-response.
    lambdaArn String
    ARN of the Lambda function.
    includeBody Boolean
    When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: true, false.

    DistributionOrigin, DistributionOriginArgs

    domainName String
    Domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.
    originId String
    connectionAttempts Number
    connectionTimeout Number
    customHeaders List<Property Map>
    customOriginConfig Property Map
    originAccessControlId String
    originPath String
    originShield Property Map
    s3OriginConfig Property Map

    DistributionOriginCustomHeader, DistributionOriginCustomHeaderArgs

    Name string
    Value string
    Name string
    Value string
    name String
    value String
    name string
    value string
    name str
    value str
    name String
    value String

    DistributionOriginCustomOriginConfig, DistributionOriginCustomOriginConfigArgs

    DistributionOriginGroup, DistributionOriginGroupArgs

    DistributionOriginGroupFailoverCriteria, DistributionOriginGroupFailoverCriteriaArgs

    StatusCodes List<int>
    statusCodes List<Integer>
    statusCodes number[]
    status_codes Sequence[int]
    statusCodes List<Number>

    DistributionOriginGroupMember, DistributionOriginGroupMemberArgs

    OriginId string
    OriginId string
    originId String
    originId string
    originId String

    DistributionOriginOriginShield, DistributionOriginOriginShieldArgs

    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    OriginShieldRegion string
    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    OriginShieldRegion string
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    originShieldRegion String
    enabled boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    originShieldRegion string
    enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    origin_shield_region str
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    originShieldRegion String

    DistributionOriginS3OriginConfig, DistributionOriginS3OriginConfigArgs

    DistributionRestrictions, DistributionRestrictionsArgs

    DistributionRestrictionsGeoRestriction, DistributionRestrictionsGeoRestrictionArgs

    RestrictionType string
    Locations List<string>
    RestrictionType string
    Locations []string
    restrictionType String
    locations List<String>
    restrictionType string
    locations string[]
    restriction_type str
    locations Sequence[str]
    restrictionType String
    locations List<String>

    DistributionTrustedKeyGroup, DistributionTrustedKeyGroupArgs

    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    Items List<DistributionTrustedKeyGroupItem>
    List of nested attributes for each trusted signer
    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    Items []DistributionTrustedKeyGroupItem
    List of nested attributes for each trusted signer
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items List<DistributionTrustedKeyGroupItem>
    List of nested attributes for each trusted signer
    enabled boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items DistributionTrustedKeyGroupItem[]
    List of nested attributes for each trusted signer
    enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items Sequence[DistributionTrustedKeyGroupItem]
    List of nested attributes for each trusted signer
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items List<Property Map>
    List of nested attributes for each trusted signer

    DistributionTrustedKeyGroupItem, DistributionTrustedKeyGroupItemArgs

    KeyGroupId string
    ID of the key group that contains the public keys.
    KeyPairIds List<string>
    Set of active CloudFront key pairs associated with the signer account
    KeyGroupId string
    ID of the key group that contains the public keys.
    KeyPairIds []string
    Set of active CloudFront key pairs associated with the signer account
    keyGroupId String
    ID of the key group that contains the public keys.
    keyPairIds List<String>
    Set of active CloudFront key pairs associated with the signer account
    keyGroupId string
    ID of the key group that contains the public keys.
    keyPairIds string[]
    Set of active CloudFront key pairs associated with the signer account
    key_group_id str
    ID of the key group that contains the public keys.
    key_pair_ids Sequence[str]
    Set of active CloudFront key pairs associated with the signer account
    keyGroupId String
    ID of the key group that contains the public keys.
    keyPairIds List<String>
    Set of active CloudFront key pairs associated with the signer account

    DistributionTrustedSigner, DistributionTrustedSignerArgs

    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    Items List<DistributionTrustedSignerItem>
    List of nested attributes for each trusted signer
    Enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    Items []DistributionTrustedSignerItem
    List of nested attributes for each trusted signer
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items List<DistributionTrustedSignerItem>
    List of nested attributes for each trusted signer
    enabled boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items DistributionTrustedSignerItem[]
    List of nested attributes for each trusted signer
    enabled bool
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items Sequence[DistributionTrustedSignerItem]
    List of nested attributes for each trusted signer
    enabled Boolean
    true if any of the AWS accounts listed as trusted signers have active CloudFront key pairs
    items List<Property Map>
    List of nested attributes for each trusted signer

    DistributionTrustedSignerItem, DistributionTrustedSignerItemArgs

    AwsAccountNumber string
    AWS account ID or self
    KeyPairIds List<string>
    Set of active CloudFront key pairs associated with the signer account
    AwsAccountNumber string
    AWS account ID or self
    KeyPairIds []string
    Set of active CloudFront key pairs associated with the signer account
    awsAccountNumber String
    AWS account ID or self
    keyPairIds List<String>
    Set of active CloudFront key pairs associated with the signer account
    awsAccountNumber string
    AWS account ID or self
    keyPairIds string[]
    Set of active CloudFront key pairs associated with the signer account
    aws_account_number str
    AWS account ID or self
    key_pair_ids Sequence[str]
    Set of active CloudFront key pairs associated with the signer account
    awsAccountNumber String
    AWS account ID or self
    keyPairIds List<String>
    Set of active CloudFront key pairs associated with the signer account

    DistributionViewerCertificate, DistributionViewerCertificateArgs

    Import

    Using pulumi import, import CloudFront Distributions using the id. For example:

    $ pulumi import aws:cloudfront/distribution:Distribution distribution E74FTE3EXAMPLE
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.40.0 published on Wednesday, Jun 12, 2024 by Pulumi