UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

64 lines (63 loc) 2.6 kB
import type { Construct } from 'constructs'; import * as cloudfront from '../../aws-cloudfront'; import { AccessLevel } from '../../aws-cloudfront'; import * as iam from '../../aws-iam'; import type { IBucket } from '../../aws-s3'; import type { IOriginAccessControlRef } from '../../interfaces/generated/aws-cloudfront-interfaces.generated'; /** * Properties for configuring a origin using a standard S3 bucket */ export interface S3BucketOriginBaseProps extends cloudfront.OriginProps { } /** * Properties for configuring a S3 origin with OAC */ export interface S3BucketOriginWithOACProps extends S3BucketOriginBaseProps { /** * An optional Origin Access Control * * @default - an Origin Access Control will be created. */ readonly originAccessControl?: IOriginAccessControlRef; /** * The level of permissions granted in the bucket policy and key policy (if applicable) * to the CloudFront distribution. * * @default [AccessLevel.READ] */ readonly originAccessLevels?: AccessLevel[]; } /** * Properties for configuring a S3 origin with OAI */ export interface S3BucketOriginWithOAIProps extends S3BucketOriginBaseProps { /** * An optional Origin Access Identity * * @default - an Origin Access Identity will be created. */ readonly originAccessIdentity?: cloudfront.ICloudFrontOriginAccessIdentityRef & iam.IGrantable; } /** * A S3 Bucket Origin */ export declare abstract class S3BucketOrigin extends cloudfront.OriginBase { /** * Create a S3 Origin with Origin Access Control (OAC) configured */ static withOriginAccessControl(bucket: IBucket, props?: S3BucketOriginWithOACProps): cloudfront.IOrigin; /** * Create a S3 Origin with Origin Access Identity (OAI) configured * OAI is a legacy feature and we **strongly** recommend you to use OAC via `withOriginAccessControl()` * unless it is not supported in your required region (e.g. China regions). */ static withOriginAccessIdentity(bucket: IBucket, props?: S3BucketOriginWithOAIProps): cloudfront.IOrigin; /** * Create a S3 Origin with default S3 bucket settings (no origin access control) */ static withBucketDefaults(bucket: IBucket, props?: cloudfront.OriginProps): cloudfront.IOrigin; constructor(bucket: IBucket, props?: S3BucketOriginBaseProps); /** @internal */ protected _bind(scope: Construct, options: cloudfront.OriginBindOptions): cloudfront.OriginBindConfig; protected renderS3OriginConfig(): cloudfront.CfnDistribution.S3OriginConfigProperty | undefined; }