3434-export ([fetch /1 ]).
3535
3636-spec fetch (aws_credentials_provider :options ()) ->
37- {error , any ()} | {ok , aws_credentials :credentials (), 'infinity' }.
37+ {ok , aws_credentials :credentials (), aws_credentials_provider :expiration ()} |
38+ {error , any ()}.
3839fetch (Options ) ->
3940 FilePath = get_file_path (Options ),
4041 ConfigPath = does_credentials_file_exist (FilePath , config ),
@@ -77,18 +78,18 @@ maybe_add_home(Path) ->
7778 end .
7879
7980-spec maybe_add_region (
80- {error , any ()} | {ok , aws_credentials :credentials (), 'infinity' },
81+ {error , any ()} | {ok , aws_credentials :credentials (), aws_credentials_provider : expiration () },
8182 {error , any ()} | string (),
8283 aws_credentials_provider :options ()
83- ) -> {ok , aws_credentials :credentials (), 'infinity' }.
84+ ) -> {ok , aws_credentials :credentials (), aws_credentials_provider : expiration () }.
8485maybe_add_region ({error , _ } = Error , _Config , _Options ) -> Error ;
8586maybe_add_region (Result , {error , _Error }, _Options ) -> Result ;
86- maybe_add_region ({ok , Credentials , infinity }, ConfigPath , Options ) ->
87+ maybe_add_region ({ok , Credentials , Expiration }, ConfigPath , Options ) ->
8788 case parse_config_file (ConfigPath , Options ) of
8889 {ok , Config } ->
89- {ok , maps :put (region , maps :get (<<" region" >>, Config ), Credentials ), infinity };
90+ {ok , maps :put (region , maps :get (<<" region" >>, Config ), Credentials ), Expiration };
9091 {error , _ } ->
91- {ok , Credentials , infinity }
92+ {ok , Credentials , Expiration }
9293 end .
9394
9495-spec check_path_exists (string ()) -> {error , 'file_not_found' } | string ().
@@ -99,7 +100,7 @@ check_path_exists(Path) ->
99100 end .
100101
101102-spec parse_credentials_file (string (), aws_credentials_provider :options ()) ->
102- {error , any ()} | {ok , aws_credentials :credentials (), 'infinity' }.
103+ {error , any ()} | {ok , aws_credentials :credentials (), aws_credentials_provider : expiration () }.
103104parse_credentials_file (Path , Options ) ->
104105 {ok , F } = file :read_file (Path ),
105106 {ok , Profiles } = eini :parse (F ),
@@ -114,7 +115,7 @@ parse_credentials_file(Path, Options) ->
114115 maps :get (<<" aws_access_key_id" >>, Profile ),
115116 maps :get (<<" aws_secret_access_key" >>, Profile ),
116117 maps :get (<<" aws_session_token" >>, Profile )),
117- infinity };
118+ maps : get (<< " aws_expiration " >>, Profile , infinity ) };
118119 false ->
119120 {ok , aws_credentials :make_map (? MODULE ,
120121 maps :get (<<" aws_access_key_id" >>, Profile ),
@@ -151,6 +152,8 @@ read_from_profile(File, Profile) ->
151152 {true , {<<" aws_secret_access_key" >>, SAK }};
152153 ({<<" SessionToken" >>, ST }) ->
153154 {true , {<<" aws_session_token" >>, ST }};
155+ ({<<" Expiration" >>, E }) ->
156+ {true , {<<" aws_expiration" >>, E }};
154157 (_ ) ->
155158 false
156159 end , maps :to_list (CredResult ))),
0 commit comments