Module hex_api_key
Data Types
api_permission()
api_permission() = #{domain => api, resource => read | write}
permission()
permission() = api_permission() | repo_permission() | repos_permission()
repo_permission()
repo_permission() = #{domain => repository, resource => binary()}
repos_permission()
repos_permission() = #{domain => repositories}
Function Index
add/3 | Adds a new API or repository key. |
delete/2 | Deletes an API or repository key. |
delete_all/1 | Deletes all API and repository keys associated with the account. |
get/2 | Gets an API or repository key by name. |
list/1 | Lists the user's or organization's API and repository keys. |
Function Details
add/3
add(Config::hex_core:config(), Name::binary(), Permissions::[permission()]) -> hex_api:response()
Adds a new API or repository key.
Examples:
> hex_api_key:add(hex_core:default_config(), <<"test">>, [...]).
{ok, {200, ..., #{
<<"authing_key">> => true,
<<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
<<"last_use">> =>
#{<<"ip">> => <<"1.2.3.4">>,
<<"used_at">> => <<"2019-02-27T14:38:54Z">>,
<<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
<<"name">> => <<"hex_core">>,
<<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
<<"revoked_at">> => nil,
<<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
<<"url">> => <<"https://hex.pm/api/keys/test">>},
}}}
delete/2
delete(Config::hex_core:config(), Name::binary()) -> hex_api:response()
Deletes an API or repository key.
Examples:
> hex_api_key:delete(hex_core:default_config(), <<"test">>).
{ok, {200, ..., #{
<<"authing_key">> => true,
<<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
<<"last_use">> =>
#{<<"ip">> => <<"1.2.3.4">>,
<<"used_at">> => <<"2019-02-27T14:38:54Z">>,
<<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
<<"name">> => <<"hex_core">>,
<<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
<<"revoked_at">> => nil,
<<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
<<"url">> => <<"https://hex.pm/api/keys/test">>},
}}}
delete_all/1
delete_all(Config::hex_core:config()) -> hex_api:response()
Deletes all API and repository keys associated with the account.
Examples:
> hex_api_key:delete_all(hex_core:default_config()).
{ok, {200, ..., [#{
<<"authing_key">> => true,
<<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
<<"last_use">> =>
#{<<"ip">> => <<"1.2.3.4">>,
<<"used_at">> => <<"2019-02-27T14:38:54Z">>,
<<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
<<"name">> => <<"hex_core">>,
<<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
<<"revoked_at">> => nil,
<<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
<<"url">> => <<"https://hex.pm/api/keys/test">>},
}]}}
get/2
get(Config::hex_core:config(), Name::binary()) -> hex_api:response()
Gets an API or repository key by name.
Examples:
> hex_api_key:get(hex_core:default_config(), <<"test">>).
{ok, {200, ..., #{
<<"authing_key">> => true,
<<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
<<"last_use">> =>
#{<<"ip">> => <<"1.2.3.4">>,
<<"used_at">> => <<"2019-02-27T14:38:54Z">>,
<<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
<<"name">> => <<"hex_core">>,
<<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
<<"revoked_at">> => nil,
<<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
<<"url">> => <<"https://hex.pm/api/keys/test">>},
}}}
list/1
list(Config::hex_core:config()) -> hex_api:response()
Lists the user's or organization's API and repository keys.
Examples:
> hex_api_key:list(hex_core:default_config()).
{ok, {200, ..., [#{
<<"authing_key">> => true,
<<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
<<"last_use">> =>
#{<<"ip">> => <<"1.2.3.4">>,
<<"used_at">> => <<"2019-02-27T14:38:54Z">>,
<<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
<<"name">> => <<"hex_core">>,
<<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
<<"revoked_at">> => nil,
<<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
<<"url">> => <<"https://hex.pm/api/keys/test">>},
}]}}