class Aws::Plugins::Sign::SignatureV4
def initialize(auth_scheme, config, sigv4_overrides = {})
def initialize(auth_scheme, config, sigv4_overrides = {}) scheme_name = auth_scheme['name'] unless %w[sigv4 sigv4a sigv4-s3express].include?(scheme_name) raise ArgumentError, "Expected sigv4, sigv4a, or sigv4-s3express auth scheme, got #{scheme_name}" end region = if scheme_name == 'sigv4a' auth_scheme['signingRegionSet'].join(',') else auth_scheme['signingRegion'] end begin @signer = config.sigv4_signer || Aws::Sigv4::Signer.new( service: config.sigv4_name || auth_scheme['signingName'], region: sigv4_overrides[:region] || config.sigv4_region || region, credentials_provider: sigv4_overrides[:credentials] || config.credentials, signing_algorithm: scheme_name.to_sym, uri_escape_path: !!!auth_scheme['disableDoubleEncoding'], normalize_path: !!!auth_scheme['disableNormalizePath'], unsigned_headers: %w[content-length user-agent x-amzn-trace-id expect transfer-encoding connection] ) rescue Aws::Sigv4::Errors::MissingCredentialsError raise Aws::Errors::MissingCredentialsError end end