class Aws::Log::ParamFilter

def filter(values, type)

def filter(values, type)
  case values
  when Struct then filter_struct(values, type)
  when Hash then filter_hash(values, type)
  when Array then filter_array(values, type)
  else values
  end
end

def filter_array(values, type)

def filter_array(values, type)
  values.map { |value| filter(value, type) }
end

def filter_hash(values, type)

def filter_hash(values, type)
  if type.const_defined?('SENSITIVE')
    filters = type::SENSITIVE + @additional_filters
  else
    # Support backwards compatibility (new core + old service)
    filters = SENSITIVE + @additional_filters
  end
  filtered = {}
  values.each_pair do |key, value|
    filtered[key] = if @enabled && filters.include?(key)
      '[FILTERED]'
    else
      filter(value, type)
    end
  end
  filtered
end

def filter_struct(values, type)

def filter_struct(values, type)
  if values.class.include? Aws::Structure::Union
    values = { values.member => values.value }
  end
  filter_hash(values, type)
end

def initialize(options = {})

def initialize(options = {})
  @enabled = options[:filter_sensitive_params] != false
  @additional_filters = options[:filter] || []
end