       |> text_body("Hello")
       |> put_provider_option(:tags, [%{name: "name1", value: "test1"}])
       |> put_provider_option(:configuration_set_name, "configuration_set_name1")
+
+  ## IAM role
+
+  In case you use IAM role for authenticating AWS requests, you can fetch
+  temporary `access_key` and `secret_key` from that role, but you also need to
+  include additional `X-Amz-Security-Token` header to that request.
+
+  You can do that by adding `security_token` to `provider_options`.
   """
 
   use Swoosh.Adapter,

  def deliver(%Email{} = email, config \\ []) do
    query = email |> prepare_body(config) |> encode_body
    url = base_url(config)
    headers = prepare_headers(@base_headers, query, config)

    case Swoosh.ApiClient.post(url, headers, query, email) do
      {:ok, 200, _headers, body} ->

    }"
  end

  defp prepare_header_security_token(headers, %{security_token: token}) do
    Map.put(headers, "X-Amz-Security-Token", token)
  end
  
  defp prepare_header_security_token(headers, _provider_options), do: headers

  defp generate_signature(string_to_sign, date_time, region, secret) do
    ("AWS4" <> secret)
