Sha256: ee27bb3b2e8fe499ef879813be3835c3b454fa1e35b0892a4fd1c6a8be80289c
Contents?: true
Size: 1.39 KB
Versions: 3
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module Aws module Plugins # Provide support for `api_key` parameter for `api-gateway` protocol # specific `api-gateway` protocol gems' user-agent class ApiKey < Seahorse::Client::Plugin option(:api_key, default: nil, doc_type: 'String', docstring: <<-DOCS) When provided, `x-api-key` header will be injected with the value provided. DOCS def add_handlers(handlers, config) handlers.add(OptionHandler, step: :initialize) handlers.add(ApiKeyHandler, step: :build, priority: 0) end # @api private class OptionHandler < Seahorse::Client::Handler def call(context) if context.operation.require_apikey if context.params.is_a?(Hash) api_key = context.params.delete(:api_key) end api_key = context.config.api_key if api_key.nil? context[:api_key] = api_key end @handler.call(context) end end # @api private class ApiKeyHandler < Seahorse::Client::Handler def call(context) if context[:api_key] apply_api_key(context) end @handler.call(context) end private def apply_api_key(context) context.http_request.headers['x-api-key'] = context[:api_key] end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aws-sdk-core-3.104.2 | lib/aws-sdk-core/plugins/api_key.rb |
aws-sdk-core-3.104.1 | lib/aws-sdk-core/plugins/api_key.rb |
aws-sdk-core-3.104.0 | lib/aws-sdk-core/plugins/api_key.rb |