class CloudflareClient::Zone::DNS

Constants

VALID_TYPES

Public Instance Methods

create(name:, type:, content:, ttl: nil, proxied: nil) click to toggle source

Create a dns record

# File lib/cloudflare_client/zone/dns.rb, line 9
def create(name:, type:, content:, ttl: nil, proxied: nil)
  raise ("type must be one of #{VALID_TYPES.flatten}") unless VALID_TYPES.include?(type)
  data = {name: name, type: type, content: content}
  data[:ttl] = ttl unless ttl.nil?
  data[:proxied] = proxied unless proxied.nil?
  cf_post(path: "/zones/#{zone_id}/dns_records", data: data)
end
delete(id:) click to toggle source

delete a dns record id is required. ttl and proxied are optional

# File lib/cloudflare_client/zone/dns.rb, line 53
def delete(id:)
  id_check('id', id)
  cf_delete(path: "/zones/#{zone_id}/dns_records/#{id}")
end
list(name: nil, content: nil, per_page: 50, page_no: 1, order: 'type', match: 'all', type: nil) click to toggle source

list/search for dns records in a given zone

# File lib/cloudflare_client/zone/dns.rb, line 19
def list(name: nil, content: nil, per_page: 50, page_no: 1, order: 'type', match: 'all', type: nil)
  raise('match must be either all | any') unless %w[all any].include?(match)
  params           = {per_page: per_page, page: page_no, order: order}
  params[:name]    = name unless name.nil?
  params[:content] = content unless content.nil?
  params[:type]    = type unless type.nil?
  cf_get(path: "/zones/#{zone_id}/dns_records", params: params)
end
show(id:) click to toggle source

details for a given dns_record

# File lib/cloudflare_client/zone/dns.rb, line 30
def show(id:)
  id_check('dns record id', id)
  cf_get(path: "/zones/#{zone_id}/dns_records/#{id}")
end
update(id:, type:, name:, content:, ttl: nil, proxied: nil) click to toggle source

update a dns record. zone_id, id, type, and name are all required. ttl and proxied are optional

# File lib/cloudflare_client/zone/dns.rb, line 38
def update(id:, type:, name:, content:, ttl: nil, proxied: nil)
  id_check('dns record id', id)
  id_check('dns record type', type)
  id_check('dns record name', name)
  id_check('dns record content', content)
  raise('must suply type, name, and content') if (type.nil? || name.nil? || content.nil?)
  data           = {type: type, name: name, content: content}
  data[:ttl]     = ttl unless ttl.nil?
  data[:proxied] = proxied unless proxied.nil?
  cf_put(path: "/zones/#{zone_id}/dns_records/#{id}", data: data)
end