Sha256: bb2999ab57d8489ef3990498aa5fb2c501bead3b105146122504991142971dce

Contents?: true

Size: 1.71 KB

Versions: 65

Compression:

Stored size: 1.71 KB

Contents

module HTTPX
  module Plugins

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

    module AWSSigV4

      class Credentials < Struct[[String, String, String?]]
        attr_reader username: String
        attr_reader password: String
        attr_reader security_token: String?
      end


      class Signer

        @unsigned_headers: Set[String]

        def sign!: (Request & RequestMethods request) -> void

        def self.new: (instance) -> instance
                    | (**untyped params) -> instance
        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 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

65 entries across 65 versions & 1 rubygems

Version Path
httpx-0.18.3 sig/plugins/aws_sigv4.rbs
httpx-0.18.2 sig/plugins/aws_sigv4.rbs
httpx-0.18.1 sig/plugins/aws_sigv4.rbs
httpx-0.18.0 sig/plugins/aws_sigv4.rbs
httpx-0.17.0 sig/plugins/aws_sigv4.rbs