class Fog::AWS::CDN::Distribution

Constants

CONFIG

items part of DistributionConfig

Public Class Methods

new(new_attributes = {}) click to toggle source
Calls superclass method
# File lib/fog/aws/models/cdn/distribution.rb, line 30
def initialize(new_attributes = {})
  super(distribution_config_to_attributes(new_attributes))
end

Public Instance Methods

invalidations() click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 34
def invalidations
  @invalidations ||= begin
    Fog::AWS::CDN::Invalidations.new(
      :distribution => self,
      :service => service
    )
  end
end
save() click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 43
def save
  requires_one :s3_origin, :custom_origin
  options = attributes_to_options
  response = identity ? put_distribution_config(identity, etag, options) : post_distribution(options)
  etag = response.headers['ETag']
  merge_attributes(response.body)
  true
end

Private Instance Methods

attributes_to_options() click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 66
def attributes_to_options
  options = {
    'CallerReference' => caller_reference,
    'S3Origin' => s3_origin,
    'CustomOrigin' => custom_origin,
    'CNAME' => cname,
    'Comment' => comment,
    'Enabled' => enabled,
    'Logging' => logging,
    'TrustedSigners' => trusted_signers,
    'DefaultRootObject' => default_root_object
  }
  options.reject! { |k,v| v.nil? }
  options.reject! { |k,v| v.respond_to?(:empty?) && v.empty? }
  options
end
delete_distribution(identity, etag) click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 54
def delete_distribution(identity, etag)
  service.delete_distribution(identity, etag)
end
distribution_config_to_attributes(new_attributes = {}) click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 83
def distribution_config_to_attributes(new_attributes = {})
  new_attributes.merge(new_attributes.delete('DistributionConfig') || {})
end
post_distribution(options = {}) click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 62
def post_distribution(options = {})
  service.post_distribution(options)
end
put_distribution_config(identity, etag, options) click to toggle source
# File lib/fog/aws/models/cdn/distribution.rb, line 58
def put_distribution_config(identity, etag, options)
  service.put_distribution_config(identity, etag, options)
end