AWSAuth.Credentials (AWSAuth v1.4.0)

Copy Markdown View Source

AWS credentials struct for authentication.

This struct holds AWS credentials for signing requests. It can be created manually or loaded from environment variables.

Fields

  • :access_key_id - AWS Access Key ID (required)
  • :secret_access_key - AWS Secret Access Key (required)
  • :session_token - AWS Session Token for temporary credentials (optional)
  • :region - AWS region (optional, defaults to "us-east-1")

Examples

# Create credentials manually
creds = %AWSAuth.Credentials{
  access_key_id: "AKIAIOSFODNN7EXAMPLE",
  secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  region: "us-east-1"
}

# Load from environment variables
creds = AWSAuth.Credentials.from_env()

# Load from environment with fallback
creds = AWSAuth.Credentials.from_env() || %AWSAuth.Credentials{
  access_key_id: "...",
  secret_access_key: "..."
}

Environment Variables

from_env/0 reads the following environment variables:

  • AWS_ACCESS_KEY_ID - Access key ID
  • AWS_SECRET_ACCESS_KEY - Secret access key
  • AWS_SESSION_TOKEN - Session token (optional)
  • AWS_REGION or AWS_DEFAULT_REGION - Region (optional)

Summary

Functions

Creates credentials from environment variables.

Creates credentials from a keyword list or map.

Types

t()

@type t() :: %AWSAuth.Credentials{
  access_key_id: String.t() | nil,
  region: String.t() | nil,
  secret_access_key: String.t() | nil,
  session_token: String.t() | nil
}

Functions

from_env()

@spec from_env() :: t() | nil

Creates credentials from environment variables.

Returns nil if required environment variables are not set.

Examples

# With environment variables set
System.put_env("AWS_ACCESS_KEY_ID", "AKIAIOSFODNN7EXAMPLE")
System.put_env("AWS_SECRET_ACCESS_KEY", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
System.put_env("AWS_REGION", "us-west-2")

creds = AWSAuth.Credentials.from_env()
# => %AWSAuth.Credentials{
#      access_key_id: "AKIAIOSFODNN7EXAMPLE",
#      secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
#      region: "us-west-2",
#      session_token: nil
#    }

# Without required environment variables
System.delete_env("AWS_ACCESS_KEY_ID")
AWSAuth.Credentials.from_env()
# => nil

from_map(map_or_keyword)

@spec from_map(map() | keyword()) :: t()

Creates credentials from a keyword list or map.

Examples

AWSAuth.Credentials.from_map(%{
  access_key_id: "AKIAIOSFODNN7EXAMPLE",
  secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  region: "us-east-1"
})