class Fog::AWS::DNS::Record

Public Class Methods

new(attributes={}) click to toggle source
Calls superclass method
# File lib/fog/aws/models/dns/record.rb, line 25
def initialize(attributes={})
  super
end

Public Instance Methods

destroy() click to toggle source
# File lib/fog/aws/models/dns/record.rb, line 29
def destroy
  options = attributes_to_options('DELETE')
  service.change_resource_record_sets(zone.id, [options])
  true
end
modify(new_attributes) click to toggle source
# File lib/fog/aws/models/dns/record.rb, line 49
def modify(new_attributes)
  options = []

  # Delete the current attributes
  options << attributes_to_options('DELETE')

  # Create the new attributes
  merge_attributes(new_attributes)
  options << attributes_to_options('CREATE')

  data = service.change_resource_record_sets(zone.id, options).body
  merge_attributes(data)
  true
end
ready?() click to toggle source

Returns true if record is insync. May only be called for newly created or modified records that have a change_id and status set.

# File lib/fog/aws/models/dns/record.rb, line 66
def ready?
  requires :change_id, :status
  status == 'INSYNC'
end
reload() click to toggle source
Calls superclass method
# File lib/fog/aws/models/dns/record.rb, line 71
def reload
  # If we have a change_id (newly created or modified), then reload performs a get_change to update status.
  if change_id
    data = service.get_change(change_id).body
    merge_attributes(data)
    self
  else
    super
  end
end
save() click to toggle source
# File lib/fog/aws/models/dns/record.rb, line 39
def save
  unless self.alias_target
    self.ttl ||= 3600
  end
  options = attributes_to_options('CREATE')
  data = service.change_resource_record_sets(zone.id, [options]).body
  merge_attributes(data)
  true
end
zone() click to toggle source
# File lib/fog/aws/models/dns/record.rb, line 35
def zone
  @zone
end

Private Instance Methods

attributes_to_options(action) click to toggle source
# File lib/fog/aws/models/dns/record.rb, line 88
def attributes_to_options(action)
  requires :name, :type, :zone
  requires_one :value, :alias_target
  options = {
      :action           => action,
      :name             => name,
      :resource_records => [*value],
      :alias_target     => symbolize_keys(alias_target),
      :ttl              => ttl,
      :type             => type,
      :weight           => weight,
      :set_identifier   => set_identifier,
      :region           => region,
      :failover         => failover,
      :geo_location     => geo_location,
      :health_check_id  => health_check_id
  }
  unless self.alias_target
    requires :ttl
    options[:ttl] = ttl
  end
  options
end
zone=(new_zone) click to toggle source
# File lib/fog/aws/models/dns/record.rb, line 84
def zone=(new_zone)
  @zone = new_zone
end