class Deputy53::Zone

A DNS Zone

Attributes

id[R]

Public Class Methods

new(id) click to toggle source
# File lib/deputy53/zone.rb, line 10
def initialize(id)
  @id = id
  self
end

Public Instance Methods

delegating?(name) click to toggle source
# File lib/deputy53/zone.rb, line 41
def delegating?(name)
  records('NS').any? { |r| r.name == name }
end
delegation(name) click to toggle source
# File lib/deputy53/zone.rb, line 46
def delegation(name)
  records('NS')
    .select { |r| r.name == name }
    .flat_map(&:resource_records)
    .map(&:value)
end
name_servers() click to toggle source
# File lib/deputy53/zone.rb, line 26
def name_servers
  @name_servers ||= zone.delegation_set.name_servers
end
records() click to toggle source
# File lib/deputy53/zone.rb, line 31
def records
  @records ||= route53.api.list_resource_record_sets(hosted_zone_id: id).resource_record_sets
end
route53() click to toggle source
# File lib/deputy53/zone.rb, line 16
def route53
  @route53 ||= Route53.new
end
zone() click to toggle source
# File lib/deputy53/zone.rb, line 21
def zone
  @zone ||= route53.api.get_hosted_zone(id: id).data
end