Sha256: 25f2bcbd69b901f29705f477464636e8b8f0157653dad6df733bf5ba533df62b

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

module HTTPX
  module Plugins

    interface _SigV4Credentials
      def username: () -> String
      def password: () -> String
      def security_token: () -> String?
    end

    module AWSSigV4

      Credentials: _SigV4Credentials


      class Signer

        def sign!: (Request) -> void

        private

        def initialize: (
          service: String,
          region: String,
          ?credentials: _SigV4Credentials,
          ?username: String,
          ?password: String,
          ?security_token: String,
          ?provider_prefix: String,
          ?header_provider_field: String,
          ?unsigned_headers: Array[String],
          ?apply_checksum_header: bool,
          ?algorithm: String
        ) -> untyped


        def sha256_hexdigest: (bodyIO value) -> String

        def hmac: (String key, String value) -> String
        def hexhmac: (String key, String value) -> String
      end


      interface _SigV4Options
        def sigv4_signer: () -> Signer?
      end

      def self.extra_options: (Options) -> (Options & _SigV4Options)
      def self.load_dependencies: (singleton(Session)) -> void

      module InstanceMethods
        def aws_sigv4_authentication: (**untyped) -> instance
      end

      module RequestMethods
        def canonical_path: () -> String

        def canonical_query: () -> String
      end
    end

    type awsSigV4Session = Session & AWSSigV4::InstanceMethods
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
httpx-0.16.1 sig/plugins/aws_sigv4.rbs
httpx-0.16.0 sig/plugins/aws_sigv4.rbs