Package com.pulumi.aws.cloudfront
Class Distribution
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.cloudfront.Distribution
-
public class Distribution extends com.pulumi.resources.CustomResourceCreates an Amazon CloudFront web distribution. For information about CloudFront distributions, see the [Amazon CloudFront Developer Guide](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html). For specific information about creating CloudFront web distributions, see the [POST Distribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) 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 `retainOnDelete` flag. ## Example Usage ### S3 Origin The example below creates a CloudFront distribution with an S3 origin.
### With Failover Routing The example below creates a CloudFront distribution with an origin group for failover routing.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.acm.AcmFunctions; import com.pulumi.aws.acm.inputs.GetCertificateArgs; import com.pulumi.aws.cloudfront.OriginAccessControl; import com.pulumi.aws.cloudfront.OriginAccessControlArgs; import com.pulumi.aws.cloudfront.Distribution; import com.pulumi.aws.cloudfront.DistributionArgs; 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.DistributionRestrictionsArgs; import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsGeoRestrictionArgs; import com.pulumi.aws.cloudfront.inputs.DistributionViewerCertificateArgs; 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.DistributionOriginArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementConditionArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.s3.BucketPolicy; import com.pulumi.aws.s3.BucketPolicyArgs; import com.pulumi.aws.route53.Route53Functions; import com.pulumi.aws.route53.inputs.GetZoneArgs; import com.pulumi.aws.route53.Record; import com.pulumi.aws.route53.RecordArgs; import com.pulumi.aws.route53.inputs.RecordAliasArgs; import com.pulumi.codegen.internal.KeyedValue; import java.util.ArrayList; import java.util.Arrays; 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 Bucket("b", BucketArgs.builder() .bucket("mybucket") .tags(Map.of("Name", "My bucket")) .build()); final var s3OriginId = "myS3Origin"; final var myDomain = "mydomain.com"; final var myDomainGetCertificate = AcmFunctions.getCertificate(GetCertificateArgs.builder() .region("us-east-1") .domain(String.format("*.%s", myDomain)) .statuses("ISSUED") .build()); var default_ = new OriginAccessControl("default", OriginAccessControlArgs.builder() .name("default-oac") .originAccessControlOriginType("s3") .signingBehavior("always") .signingProtocol("sigv4") .build()); var s3Distribution = new Distribution("s3Distribution", DistributionArgs.builder() .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder() .forwardedValues(DistributionDefaultCacheBehaviorForwardedValuesArgs.builder() .cookies(DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs.builder() .forward("none") .build()) .queryString(false) .build()) .allowedMethods( "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT") .cachedMethods( "GET", "HEAD") .targetOriginId(s3OriginId) .viewerProtocolPolicy("allow-all") .minTtl(0) .defaultTtl(3600) .maxTtl(86400) .build()) .restrictions(DistributionRestrictionsArgs.builder() .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder() .restrictionType("whitelist") .locations( "US", "CA", "GB", "DE") .build()) .build()) .viewerCertificate(DistributionViewerCertificateArgs.builder() .acmCertificateArn(myDomainGetCertificate.arn()) .sslSupportMethod("sni-only") .build()) .orderedCacheBehaviors( DistributionOrderedCacheBehaviorArgs.builder() .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder() .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder() .forward("none") .build()) .queryString(false) .headers("Origin") .build()) .pathPattern("/content/immutable/*") .allowedMethods( "GET", "HEAD", "OPTIONS") .cachedMethods( "GET", "HEAD", "OPTIONS") .targetOriginId(s3OriginId) .minTtl(0) .defaultTtl(86400) .maxTtl(31536000) .compress(true) .viewerProtocolPolicy("redirect-to-https") .build(), DistributionOrderedCacheBehaviorArgs.builder() .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder() .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder() .forward("none") .build()) .queryString(false) .build()) .pathPattern("/content/*") .allowedMethods( "GET", "HEAD", "OPTIONS") .cachedMethods( "GET", "HEAD") .targetOriginId(s3OriginId) .minTtl(0) .defaultTtl(3600) .maxTtl(86400) .compress(true) .viewerProtocolPolicy("redirect-to-https") .build()) .origins(DistributionOriginArgs.builder() .domainName(b.bucketRegionalDomainName()) .originAccessControlId(default_.id()) .originId(s3OriginId) .build()) .enabled(true) .isIpv6Enabled(true) .comment("Some comment") .defaultRootObject("index.html") .aliases( String.format("mysite.%s", myDomain), String.format("yoursite.%s", myDomain)) .priceClass("PriceClass_200") .tags(Map.of("Environment", "production")) .build()); // See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html final var originBucketPolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .conditions(GetPolicyDocumentStatementConditionArgs.builder() .test("StringEquals") .variable("AWS:SourceArn") .values(s3Distribution.arn()) .build()) .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("cloudfront.amazonaws.com") .build()) .sid("AllowCloudFrontServicePrincipalReadWrite") .effect("Allow") .actions( "s3:GetObject", "s3:PutObject") .resources(b.arn().applyValue(_arn -> String.format("%s/*", _arn))) .build()) .build()); var bBucketPolicy = new BucketPolicy("bBucketPolicy", BucketPolicyArgs.builder() .bucket(b.bucket()) .policy(originBucketPolicy.applyValue(_originBucketPolicy -> _originBucketPolicy.json())) .build()); // Create Route53 records for the CloudFront distribution aliases final var myDomainGetZone = Route53Functions.getZone(GetZoneArgs.builder() .name(myDomain) .build()); for (var range : KeyedValue.of(s3Distribution.aliases())) { new Record("cloudfront-" + range.key(), RecordArgs.builder() .aliases(RecordAliasArgs.builder() .name(s3Distribution.domainName()) .zoneId(s3Distribution.hostedZoneId()) .evaluateTargetHealth(false) .build()) .zoneId(myDomainGetZone.zoneId()) .name(range.value()) .type("A") .build()); } } }
### With Managed Caching Policy The example below creates a CloudFront distribution with an [AWS managed caching policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html).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.DistributionDefaultCacheBehaviorArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupFailoverCriteriaArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupMemberArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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() .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder() .targetOriginId("groupS3") .build()) .originGroups(DistributionOriginGroupArgs.builder() .failoverCriteria(DistributionOriginGroupFailoverCriteriaArgs.builder() .statusCodes( 403, 404, 500, 502) .build()) .members( DistributionOriginGroupMemberArgs.builder() .originId("primaryS3") .build(), DistributionOriginGroupMemberArgs.builder() .originId("failoverS3") .build()) .originId("groupS3") .build()) .origins( DistributionOriginArgs.builder() .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder() .originAccessIdentity(default_.cloudfrontAccessIdentityPath()) .build()) .domainName(primary.bucketRegionalDomainName()) .originId("primaryS3") .build(), DistributionOriginArgs.builder() .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder() .originAccessIdentity(default_.cloudfrontAccessIdentityPath()) .build()) .domainName(failover.bucketRegionalDomainName()) .originId("failoverS3") .build()) .build()); } }
### With V2 logging to S3 The example below creates a CloudFront distribution with [standard logging V2 to S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logging.html#enable-access-logging-api).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.DistributionDefaultCacheBehaviorArgs; import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsArgs; import com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsGeoRestrictionArgs; import com.pulumi.aws.cloudfront.inputs.DistributionViewerCertificateArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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() .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder() .cachePolicyId("4135ea2d-6df8-44a3-9df3-4b5a84be39ad") .allowedMethods( "GET", "HEAD", "OPTIONS") .cachedMethods( "GET", "HEAD") .targetOriginId(s3OriginId) .viewerProtocolPolicy("allow-all") .build()) .restrictions(DistributionRestrictionsArgs.builder() .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder() .restrictionType("whitelist") .locations( "US", "CA", "GB", "DE") .build()) .build()) .viewerCertificate(DistributionViewerCertificateArgs.builder() .cloudfrontDefaultCertificate(true) .build()) .origins(DistributionOriginArgs.builder() .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder() .originAccessIdentity(default_.cloudfrontAccessIdentityPath()) .build()) .domainName(primary.bucketRegionalDomainName()) .originId("myS3Origin") .build()) .enabled(true) .isIpv6Enabled(true) .comment("Some comment") .defaultRootObject("index.html") .build()); } }
### With V2 logging to Data Firehose The example below creates a CloudFront distribution with [standard logging V2 to Data Firehose](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logging.html#enable-access-logging-api).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.cloudwatch.LogDeliverySource; import com.pulumi.aws.cloudwatch.LogDeliverySourceArgs; import com.pulumi.aws.s3.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.cloudwatch.LogDeliveryDestination; import com.pulumi.aws.cloudwatch.LogDeliveryDestinationArgs; import com.pulumi.aws.cloudwatch.inputs.LogDeliveryDestinationDeliveryDestinationConfigurationArgs; import com.pulumi.aws.cloudwatch.LogDelivery; import com.pulumi.aws.cloudwatch.LogDeliveryArgs; import com.pulumi.aws.cloudwatch.inputs.LogDeliveryS3DeliveryConfigurationArgs; import java.util.ArrayList; import java.util.Arrays; 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 example = new Distribution("example"); var exampleLogDeliverySource = new LogDeliverySource("exampleLogDeliverySource", LogDeliverySourceArgs.builder() .region("us-east-1") .name("example") .logType("ACCESS_LOGS") .resourceArn(example.arn()) .build()); var exampleBucket = new Bucket("exampleBucket", BucketArgs.builder() .bucket("testbucket") .forceDestroy(true) .build()); var exampleLogDeliveryDestination = new LogDeliveryDestination("exampleLogDeliveryDestination", LogDeliveryDestinationArgs.builder() .deliveryDestinationConfiguration(LogDeliveryDestinationDeliveryDestinationConfigurationArgs.builder() .destinationResourceArn(exampleBucket.arn().applyValue(_arn -> String.format("%s/prefix", _arn))) .build()) .region("us-east-1") .name("s3-destination") .outputFormat("parquet") .build()); var exampleLogDelivery = new LogDelivery("exampleLogDelivery", LogDeliveryArgs.builder() .s3DeliveryConfigurations(LogDeliveryS3DeliveryConfigurationArgs.builder() .suffixPath("/123456678910/{DistributionId}/{yyyy}/{MM}/{dd}/{HH}") .build()) .region("us-east-1") .deliverySourceName(exampleLogDeliverySource.name()) .deliveryDestinationArn(exampleLogDeliveryDestination.arn()) .build()); } }
### With Connection Function and Viewer mTLS The example below creates a CloudFront distribution with a connection function association and viewer mTLS configuration.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.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.cloudwatch.LogDeliverySource; import com.pulumi.aws.cloudwatch.LogDeliverySourceArgs; import com.pulumi.aws.cloudwatch.LogDeliveryDestination; import com.pulumi.aws.cloudwatch.LogDeliveryDestinationArgs; import com.pulumi.aws.cloudwatch.inputs.LogDeliveryDestinationDeliveryDestinationConfigurationArgs; import com.pulumi.aws.cloudwatch.LogDelivery; import com.pulumi.aws.cloudwatch.LogDeliveryArgs; import java.util.ArrayList; import java.util.Arrays; 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 example = new Distribution("example"); var cloudfrontLogs = new FirehoseDeliveryStream("cloudfrontLogs", FirehoseDeliveryStreamArgs.builder() .region("us-east-1") .tags(Map.of("LogDeliveryEnabled", "true")) .build()); var exampleLogDeliverySource = new LogDeliverySource("exampleLogDeliverySource", LogDeliverySourceArgs.builder() .region("us-east-1") .name("cloudfront-logs-source") .logType("ACCESS_LOGS") .resourceArn(example.arn()) .build()); var exampleLogDeliveryDestination = new LogDeliveryDestination("exampleLogDeliveryDestination", LogDeliveryDestinationArgs.builder() .deliveryDestinationConfiguration(LogDeliveryDestinationDeliveryDestinationConfigurationArgs.builder() .destinationResourceArn(cloudfrontLogs.arn()) .build()) .region("us-east-1") .name("firehose-destination") .outputFormat("json") .build()); var exampleLogDelivery = new LogDelivery("exampleLogDelivery", LogDeliveryArgs.builder() .region("us-east-1") .deliverySourceName(exampleLogDeliverySource.name()) .deliveryDestinationArn(exampleLogDeliveryDestination.arn()) .build()); } }
## Import ### Identity Schema #### Required * `id` (String) CloudFront distribution ID. #### Optional * `accountId` (String) AWS Account where this resource is managed. Using `pulumi import`, import CloudFront Distributions using the `id`. For example: ```sh $ pulumi import aws:cloudfront/distribution:Distribution distribution E74FTE3EXAMPLE ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudfront.ConnectionFunction; import com.pulumi.aws.cloudfront.ConnectionFunctionArgs; import com.pulumi.aws.cloudfront.TrustStore; import com.pulumi.aws.cloudfront.TrustStoreArgs; import com.pulumi.aws.cloudfront.Distribution; import com.pulumi.aws.cloudfront.DistributionArgs; import com.pulumi.aws.cloudfront.inputs.DistributionConnectionFunctionAssociationArgs; import com.pulumi.aws.cloudfront.inputs.DistributionViewerMtlsConfigArgs; import com.pulumi.aws.cloudfront.inputs.DistributionViewerMtlsConfigTrustStoreConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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 example = new ConnectionFunction("example", ConnectionFunctionArgs.builder() .name("example-connection-function") .build()); var exampleTrustStore = new TrustStore("exampleTrustStore", TrustStoreArgs.builder() .name("example-trust-store") .build()); var exampleDistribution = new Distribution("exampleDistribution", DistributionArgs.builder() .connectionFunctionAssociation(DistributionConnectionFunctionAssociationArgs.builder() .id(example.id()) .build()) .viewerMtlsConfig(DistributionViewerMtlsConfigArgs.builder() .trustStoreConfig(DistributionViewerMtlsConfigTrustStoreConfigArgs.builder() .trustStoreId(exampleTrustStore.id()) .advertiseTrustStoreCaNames(true) .ignoreCertificateExpiry(false) .build()) .mode("verify") .build()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Distribution(java.lang.String name)Distribution(java.lang.String name, DistributionArgs args)Distribution(java.lang.String name, DistributionArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>>aliases()com.pulumi.core.Output<java.util.Optional<java.lang.String>>anycastIpListId()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<DistributionCacheTagConfig>>cacheTagConfig()com.pulumi.core.Output<java.lang.String>callerReference()com.pulumi.core.Output<java.util.Optional<java.lang.String>>comment()com.pulumi.core.Output<java.util.Optional<DistributionConnectionFunctionAssociation>>connectionFunctionAssociation()com.pulumi.core.Output<java.lang.String>continuousDeploymentPolicyId()com.pulumi.core.Output<java.util.Optional<java.util.List<DistributionCustomErrorResponse>>>customErrorResponses()com.pulumi.core.Output<DistributionDefaultCacheBehavior>defaultCacheBehavior()com.pulumi.core.Output<java.util.Optional<java.lang.String>>defaultRootObject()com.pulumi.core.Output<java.lang.String>domainName()com.pulumi.core.Output<java.lang.Boolean>enabled()com.pulumi.core.Output<java.lang.String>etag()static Distributionget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, DistributionState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>hostedZoneId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>httpVersion()com.pulumi.core.Output<java.lang.Integer>inProgressValidationBatches()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>isIpv6Enabled()com.pulumi.core.Output<java.lang.String>lastModifiedTime()com.pulumi.core.Output<java.util.Optional<DistributionLoggingConfig>>loggingConfig()com.pulumi.core.Output<java.lang.Boolean>loggingV1Enabled()com.pulumi.core.Output<java.util.Optional<java.util.List<DistributionOrderedCacheBehavior>>>orderedCacheBehaviors()com.pulumi.core.Output<java.util.Optional<java.util.List<DistributionOriginGroup>>>originGroups()com.pulumi.core.Output<java.util.List<DistributionOrigin>>origins()com.pulumi.core.Output<java.util.Optional<java.lang.String>>priceClass()com.pulumi.core.Output<DistributionRestrictions>restrictions()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>retainOnDelete()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>staging()com.pulumi.core.Output<java.lang.String>status()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.List<DistributionTrustedKeyGroup>>trustedKeyGroups()com.pulumi.core.Output<java.util.List<DistributionTrustedSigner>>trustedSigners()com.pulumi.core.Output<DistributionViewerCertificate>viewerCertificate()com.pulumi.core.Output<java.util.Optional<DistributionViewerMtlsConfig>>viewerMtlsConfig()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>waitForDeployment()com.pulumi.core.Output<java.util.Optional<java.lang.String>>webAclId()
-
-
-
Constructor Detail
-
Distribution
public Distribution(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Distribution
public Distribution(java.lang.String name, DistributionArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Distribution
public Distribution(java.lang.String name, DistributionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
aliases
public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> aliases()
- Returns:
- Extra CNAMEs (alternate domain names), if any, for this distribution.
-
anycastIpListId
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> anycastIpListId()
- Returns:
- ID of the Anycast static IP list that is associated with the distribution.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN for the distribution. For example: `arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5`, where `123456789012` is your AWS account ID.
-
cacheTagConfig
public com.pulumi.core.Output<java.util.Optional<DistributionCacheTagConfig>> cacheTagConfig()
- Returns:
- Cache tag configuration block for cache tag extraction from origin responses (maximum one). See the [AWS documentation](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/invalidation-by-tags.html) for more information about cache tags.
-
callerReference
public com.pulumi.core.Output<java.lang.String> callerReference()
- Returns:
- Internal value used by CloudFront to allow future updates to the distribution configuration.
-
comment
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> comment()
- Returns:
- Any comments you want to include about the distribution.
-
connectionFunctionAssociation
public com.pulumi.core.Output<java.util.Optional<DistributionConnectionFunctionAssociation>> connectionFunctionAssociation()
- Returns:
- A connection function association configuration block (maximum one).
-
continuousDeploymentPolicyId
public com.pulumi.core.Output<java.lang.String> continuousDeploymentPolicyId()
- Returns:
- Identifier of a continuous deployment policy. This argument should only be set on a production distribution. See the `aws.cloudfront.ContinuousDeploymentPolicy` resource for additional details.
-
customErrorResponses
public com.pulumi.core.Output<java.util.Optional<java.util.List<DistributionCustomErrorResponse>>> customErrorResponses()
- Returns:
- One or more custom error response elements (multiples allowed).
-
defaultCacheBehavior
public com.pulumi.core.Output<DistributionDefaultCacheBehavior> defaultCacheBehavior()
- Returns:
- Default cache behavior for this distribution (maximum one). Requires either `cachePolicyId` (preferred) or `forwardedValues` (deprecated) be set.
-
defaultRootObject
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> defaultRootObject()
- Returns:
- Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL.
-
domainName
public com.pulumi.core.Output<java.lang.String> domainName()
- Returns:
- Domain name corresponding to the distribution. For example: `d604721fxaaqy9.cloudfront.net`.
-
enabled
public com.pulumi.core.Output<java.lang.Boolean> enabled()
- Returns:
- Whether the distribution is enabled to accept end user requests for content.
-
etag
public com.pulumi.core.Output<java.lang.String> etag()
- Returns:
- Current version of the distribution's information. For example: `E2QWRUHAPOMQZL`.
-
hostedZoneId
public com.pulumi.core.Output<java.lang.String> hostedZoneId()
- Returns:
- CloudFront Route 53 zone ID that can be used to route an [Alias Resource Record Set](http://docs.aws.amazon.com/Route53/latest/APIReference/CreateAliasRRSAPI.html) to. This attribute is simply an alias for the zone ID `Z2FDTNDATAQYW2`.
-
httpVersion
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> httpVersion()
- Returns:
- Maximum HTTP version to support on the distribution. Allowed values are `http1.1`, `http2`, `http2and3` and `http3`. The default is `http2`.
-
inProgressValidationBatches
public com.pulumi.core.Output<java.lang.Integer> inProgressValidationBatches()
- Returns:
- Number of invalidation batches currently in progress.
-
isIpv6Enabled
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> isIpv6Enabled()
- Returns:
- Whether the IPv6 is enabled for the distribution.
-
lastModifiedTime
public com.pulumi.core.Output<java.lang.String> lastModifiedTime()
- Returns:
- Date and time the distribution was last modified.
-
loggingConfig
public com.pulumi.core.Output<java.util.Optional<DistributionLoggingConfig>> loggingConfig()
- Returns:
- The logging configuration that controls how logs are written to your distribution (maximum one). AWS provides two versions of access logs for CloudFront: Legacy and v2. This argument configures legacy version standard logs.
-
loggingV1Enabled
public com.pulumi.core.Output<java.lang.Boolean> loggingV1Enabled()
- Returns:
- Whether V1 logging is enabled for the distribution.
-
orderedCacheBehaviors
public com.pulumi.core.Output<java.util.Optional<java.util.List<DistributionOrderedCacheBehavior>>> orderedCacheBehaviors()
- Returns:
- Ordered list of cache behaviors resource for this distribution. List from top to bottom in order of precedence. The topmost cache behavior will have precedence 0.
-
originGroups
public com.pulumi.core.Output<java.util.Optional<java.util.List<DistributionOriginGroup>>> originGroups()
- Returns:
- One or more originGroup for this distribution (multiples allowed).
-
origins
public com.pulumi.core.Output<java.util.List<DistributionOrigin>> origins()
- Returns:
- One or more origins for this distribution (multiples allowed).
-
priceClass
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> priceClass()
- Returns:
- Price class for this distribution. One of `PriceClass_All`, `PriceClass_200`, `PriceClass_100`.
-
restrictions
public com.pulumi.core.Output<DistributionRestrictions> restrictions()
- Returns:
- The restriction configuration for this distribution (maximum one).
-
retainOnDelete
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> retainOnDelete()
- Returns:
- Disables the distribution instead of deleting it when destroying the resource through the provider. If this is set, the distribution needs to be deleted manually afterwards. Default: `false`.
-
staging
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> staging()
- Returns:
- A Boolean that indicates whether this is a staging distribution. Defaults to `false`.
-
status
public com.pulumi.core.Output<java.lang.String> status()
- Returns:
- Current status of the distribution. `Deployed` if the distribution's information is fully propagated throughout the Amazon CloudFront system.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
trustedKeyGroups
public com.pulumi.core.Output<java.util.List<DistributionTrustedKeyGroup>> trustedKeyGroups()
- Returns:
- List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
-
trustedSigners
public com.pulumi.core.Output<java.util.List<DistributionTrustedSigner>> trustedSigners()
- Returns:
- List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
-
viewerCertificate
public com.pulumi.core.Output<DistributionViewerCertificate> viewerCertificate()
- Returns:
- The SSL configuration for this distribution (maximum one).
-
viewerMtlsConfig
public com.pulumi.core.Output<java.util.Optional<DistributionViewerMtlsConfig>> viewerMtlsConfig()
- Returns:
- The viewer mTLS configuration for this distribution (maximum one).
-
waitForDeployment
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> waitForDeployment()
- Returns:
- If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`.
-
webAclId
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> webAclId()
- Returns:
- Unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of AWS WAF (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned.
-
get
public static Distribution get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable DistributionState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-