anchor.diff:      end.
   
   %%------------------------------------------------------------------------------
  +%% @doc Import a key pair from a file.
  +%%
  +%% In case of success, the result is an empty JSON object.
  +%% @end
  +%%------------------------------------------------------------------------------
  +-spec import_key_pair_from_file(Provider :: string() | binary(),
  +                                UserName :: string() | binary(),
  +                                Password :: string() | binary(),
  +                                KeyName  :: string() | binary(),
  +                                FileName :: string() | binary()) ->
  +          elibcloud_func_result(key_already_exists |
  +                                file_read_error).
  +import_key_pair_from_file(Provider, UserName, Password, KeyName, FileName) ->
  +
  +    case file:read_file(FileName) of
  +        {ok, KeyMaterial} ->
  +            import_key_pair_from_string(Provider, UserName, Password,
  +                                        KeyName, KeyMaterial);
  +        {error, Reason} ->
  +            lager:debug("Key pair import error (KeyName=~p, FileName=~p): ~p",
  +                        [KeyName, FileName, Reason]),
  +            Details = [{<<"reason">>, Reason},
  +                       {<<"keyName">>, KeyName},
  +                       {<<"fileName">>, FileName}],
  +            {error, {file_read_error, Details}}
  +    end.
  +
  +%%------------------------------------------------------------------------------
   %% @doc Delete a key pair.
   %%
   %% In case of success, the result is an empty JSON object.
   %%
  -%% <ul>
   %% @end
   %%------------------------------------------------------------------------------
   -spec delete_key_pair(Provider    :: string() | binary(),
  
positive.code:          destroy_instance/4,
           get_key_pair/4,
           import_key_pair_from_string/5,
           delete_key_pair/4,
           list_security_groups/3,
           create_security_group/5,
  
negative.code: import_key_pair_from_string(Provider, UserName, Password, KeyName,
                              KeyMaterial) ->
  
      lager:debug("Import key pair (KeyName=~p)", [KeyName]),
      JsonInput = [{<<"action">>,      <<"import_key_pair_from_string">>},
                   {<<"provider">>,    bin(Provider)},
                   {<<"userName">>,    bin(UserName)},
  