anchor.diff:                     KeyName     :: string() | binary()) ->
             elibcloud_func_result(no_such_key).
   get_key_pair({Provider, UserName, Password}, KeyName) ->
  -    JsonInput = [{<<"action">>,      <<"get_key_pair">>},
  -                 {<<"provider">>,    bin(Provider)},
  -                 {<<"userName">>,    bin(UserName)},
  -                 {<<"password">>,    bin(Password)},
  -                 {<<"keyName">>,     bin(KeyName)}],
  +    JsonInput = [{<<"action">>,   <<"get_key_pair">>},
  +                 {<<"provider">>, bin(Provider)},
  +                 {<<"userName">>, bin(UserName)},
  +                 {<<"password">>, bin(Password)},
  +                 {<<"keyName">>,  bin(KeyName)}],
   
       case libcloud_wrapper(JsonInput) of
           {ok, JsonRes} ->
  
positive.code: %% @end
  %%------------------------------------------------------------------------------
  -spec create_node(Credentials        :: credentials(),
                        NodeName           :: string() | binary(),
                        SizeId             :: string() | binary(),
                        ImageId            :: string() | binary(),
                        KeyName            :: string() | binary(),
                        SecurityGroupNames :: [string() | binary()]) ->
            elibcloud_func_result(no_such_size |
                                  no_such_image |
                                  no_such_key |
                                  no_such_group).
  create_node({Provider, UserName, Password}, NodeName, SizeId, ImageId,
                  KeyName, SecurityGroupNames) ->
  
      lager:debug("Create node (NodeName=~p)", [NodeName]),
      JsonInput = [{<<"action">>,             <<"create_node">>},
  
negative.code: -type elibcloud_func_result(ErrorAtoms) ::
            {'ok', json_term()} |
            {error, {ErrorAtom :: ErrorAtoms,
                     Details   :: json_term()}} |
            {'error', string()}.
  
  -type security_rule() :: {FromPort :: integer(),
                            ToPort   :: integer(),
                            Port     :: tcp | udp | icmp}.
  
  %% Supported provider: "EC2".
  -type credentials() :: {Provider :: string() | binary(),
                          UserName :: string() | binary(),
                          Password :: string() | binary()}.
  
  -export_type([credentials/0]).
  
  