class CloudflareClient::Zone::Firewall::AccessRule

Constants

VALID_CASCADES
VALID_CONFIG_TARGETS
VALID_MODES
VALID_ORDERS
VALID_SCOPE_TYPES

Public Instance Methods

create(mode:, configuration:, notes: nil) click to toggle source

create firewall access rule

# File lib/cloudflare_client/zone/firewall/access_rule.rb, line 50
def create(mode:, configuration:, notes: nil)
  valid_value_check(:mode, mode, VALID_MODES)
  if configuration.is_a?(Hash)
    unless configuration.keys.map(&:to_sym).sort == [:target, :value]
      raise 'configuration must contain valid a valid target and value'
    end
  else
    raise 'configuration must be a valid configuration object'
  end

  data         = {mode: mode, configuration: configuration}
  data[:notes] = notes unless notes.nil?

  cf_post(path: "/zones/#{zone_id}/firewall/access_rules/rules", data: data)
end
delete(id:, cascade: 'none') click to toggle source

delete a firewall access rule

# File lib/cloudflare_client/zone/firewall/access_rule.rb, line 81
def delete(id:, cascade: 'none')
  id_check('id', id)
  valid_value_check(:cascade, cascade, VALID_CASCADES)

  cf_delete(path: "/zones/#{zone_id}/firewall/access_rules/rules/#{id}")
end
list(notes: nil, mode: nil, match: nil, scope_type: nil, configuration_value: nil, order: nil, page: 1, per_page: 50, configuration_target: nil, direction: 'desc') click to toggle source

firewall_access_rules_for_a_zone

# File lib/cloudflare_client/zone/firewall/access_rule.rb, line 10
def list(notes: nil, mode: nil, match: nil, scope_type: nil, configuration_value: nil, order: nil, page: 1, per_page: 50, configuration_target: nil, direction: 'desc')
  params                       = {page: page, per_page: per_page}
  params[:notes]               = notes unless notes.nil?
  params[:configuration_value] = configuration_value unless configuration_value.nil?

  unless mode.nil?
    valid_value_check(:mode, mode, VALID_MODES)
    params[:mode] = mode
  end

  unless match.nil?
    valid_value_check(:match, match, VALID_MATCHES)
    params[:match] = match
  end

  unless scope_type.nil?
    valid_value_check(:scope_type, scope_type, VALID_SCOPE_TYPES)
    params[:scope_type] = scope_type
  end

  unless configuration_target.nil?
    valid_value_check(:configuration_target, configuration_target, VALID_CONFIG_TARGETS)
    params[:configuration_target] = configuration_target
  end

  unless direction.nil?
    valid_value_check(:direction, direction, VALID_DIRECTIONS)
    params[:direction] = direction
  end

  unless order.nil?
    valid_value_check(:order, order, VALID_ORDERS)
    params[:order] = order
  end

  cf_get(path: "/zones/#{zone_id}/firewall/access_rules/rules", params: params)
end
update(id:, mode: nil, notes: nil) click to toggle source

updates firewall_access_rule

# File lib/cloudflare_client/zone/firewall/access_rule.rb, line 68
def update(id:, mode: nil, notes: nil)
  id_check('id', id)
  valid_value_check(:mode, mode, VALID_MODES) unless mode.nil?

  data         = {}
  data[:mode]  = mode unless mode.nil?
  data[:notes] = notes unless notes.nil?

  cf_patch(path: "/zones/#{zone_id}/firewall/access_rules/rules/#{id}", data: data)
end