Class CloudFrontWebDistribution.Builder

java.lang.Object
software.amazon.awscdk.services.cloudfront.CloudFrontWebDistribution.Builder
All Implemented Interfaces:
software.amazon.jsii.Builder<CloudFrontWebDistribution>
Enclosing class:
CloudFrontWebDistribution

@Stability(Stable) public static final class CloudFrontWebDistribution.Builder extends Object implements software.amazon.jsii.Builder<CloudFrontWebDistribution>
A fluent builder for CloudFrontWebDistribution.
  • Method Details

    • create

      @Stability(Stable) public static CloudFrontWebDistribution.Builder create(software.constructs.Construct scope, String id)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      Returns:
      a new instance of CloudFrontWebDistribution.Builder.
    • originConfigs

      @Stability(Stable) public CloudFrontWebDistribution.Builder originConfigs(List<? extends SourceConfiguration> originConfigs)
      The origin configurations for this distribution.

      Behaviors are a part of the origin.

      Parameters:
      originConfigs - The origin configurations for this distribution. This parameter is required.
      Returns:
      this
    • comment

      @Stability(Stable) public CloudFrontWebDistribution.Builder comment(String comment)
      A comment for this distribution in the CloudFront console.

      Default: - No comment is added to distribution.

      Parameters:
      comment - A comment for this distribution in the CloudFront console. This parameter is required.
      Returns:
      this
    • defaultRootObject

      @Stability(Stable) public CloudFrontWebDistribution.Builder defaultRootObject(String defaultRootObject)
      The default object to serve.

      Default: - "index.html" is served.

      Parameters:
      defaultRootObject - The default object to serve. This parameter is required.
      Returns:
      this
    • enabled

      @Stability(Stable) public CloudFrontWebDistribution.Builder enabled(Boolean enabled)
      Enable or disable the distribution.

      Default: true

      Parameters:
      enabled - Enable or disable the distribution. This parameter is required.
      Returns:
      this
    • enableIpV6

      @Stability(Stable) public CloudFrontWebDistribution.Builder enableIpV6(Boolean enableIpV6)
      If your distribution should have IPv6 enabled.

      Default: true

      Parameters:
      enableIpV6 - If your distribution should have IPv6 enabled. This parameter is required.
      Returns:
      this
    • errorConfigurations

      @Stability(Stable) public CloudFrontWebDistribution.Builder errorConfigurations(List<? extends CfnDistribution.CustomErrorResponseProperty> errorConfigurations)
      How CloudFront should handle requests that are not successful (eg PageNotFound).

      By default, CloudFront does not replace HTTP status codes in the 4xx and 5xx range with custom error messages. CloudFront does not cache HTTP status codes.

      Default: - No custom error configuration.

      Parameters:
      errorConfigurations - How CloudFront should handle requests that are not successful (eg PageNotFound). This parameter is required.
      Returns:
      this
    • geoRestriction

      @Stability(Stable) public CloudFrontWebDistribution.Builder geoRestriction(GeoRestriction geoRestriction)
      Controls the countries in which your content is distributed.

      Default: No geo restriction

      Parameters:
      geoRestriction - Controls the countries in which your content is distributed. This parameter is required.
      Returns:
      this
    • httpVersion

      @Stability(Stable) public CloudFrontWebDistribution.Builder httpVersion(HttpVersion httpVersion)
      The max supported HTTP Versions.

      Default: HttpVersion.HTTP2

      Parameters:
      httpVersion - The max supported HTTP Versions. This parameter is required.
      Returns:
      this
    • loggingConfig

      @Stability(Stable) public CloudFrontWebDistribution.Builder loggingConfig(LoggingConfiguration loggingConfig)
      Optional - if we should enable logging.

      You can pass an empty object ({}) to have us auto create a bucket for logging. Omission of this property indicates no logging is to be enabled.

      Default: - no logging is enabled by default.

      Parameters:
      loggingConfig - Optional - if we should enable logging. This parameter is required.
      Returns:
      this
    • priceClass

      @Stability(Stable) public CloudFrontWebDistribution.Builder priceClass(PriceClass priceClass)
      The price class for the distribution (this impacts how many locations CloudFront uses for your distribution, and billing).

      Default: PriceClass.PRICE_CLASS_100 the cheapest option for CloudFront is picked by default.

      Parameters:
      priceClass - The price class for the distribution (this impacts how many locations CloudFront uses for your distribution, and billing). This parameter is required.
      Returns:
      this
    • viewerCertificate

      @Stability(Stable) public CloudFrontWebDistribution.Builder viewerCertificate(ViewerCertificate viewerCertificate)
      Specifies whether you want viewers to use HTTP or HTTPS to request your objects, whether you're using an alternate domain name with HTTPS, and if so, if you're using AWS Certificate Manager (ACM) or a third-party certificate authority.

      Default: ViewerCertificate.fromCloudFrontDefaultCertificate()

      Parameters:
      viewerCertificate - Specifies whether you want viewers to use HTTP or HTTPS to request your objects, whether you're using an alternate domain name with HTTPS, and if so, if you're using AWS Certificate Manager (ACM) or a third-party certificate authority. This parameter is required.
      Returns:
      this
      See Also:
    • viewerProtocolPolicy

      @Stability(Stable) public CloudFrontWebDistribution.Builder viewerProtocolPolicy(ViewerProtocolPolicy viewerProtocolPolicy)
      The default viewer policy for incoming clients.

      Default: RedirectToHTTPs

      Parameters:
      viewerProtocolPolicy - The default viewer policy for incoming clients. This parameter is required.
      Returns:
      this
    • webAclId

      @Stability(Stable) public CloudFrontWebDistribution.Builder webAclId(String webAclId)
      Unique identifier that specifies the AWS WAF web ACL to associate with this CloudFront distribution.

      To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.

      To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example 473e64fd-f30b-4765-81a0-62ad96dd167a.

      Default: - No AWS Web Application Firewall web access control list (web ACL).

      Parameters:
      webAclId - Unique identifier that specifies the AWS WAF web ACL to associate with this CloudFront distribution. This parameter is required.
      Returns:
      this
      See Also:
    • build

      @Stability(Stable) public CloudFrontWebDistribution build()
      Specified by:
      build in interface software.amazon.jsii.Builder<CloudFrontWebDistribution>
      Returns:
      a newly built instance of CloudFrontWebDistribution.