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