Skip to content

Commit

Permalink
fix indentation in erlcloud_sts:get_federation_token
Browse files Browse the repository at this point in the history
  • Loading branch information
Ransom Richardson committed Feb 23, 2015
1 parent b8dadd3 commit 945611b
Showing 1 changed file with 36 additions and 35 deletions.
71 changes: 36 additions & 35 deletions src/erlcloud_sts.erl
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*-
-module(erlcloud_sts).

-include_lib("erlcloud/include/erlcloud.hrl").
-include_lib("erlcloud/include/erlcloud_aws.hrl").

-export([assume_role/4, assume_role/5,
get_federation_token/3,
get_federation_token/4]).
get_federation_token/3,
get_federation_token/4]).

-define(API_VERSION, "2011-06-15").

Expand Down Expand Up @@ -55,44 +56,44 @@ assume_role(AwsConfig, RoleArn, RoleSessionName, DurationSeconds, ExternalId)


get_federation_token(AwsConfig, DurationSeconds, Name) ->
get_federation_token(AwsConfig, DurationSeconds, Name, undefined).
get_federation_token(AwsConfig, DurationSeconds, Name, undefined).

% See http://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html
-spec get_federation_token/4 :: (#aws_config{}, 900..129600, string(), undefined | string()) -> {#aws_config{}, proplist()}.
get_federation_token(AwsConfig, DurationSeconds, Name, Policy)
when length(Name) >= 2, length(Name) =< 32,
DurationSeconds >= 900, DurationSeconds =< 129600 ->

Params =
[
{"DurationSeconds", DurationSeconds},
{"Name", Name}
],

PolicyList =
case Policy of
undefined -> [];
_ -> [{"Policy", Policy}]
end,
Xml = sts_query(AwsConfig, "GetFederationToken", Params ++ PolicyList),

Creds = erlcloud_xml:decode(
[
{access_key_id , "GetFederationTokenResult/Credentials/AccessKeyId", text},
{secret_access_key , "GetFederationTokenResult/Credentials/SecretAccessKey", text},
{federated_user_arn , "GetFederationTokenResult/FederatedUser/Arn", text},
{federated_user_id , "GetFederationTokenResult/FederatedUser/FederatedUserId", text}
],
Xml),

FederatedConfig =
AwsConfig#aws_config {
access_key_id = proplists:get_value(access_key_id, Creds),
secret_access_key = proplists:get_value(secret_access_key, Creds),
security_token = proplists:get_value(session_token, Creds)
},
{FederatedConfig, Creds}.
DurationSeconds >= 900, DurationSeconds =< 129600 ->

Params =
[
{"DurationSeconds", DurationSeconds},
{"Name", Name}
],

PolicyList =
case Policy of
undefined -> [];
_ -> [{"Policy", Policy}]
end,
Xml = sts_query(AwsConfig, "GetFederationToken", Params ++ PolicyList),

Creds = erlcloud_xml:decode(
[
{access_key_id , "GetFederationTokenResult/Credentials/AccessKeyId", text},
{secret_access_key , "GetFederationTokenResult/Credentials/SecretAccessKey", text},
{federated_user_arn , "GetFederationTokenResult/FederatedUser/Arn", text},
{federated_user_id , "GetFederationTokenResult/FederatedUser/FederatedUserId", text}
],
Xml),

FederatedConfig =
AwsConfig#aws_config {
access_key_id = proplists:get_value(access_key_id, Creds),
secret_access_key = proplists:get_value(secret_access_key, Creds),
security_token = proplists:get_value(session_token, Creds)
},

{FederatedConfig, Creds}.

sts_query(AwsConfig, Action, Params) ->
sts_query(AwsConfig, Action, Params, ?API_VERSION).
Expand Down

0 comments on commit 945611b

Please sign in to comment.