# http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html
module CloudFormer
  module CloudFront
    class Distribution < Resource
      autoload :Cookies, 'cloud_former/resource_properties/cloud_front/distribution/cookies'
      autoload :LambdaFunctionAssociation, 'cloud_former/resource_properties/cloud_front/distribution/lambda_function_association'
      autoload :CustomOriginConfig, 'cloud_former/resource_properties/cloud_front/distribution/custom_origin_config'
      autoload :ForwardedValues, 'cloud_former/resource_properties/cloud_front/distribution/forwarded_values'
      autoload :CacheBehavior, 'cloud_former/resource_properties/cloud_front/distribution/cache_behavior'
      autoload :DefaultCacheBehavior, 'cloud_former/resource_properties/cloud_front/distribution/default_cache_behavior'
      autoload :Restrictions, 'cloud_former/resource_properties/cloud_front/distribution/restrictions'
      autoload :Origin, 'cloud_former/resource_properties/cloud_front/distribution/origin'
      autoload :GeoRestriction, 'cloud_former/resource_properties/cloud_front/distribution/geo_restriction'
      autoload :ViewerCertificate, 'cloud_former/resource_properties/cloud_front/distribution/viewer_certificate'
      autoload :S3OriginConfig, 'cloud_former/resource_properties/cloud_front/distribution/s3_origin_config'
      autoload :CustomErrorResponse, 'cloud_former/resource_properties/cloud_front/distribution/custom_error_response'
      autoload :Logging, 'cloud_former/resource_properties/cloud_front/distribution/logging'
      autoload :DistributionConfig, 'cloud_former/resource_properties/cloud_front/distribution/distribution_config'
      autoload :OriginCustomHeader, 'cloud_former/resource_properties/cloud_front/distribution/origin_custom_header'

      aws_property :distribution_config, type: Distribution::DistributionConfig, embed: true, required: true
      aws_property :tags, type: Tag, list: true, embed: true
    end
  end
end
