-module(rocksky@apikey).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/apikey.gleam").
-export([create/1, with_description/2, list_keys/0, remove/1, update/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(" `app.rocksky.apikey.*` — manage personal API keys.\n").
-file("src/rocksky/apikey.gleam", 12).
?DOC(
" `app.rocksky.apikey.createApikey` — provision a new API key. Add a blurb\n"
" via `with_description` before sending.\n"
).
-spec create(binary()) -> rocksky:request(rocksky@types:api_key()).
create(Name) ->
Body = gleam@json:object([{<<"name"/utf8>>, gleam@json:string(Name)}]),
_pipe = rocksky:procedure(
<<"app.rocksky.apikey.createApikey"/utf8>>,
rocksky@decoders:api_key()
),
_pipe@1 = rocksky:body(_pipe, Body),
rocksky:param(_pipe@1, <<"name"/utf8>>, Name).
-file("src/rocksky/apikey.gleam", 22).
?DOC(" Attach an optional description to a `create` or `update` request.\n").
-spec with_description(rocksky:request(HPE), binary()) -> rocksky:request(HPE).
with_description(Req, Description) ->
rocksky:param(Req, <<"description"/utf8>>, Description).
-file("src/rocksky/apikey.gleam", 27).
?DOC(" `app.rocksky.apikey.getApikeys` — list current keys.\n").
-spec list_keys() -> rocksky:request(gleam@dynamic:dynamic_()).
list_keys() ->
rocksky:'query'(
<<"app.rocksky.apikey.getApikeys"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
).
-file("src/rocksky/apikey.gleam", 32).
?DOC(" `app.rocksky.apikey.removeApikey` — revoke a key.\n").
-spec remove(binary()) -> rocksky:request(rocksky@types:api_key()).
remove(Id) ->
_pipe = rocksky:procedure(
<<"app.rocksky.apikey.removeApikey"/utf8>>,
rocksky@decoders:api_key()
),
rocksky:param(_pipe, <<"id"/utf8>>, Id).
-file("src/rocksky/apikey.gleam", 38).
?DOC(" `app.rocksky.apikey.updateApikey` — rename or re-describe a key.\n").
-spec update(binary(), binary()) -> rocksky:request(rocksky@types:api_key()).
update(Id, Name) ->
Body = gleam@json:object(
[{<<"id"/utf8>>, gleam@json:string(Id)},
{<<"name"/utf8>>, gleam@json:string(Name)}]
),
_pipe = rocksky:procedure(
<<"app.rocksky.apikey.updateApikey"/utf8>>,
rocksky@decoders:api_key()
),
rocksky:body(_pipe, Body).