class CloudflareClient::VirtualDnsCluster

Constants

VALID_SCOPES

Attributes

uri_prefix[R]

Public Class Methods

new(args) click to toggle source

virtual DNS using scope to determine if this is for users or for orgs

Calls superclass method CloudflareClient::new
# File lib/cloudflare_client/virtual_dns_cluster.rb, line 11
def initialize(args)
  scope  = args.delete(:scope)&.to_sym
  org_id = args.delete(:org_id)

  valid_value_check(:scope, scope, VALID_SCOPES)

  if scope == :user
    @uri_prefix = '/user'
  else
    id_check(:org_id, org_id)

    @uri_prefix = "/organizations/#{org_id}"
  end

  super
end

Public Instance Methods

create(name:, origin_ips:, minimum_cache_ttl: nil, maximum_cache_ttl: nil, deprecate_any_request: nil, ratelimit: nil) click to toggle source

create a virtual dns cluster

# File lib/cloudflare_client/virtual_dns_cluster.rb, line 36
def create(name:,
           origin_ips:,
           minimum_cache_ttl: nil,
           maximum_cache_ttl: nil,
           deprecate_any_request: nil,
           ratelimit: nil)
  id_check(:name, name)
  max_length_check(:name, name, 160)
  non_empty_array_check(:origin_ips, origin_ips)

  data = {name: name, origin_ips: origin_ips}

  unless minimum_cache_ttl.nil?
    range_check(:minimum_cache_ttl, minimum_cache_ttl, 30, 36000)
    data[:minimum_cache_ttl] = minimum_cache_ttl
  end

  unless maximum_cache_ttl.nil?
    range_check(:maximum_cache_ttl, maximum_cache_ttl, 30, 36000)
    data[:maximum_cache_ttl] = maximum_cache_ttl
  end

  unless deprecate_any_request.nil?
    valid_value_check(:deprecate_any_request, deprecate_any_request, [true, false])
    data[:deprecate_any_request] = deprecate_any_request
  end

  unless ratelimit.nil?
    range_check(:ratelimit, ratelimit, 0, 100000000)
    data[:ratelimit] = ratelimit
  end

  cf_post(path: "#{uri_prefix}/virtual_dns", data: data)
end
delete(id:) click to toggle source

delete a dns cluster (user)

# File lib/cloudflare_client/virtual_dns_cluster.rb, line 81
def delete(id:)
  id_check(:id, id)

  cf_delete(path: "#{uri_prefix}/virtual_dns/#{id}")
end
list() click to toggle source

list virutal dns clsuters for a user or an org

# File lib/cloudflare_client/virtual_dns_cluster.rb, line 30
def list
  cf_get(path: "#{uri_prefix}/virtual_dns")
end
show(id:) click to toggle source

details of a cluster

# File lib/cloudflare_client/virtual_dns_cluster.rb, line 73
def show(id:)
  id_check(:id, id)

  cf_get(path: "#{uri_prefix}/virtual_dns/#{id}")
end
update(id:, name: nil, origin_ips: nil, minimum_cache_ttl: nil, maximum_cache_ttl: nil, deprecate_any_request: nil, ratelimit: nil) click to toggle source

updates a dns cluster (user)

# File lib/cloudflare_client/virtual_dns_cluster.rb, line 89
def update(id:,
           name: nil,
           origin_ips: nil,
           minimum_cache_ttl: nil,
           maximum_cache_ttl: nil,
           deprecate_any_request: nil,
           ratelimit: nil)
  id_check(:id, id)

  data = {}

  unless name.nil?
    id_check(:name, name)
    max_length_check(:name, name, 160)
    data[:name] = name
  end

  unless origin_ips.nil?
    non_empty_array_check(:origin_ips, origin_ips)
    data[:origin_ips] = origin_ips
  end

  unless minimum_cache_ttl.nil?
    range_check(:minimum_cache_ttl, minimum_cache_ttl, 30, 36000)
    data[:minimum_cache_ttl] = minimum_cache_ttl
  end

  unless maximum_cache_ttl.nil?
    range_check(:maximum_cache_ttl, maximum_cache_ttl, 30, 36000)
    data[:maximum_cache_ttl] = maximum_cache_ttl
  end

  unless deprecate_any_request.nil?
    valid_value_check(:deprecate_any_request, deprecate_any_request, [true, false])
    data[:deprecate_any_request] = deprecate_any_request
  end

  unless ratelimit.nil?
    range_check(:ratelimit, ratelimit, 0, 100000000)
    data[:ratelimit] = ratelimit
  end

  cf_patch(path: "#{uri_prefix}/virtual_dns/#{id}", data: data)
end