diff --git a/lib/ex_aws/sts.ex b/lib/ex_aws/sts.ex index d02d721..f4c70ee 100644 --- a/lib/ex_aws/sts.ex +++ b/lib/ex_aws/sts.ex @@ -15,6 +15,7 @@ defmodule ExAws.STS do | {:token_code, binary} | {:external_id, binary} | {:policy, policy} + | {:tags, map} @doc """ Assume Role. @@ -166,5 +167,13 @@ defmodule ExAws.STS do defp parse_opt(opts, {:external_id, val}), do: Map.put(opts, "ExternalId", val) defp parse_opt(opts, {:policy, val}), do: Map.put(opts, "Policy", json_codec().encode!(val)) + defp parse_opt(opts, {:tags, val}), + do: + Map.to_list(val) + |> Enum.with_index() + |> Enum.reduce(opts, fn {{k, v}, i}, acc -> + Map.put(acc, "Tags.member.#{i + 1}.Key", k) |> Map.put("Tags.member.#{i + 1}.Value", v) + end) + defp json_codec(), do: ExAws.Config.build_base(:sts) |> Map.get(:json_codec) end