Class CfnDistribution

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IInspectable, ITaggable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.113.0 (build fc68b25)", date="2025-08-12T14:44:11.690Z") @Stability(Stable) public class CfnDistribution extends CfnResource implements IInspectable, ITaggable
A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery.

Example:

 // Create the simple Origin
 Bucket myBucket = new Bucket(this, "myBucket");
 IOrigin s3Origin = S3BucketOrigin.withOriginAccessControl(myBucket, S3BucketOriginWithOACProps.builder()
         .originAccessLevels(List.of(AccessLevel.READ, AccessLevel.LIST))
         .build());
 // Create the Distribution construct
 Distribution myMultiTenantDistribution = Distribution.Builder.create(this, "distribution")
         .defaultBehavior(BehaviorOptions.builder()
                 .origin(s3Origin)
                 .build())
         .defaultRootObject("index.html")
         .build();
 // Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
 CfnDistribution cfnDistribution = (CfnDistribution)myMultiTenantDistribution.getNode().getDefaultChild();
 DefaultCacheBehaviorProperty defaultCacheBehavior = DefaultCacheBehaviorProperty.builder()
         .targetOriginId(myBucket.getBucketArn())
         .viewerProtocolPolicy("allow-all")
         .compress(false)
         .allowedMethods(List.of("GET", "HEAD"))
         .cachePolicyId(CachePolicy.CACHING_OPTIMIZED.getCachePolicyId())
         .build();
 // Create the updated distributionConfig
 DistributionConfigProperty distributionConfig = DistributionConfigProperty.builder()
         .defaultCacheBehavior(defaultCacheBehavior)
         .enabled(true)
         // the properties below are optional
         .connectionMode("tenant-only")
         .origins(List.of(OriginProperty.builder()
                 .id(myBucket.getBucketArn())
                 .domainName(myBucket.getBucketDomainName())
                 .s3OriginConfig(S3OriginConfigProperty.builder().build())
                 .originPath("/{{tenantName}}")
                 .build()))
         .tenantConfig(TenantConfigProperty.builder()
                 .parameterDefinitions(List.of(ParameterDefinitionProperty.builder()
                         .definition(DefinitionProperty.builder()
                                 .stringSchema(StringSchemaProperty.builder()
                                         .required(false)
                                         // the properties below are optional
                                         .comment("tenantName")
                                         .defaultValue("root")
                                         .build())
                                 .build())
                         .name("tenantName")
                         .build()))
                 .build())
         .build();
 // Override the distribution configuration to enable multi-tenancy.
 cfnDistribution.getDistributionConfig() = distributionConfig;
 // Create a distribution tenant using an existing ACM certificate
 CfnDistributionTenant cfnDistributionTenant = CfnDistributionTenant.Builder.create(this, "distribution-tenant")
         .distributionId(myMultiTenantDistribution.getDistributionId())
         .domains(List.of("my-tenant.my.domain.com"))
         .name("my-tenant")
         .enabled(true)
         .parameters(List.of(ParameterProperty.builder()
                 .name("tenantName")
                 .value("app")
                 .build()))
         .customizations(CustomizationsProperty.builder()
                 .certificate(CertificateProperty.builder()
                         .arn("REPLACE_WITH_ARN")
                         .build())
                 .build())
         .build();
 

See Also:
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnDistribution

      protected CfnDistribution(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnDistribution

      protected CfnDistribution(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnDistribution

      @Stability(Stable) public CfnDistribution(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnDistributionProps props)
      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
      props - Resource properties. This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector - tree inspector to collect and process attributes. This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrDomainName

      @Stability(Stable) @NotNull public String getAttrDomainName()
      The domain name of the resource, such as d111111abcdef8.cloudfront.net .
    • getAttrId

      @Stability(Stable) @NotNull public String getAttrId()
      The distribution's identifier.

      For example: E1U5RQF7T870K0 .

    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      Tag Manager which manages the tags for this resource.
      Specified by:
      getTags in interface ITaggable
    • getDistributionConfig

      @Stability(Stable) @NotNull public Object getDistributionConfig()
      The distribution's configuration.
    • setDistributionConfig

      @Stability(Stable) public void setDistributionConfig(@NotNull IResolvable value)
      The distribution's configuration.
    • setDistributionConfig

      @Stability(Stable) public void setDistributionConfig(@NotNull CfnDistribution.DistributionConfigProperty value)
      The distribution's configuration.
    • getTagsRaw

      @Stability(Stable) @Nullable public List<CfnTag> getTagsRaw()
      A complex type that contains zero or more Tag elements.
    • setTagsRaw

      @Stability(Stable) public void setTagsRaw(@Nullable List<CfnTag> value)
      A complex type that contains zero or more Tag elements.