class SkullIsland::Resources::AccessControlList

The ACL resource class

@see docs.konghq.com/hub/kong-inc/acl/ ACL API definition

Public Class Methods

batch_import(data, verbose: false, test: false) click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 17
def self.batch_import(data, verbose: false, test: false)
  raise(Exceptions::InvalidArguments) unless data.is_a?(Array)

  known_ids = []

  data.each_with_index do |resource_data, index|
    resource = new
    resource.delayed_set(:group, resource_data)
    resource.delayed_set(:consumer, resource_data)
    resource.import_update_or_skip(index: index, verbose: verbose, test: test)
    known_ids << resource.id
  end

  known_ids
end
relative_uri() click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 33
def self.relative_uri
  'acls'
end

Public Instance Methods

export(options = {}) click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 45
def export(options = {})
  hash = { 'group' => group }
  hash['consumer'] = "<%= lookup :consumer, '#{consumer.username}' %>" if consumer
  [*options[:exclude]].each do |exclude|
    hash.delete(exclude.to_s)
  end
  [*options[:include]].each do |inc|
    hash[inc.to_s] = send(inc.to_sym)
  end
  hash.reject { |_, value| value.nil? }
end
modified_existing?() click to toggle source

Keys can't be updated, only created or deleted

# File lib/skull_island/resources/access_control_list.rb, line 58
def modified_existing?
  false
end
project() click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 62
def project
  consumer ? consumer.project : nil
end
relative_uri() click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 37
def relative_uri
  consumer ? "#{consumer.relative_uri}/acls/#{id}" : nil
end
save_uri() click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 41
def save_uri
  consumer ? "#{consumer.relative_uri}/acls" : nil
end

Private Instance Methods

postprocess_consumer(value) click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 68
def postprocess_consumer(value)
  if value.is_a?(Hash)
    Consumer.new(
      entity: value,
      lazy: true,
      tainted: false,
      api_client: api_client
    )
  else
    value
  end
end
preprocess_consumer(input) click to toggle source
# File lib/skull_island/resources/access_control_list.rb, line 81
def preprocess_consumer(input)
  if input.is_a?(Hash)
    input
  else
    { 'id' => input.id }
  end
end
validate_consumer(value) click to toggle source

Used to validate {#consumer} on set

# File lib/skull_island/resources/access_control_list.rb, line 90
def validate_consumer(value)
  # allow either a Consumer object or a Hash
  value.is_a?(Consumer) || value.is_a?(Hash)
end
validate_group(value) click to toggle source

Used to validate {#group} on set

# File lib/skull_island/resources/access_control_list.rb, line 96
def validate_group(value)
  # allow a String
  value.is_a?(String)
end