View Source aws_sigv4_internal (aws_signature v0.0.0)

Summary

Types

credentials/0

-type credentials() ::
          #credentials{access_key_id :: binary(),
                       secret_access_key :: binary(),
                       session_token :: binary()}.

headers/0

-type headers() :: [{binary(), binary()}].

internal_signer/0

-type internal_signer() ::
          #internal_signer{request :: aws_sigv4_internal:request(),
                           payload_hash :: binary(),
                           time :: calendar:datetime(),
                           credentials :: aws_sigv4_internal:credentials(),
                           options :: aws_sigv4_internal:v4_signer_options(),
                           algorithm :: binary(),
                           credential_scope :: binary(),
                           sign_string :: aws_sigv4_internal:sign_string()}.

request/0

-type request() ::
          #request{method :: binary(),
                   url :: binary(),
                   headers :: aws_sigv4_internal:headers(),
                   body :: binary(),
                   host :: binary()}.

sign_string/0

-type sign_string() :: fun((binary()) -> {ok, binary()} | {error, any()}).

v4_signer_options/0

-type v4_signer_options() ::
          #v4_signer_options{is_signed :: fun((binary()) -> boolean()) | undefined,
                             disable_implicit_payload_hashing :: boolean(),
                             disable_double_path_escape :: boolean(),
                             add_payload_hash_header :: boolean()}.

Functions

do(Signer)

-spec do(internal_signer()) -> {ok, headers()} | {error, any()}.

resolve_time(Time)

-spec resolve_time(calendar:datetime() | undefined) -> calendar:datetime().