import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class HeadersConfig { HeaderBehavior ! : Value < string > ; Headers ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CachePolicyConfig { Comment ? : Value < string > ; DefaultTTL ! : Value < number > ; MaxTTL ! : Value < number > ; MinTTL ! : Value < number > ; Name ! : Value < string > ; ParametersInCacheKeyAndForwardedToOrigin ! : ParametersInCacheKeyAndForwardedToOrigin ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ParametersInCacheKeyAndForwardedToOrigin { CookiesConfig ! : CookiesConfig ; EnableAcceptEncodingBrotli ? : Value < boolean > ; EnableAcceptEncodingGzip ! : Value < boolean > ; HeadersConfig ! : HeadersConfig ; QueryStringsConfig ! : QueryStringsConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class QueryStringsConfig { QueryStringBehavior ! : Value < string > ; QueryStrings ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CookiesConfig { CookieBehavior ! : Value < string > ; Cookies ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface CachePolicyProperties { CachePolicyConfig : CachePolicyConfig ; } export default class CachePolicy extends ResourceBase < CachePolicyProperties > { static HeadersConfig = HeadersConfig ; static CachePolicyConfig = CachePolicyConfig ; static ParametersInCacheKeyAndForwardedToOrigin = ParametersInCacheKeyAndForwardedToOrigin ; static QueryStringsConfig = QueryStringsConfig ; static CookiesConfig = CookiesConfig ; constructor ( properties ) { super ( 'AWS::CloudFront::CachePolicy' , properties ) ; } }