Aura.APIKeys (Aura v1.0.1)

View Source

Service module for interacting with Hex API keys

Resources

Summary

Types

Options to modify a request

Functions

Deletes all API keys for the authenticated requester

Deletes an API key for the authenticated requester, given a key_name

Grabs API key information associated with a given key_name

Grabs info about the requester's API key(s)

Types

api_key_opts()

@type api_key_opts() :: [
  org: Aura.Common.org_name(),
  repo_url: Aura.Common.repo_url()
]

Options to modify a request

Keys

Functions

create_api_key(key_name, username, password, allow_write \\ false, opts \\ [])

@spec create_api_key(
  key_name :: Aura.Common.api_key_name(),
  username :: Aura.Common.username(),
  password :: String.t(),
  allow_write :: boolean(),
  opts :: api_key_opts()
) :: {:ok, Aura.Model.HexAPIKey.t()} | {:error, any()}

Creates a new API key

Parameters

ParameterDescription
key_nameAura.Common.api_key_name/0
usernameAura.Common.username/0
passwordpassword for this user
allow_writewhether the key has write permissions on the api domain. Default: false
opts[:org]Aura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
POST/keysKeyController:create
POST/orgs/opts[:org]/keysKeyController:create

Examples

iex> alias Aura.APIKeys
iex> key_name = "test_user_key"
iex> username = "test@test.com"
iex> password = "elixir1234"
iex> allow_write = true
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, _key} =
...>  APIKeys.create_api_key(key_name, username, password, allow_write, opts)

# scoped to an organization
iex> alias Aura.APIKeys
iex> key_name = "test_user_key"
iex> username = "test@test.com"
iex> password = "elixir1234"
iex> allow_write = true
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, _key} =
...>  APIKeys.create_api_key(key_name, username, password, allow_write, opts)

delete_all_api_keys(opts \\ [])

@spec delete_all_api_keys(opts :: api_key_opts()) :: :ok | {:error, any()}

Deletes all API keys for the authenticated requester

Parameters

ParameterDescription
opts[:org]Aura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
DELETE/keysKeyController:delete_all
DELETE/orgs/opts[:org]/keysKeyController:delete_all

Examples

iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> APIKeys.delete_all_api_keys(opts)
:ok

# scoped to an organization
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> APIKeys.delete_all_api_keys(opts)
:ok

delete_api_key(key_name, opts \\ [])

@spec delete_api_key(key_name :: Aura.Common.api_key_name(), opts :: api_key_opts()) ::
  :ok | {:error, any()}

Deletes an API key for the authenticated requester, given a key_name

Parameters

ParameterDescription
key_nameAura.Common.api_key_name/0
opts[:org]Aura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
DELETE/keys/:key_nameKeyController:delete
DELETE/orgs/opts[:org]/keys/:key_nameKeyController:delete

Examples

iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, [key | _]} = APIKeys.list_api_keys(opts)
iex> APIKeys.delete_api_key(key.name, opts)
:ok

# scoped to an organization
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, [key | _]} = APIKeys.list_api_keys(opts)
iex> APIKeys.delete_api_key(key.name, opts)
:ok

get_api_key(key_name, opts \\ [])

@spec get_api_key(key_name :: Aura.Common.api_key_name(), opts :: api_key_opts()) ::
  {:ok, Aura.Model.HexAPIKey.t()} | {:error, any()}

Grabs API key information associated with a given key_name

Parameters

ParameterDescription
key_nameAura.Common.api_key_name/0
opts[:org]Aura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
GET/keys/:key_nameKeyController:show
GET/orgs/opts[:org]/keys/:key_nameKeyController:show

Examples

iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> keys |> Enum.map(fn key ->  {:ok, _k} = APIKeys.get_api_key(key.name, opts) end)

# scoped to an organization
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> keys |> Enum.map(fn key ->  {:ok, _k} = APIKeys.get_api_key(key.name, opts) end)

list_api_keys(opts \\ [])

@spec list_api_keys(opts :: api_key_opts()) ::
  {:ok, [Aura.Model.HexAPIKey.t()]} | {:error, any()}

Grabs info about the requester's API key(s)

Parameters

ParameterDescription
opts[:org]Aura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
GET/keysKeyController:index
GET/orgs/opts[:org]/keysKeyController:index

Examples

iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> Enum.empty?(keys)
false

# scoped to an organization
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> Enum.empty?(keys)
false