UNPKG

@studion/infra-code-blocks

Version:
97 lines 4.25 kB
import * as aws from '@pulumi/aws'; import * as pulumi from '@pulumi/pulumi'; import { AcmCertificate } from '../acm-certificate'; export declare class CloudFront extends pulumi.ComponentResource { name: string; distribution: aws.cloudfront.Distribution; acmCertificate?: AcmCertificate; constructor(name: string, args: CloudFront.Args, opts?: pulumi.ComponentResourceOptions); private createDistributionOrigins; private getCacheBehavior; private createCertificate; private createDistribution; private createAliasRecord; } export declare namespace CloudFront { export enum BehaviorType { S3 = "s3", LB = "lb", CUSTOM = "custom" } export type S3Behavior = BehaviorBase & { type: BehaviorType.S3; bucket: pulumi.Input<aws.s3.Bucket>; websiteConfig: pulumi.Input<aws.s3.BucketWebsiteConfiguration>; /** * Override TTLs of the default cache policy. Suitable when more control is * needed to set up unified TTL on the default cache policy. */ cacheTtl?: pulumi.Input<number>; }; export type LbBehavior = BehaviorBase & { type: BehaviorType.LB; loadBalancer: pulumi.Input<aws.lb.LoadBalancer>; dnsName?: pulumi.Input<string>; }; export type CustomBehavior = BehaviorBase & { type: BehaviorType.CUSTOM; originId: pulumi.Input<string>; domainName: pulumi.Input<string>; originProtocolPolicy?: pulumi.Input<string>; allowedMethods?: pulumi.Input<pulumi.Input<string>[]>; cachedMethods?: pulumi.Input<pulumi.Input<string>[]>; compress?: pulumi.Input<boolean>; defaultRootObject?: pulumi.Input<string>; cachePolicyId?: pulumi.Input<string>; originRequestPolicyId?: pulumi.Input<string>; responseHeadersPolicyId?: pulumi.Input<string>; }; export type Behavior = S3Behavior | LbBehavior | CustomBehavior; export type Args = { /** * Behavior is a combination of distribution's origin and cache behavior. * Ordering is important since first encountered behavior is applied, * matched by path. * The default behavior, i.e. path pattern `*` or `/*`, must always be last. * Mapping between behavior and cache is one to one, while origin is mapped * by ID to filter out duplicates while keeping the last occurrence. */ behaviors: Behavior[]; /** * Domain name for CloudFront distribution. Implies creation of certificate * and alias record. Must belong to the provided hosted zone. * Providing the `certificate` argument has following effects: * - Certificate creation is skipped * - Provided certificate must cover the domain name * Responsibility to ensure mentioned requirements in on the consumer, and * falling to do so will result in unexpected behavior. */ domain?: pulumi.Input<string>; /** * Certificate for CloudFront distribution. Domain and alternative domains * are automatically pulled from the certificate and translated into alias * records. Domains covered by the certificate, must belong to the provided * hosted zone. The certificate must be in `us-east-1` region. In a case * of wildcard certificate the `domain` argument is required. * Providing the `domain` argument has following effects: * - Alias records creation, from automatically pulled domains, is skipped * - Certificate must cover the provided domain name * Responsibility to ensure mentioned requirements in on the consumer, and * falling to do so will result in unexpected behavior. */ certificate?: pulumi.Input<aws.acm.Certificate>; /** * ID of hosted zone is needed when the `domain` or the `certificate` * arguments are provided. */ hostedZoneId?: pulumi.Input<string>; tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; }; type BehaviorBase = { pathPattern: string; }; export {}; } //# sourceMappingURL=index.d.ts.map