import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Cookies { Forward ! : Value < string > ; WhitelistedNames ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DistributionConfig { Aliases ? : List < Value < string > > ; CNAMEs ? : List < Value < string > > ; CacheBehaviors ? : List < CacheBehavior > ; Comment ? : Value < string > ; CustomErrorResponses ? : List < CustomErrorResponse > ; CustomOrigin ? : LegacyCustomOrigin ; DefaultCacheBehavior ? : DefaultCacheBehavior ; DefaultRootObject ? : Value < string > ; Enabled ! : Value < boolean > ; HttpVersion ? : Value < string > ; IPV6Enabled ? : Value < boolean > ; Logging ? : Logging ; OriginGroups ? : OriginGroups ; Origins ? : List < Origin > ; PriceClass ? : Value < string > ; Restrictions ? : Restrictions ; S3Origin ? : LegacyS3Origin ; ViewerCertificate ? : ViewerCertificate ; WebACLId ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LegacyS3Origin { DNSName ! : Value < string > ; OriginAccessIdentity ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginCustomHeader { HeaderName ! : Value < string > ; HeaderValue ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginGroup { FailoverCriteria ! : OriginGroupFailoverCriteria ; Id ! : Value < string > ; Members ! : OriginGroupMembers ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CustomOriginConfig { HTTPPort ? : Value < number > ; HTTPSPort ? : Value < number > ; OriginKeepaliveTimeout ? : Value < number > ; OriginProtocolPolicy ! : Value < string > ; OriginReadTimeout ? : Value < number > ; OriginSSLProtocols ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginGroups { Items ? : List < OriginGroup > ; Quantity ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginGroupMembers { Items ! : List < OriginGroupMember > ; Quantity ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class GeoRestriction { Locations ? : List < Value < string > > ; RestrictionType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ViewerCertificate { AcmCertificateArn ? : Value < string > ; CloudFrontDefaultCertificate ? : Value < boolean > ; IamCertificateId ? : Value < string > ; MinimumProtocolVersion ? : Value < string > ; SslSupportMethod ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CustomErrorResponse { ErrorCachingMinTTL ? : Value < number > ; ErrorCode ! : Value < number > ; ResponseCode ? : Value < number > ; ResponsePagePath ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaFunctionAssociation { EventType ? : Value < string > ; IncludeBody ? : Value < boolean > ; LambdaFunctionARN ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginGroupMember { OriginId ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CacheBehavior { AllowedMethods ? : List < Value < string > > ; CachePolicyId ? : Value < string > ; CachedMethods ? : List < Value < string > > ; Compress ? : Value < boolean > ; DefaultTTL ? : Value < number > ; FieldLevelEncryptionId ? : Value < string > ; ForwardedValues ? : ForwardedValues ; FunctionAssociations ? : List < FunctionAssociation > ; LambdaFunctionAssociations ? : List < LambdaFunctionAssociation > ; MaxTTL ? : Value < number > ; MinTTL ? : Value < number > ; OriginRequestPolicyId ? : Value < string > ; PathPattern ! : Value < string > ; RealtimeLogConfigArn ? : Value < string > ; SmoothStreaming ? : Value < boolean > ; TargetOriginId ! : Value < string > ; TrustedKeyGroups ? : List < Value < string > > ; TrustedSigners ? : List < Value < string > > ; ViewerProtocolPolicy ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LegacyCustomOrigin { DNSName ! : Value < string > ; HTTPPort ? : Value < number > ; HTTPSPort ? : Value < number > ; OriginProtocolPolicy ! : Value < string > ; OriginSSLProtocols ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DefaultCacheBehavior { AllowedMethods ? : List < Value < string > > ; CachePolicyId ? : Value < string > ; CachedMethods ? : List < Value < string > > ; Compress ? : Value < boolean > ; DefaultTTL ? : Value < number > ; FieldLevelEncryptionId ? : Value < string > ; ForwardedValues ? : ForwardedValues ; FunctionAssociations ? : List < FunctionAssociation > ; LambdaFunctionAssociations ? : List < LambdaFunctionAssociation > ; MaxTTL ? : Value < number > ; MinTTL ? : Value < number > ; OriginRequestPolicyId ? : Value < string > ; RealtimeLogConfigArn ? : Value < string > ; SmoothStreaming ? : Value < boolean > ; TargetOriginId ! : Value < string > ; TrustedKeyGroups ? : List < Value < string > > ; TrustedSigners ? : List < Value < string > > ; ViewerProtocolPolicy ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Restrictions { GeoRestriction ! : GeoRestriction ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Origin { ConnectionAttempts ? : Value < number > ; ConnectionTimeout ? : Value < number > ; CustomOriginConfig ? : CustomOriginConfig ; DomainName ! : Value < string > ; Id ! : Value < string > ; OriginCustomHeaders ? : List < OriginCustomHeader > ; OriginPath ? : Value < string > ; OriginShield ? : OriginShield ; S3OriginConfig ? : S3OriginConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatusCodes { Items ! : List < Value < number > > ; Quantity ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginGroupFailoverCriteria { StatusCodes ! : StatusCodes ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ForwardedValues { Cookies ? : Cookies ; Headers ? : List < Value < string > > ; QueryString ! : Value < boolean > ; QueryStringCacheKeys ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OriginShield { Enabled ? : Value < boolean > ; OriginShieldRegion ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class S3OriginConfig { OriginAccessIdentity ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Logging { Bucket ! : Value < string > ; IncludeCookies ? : Value < boolean > ; Prefix ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FunctionAssociation { EventType ? : Value < string > ; FunctionARN ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface DistributionProperties { DistributionConfig : DistributionConfig ; Tags ? : List < ResourceTag > ; } export default class Distribution extends ResourceBase < DistributionProperties > { static Cookies = Cookies ; static DistributionConfig = DistributionConfig ; static LegacyS3Origin = LegacyS3Origin ; static OriginCustomHeader = OriginCustomHeader ; static OriginGroup = OriginGroup ; static CustomOriginConfig = CustomOriginConfig ; static OriginGroups = OriginGroups ; static OriginGroupMembers = OriginGroupMembers ; static GeoRestriction = GeoRestriction ; static ViewerCertificate = ViewerCertificate ; static CustomErrorResponse = CustomErrorResponse ; static LambdaFunctionAssociation = LambdaFunctionAssociation ; static OriginGroupMember = OriginGroupMember ; static CacheBehavior = CacheBehavior ; static LegacyCustomOrigin = LegacyCustomOrigin ; static DefaultCacheBehavior = DefaultCacheBehavior ; static Restrictions = Restrictions ; static Origin = Origin ; static StatusCodes = StatusCodes ; static OriginGroupFailoverCriteria = OriginGroupFailoverCriteria ; static ForwardedValues = ForwardedValues ; static OriginShield = OriginShield ; static S3OriginConfig = S3OriginConfig ; static Logging = Logging ; static FunctionAssociation = FunctionAssociation ; constructor ( properties ) { super ( 'AWS::CloudFront::Distribution' , properties ) ; } }