class RubyLLM::Providers::Bedrock::Signing::SignerOptionExtractor

Utility for extracting options and config

def self.extract_credentials_provider(options)

def self.extract_credentials_provider(options)
  if options[:credentials_provider]
    options[:credentials_provider]
  elsif options.key?(:credentials) || options.key?(:access_key_id)
    StaticCredentialsProvider.new(options)
  else
    raise Errors::MissingCredentialsError
  end
end

def self.extract_region(options)

def self.extract_region(options)
  raise Errors::MissingRegionError unless options[:region]
  options[:region]
end

def self.extract_service(options)

def self.extract_service(options)
  if options[:service]
    options[:service]
  else
    msg = 'missing required option :service'
    raise ArgumentError, msg
  end
end

def self.initialize_unsigned_headers(options)

def self.initialize_unsigned_headers(options)
  headers = Set.new(options.fetch(:unsigned_headers, []).map(&:downcase))
  headers.merge(%w[authorization x-amzn-trace-id expect])
end