doex v0.2.2 Doex View Source
A client library for interacting with the Digital Ocean API.
Before you get started, you will need to configure access to your Digital Ocean account. For this, you will need your API TOKEN
Let’s say your token is ABC123, then configure it as follows:
mix doex.init
mix doex.config token ABC123
And to confirm it’s set, run
mix doex.config
And the output should look similar to:
ssh_keys: []
token: "ABC123"
url: "https://api.digitalocean.com/v2"
We can now start a iEX session, iex -S mix
, and confirm the information above
iex> Doex.config
%{ssh_keys: [], token: "ABC123", url: "https://api.digitalocean.com/v2"}
The underlying API calls are made through
Doex.Api
You only need to provide the endpoint after the /v2
, so to access your account
you would run
iex> Doex.Api.get("/account")
OR, you encode the method, and make the same call like
iex> Doex.Api.call(:get, %{source: "/account"})
If your configurations are message up (or other errors occur), it will look similar to
{:error,
"Expected a 200, received 401",
%{"id" => "unauthorized", "message" => "Unable to authenticate you."}}
If things are working as expected, a success message looks like
{:ok,
%{"account" => %{"droplet_limit" => 99, "email" => "me@example.com",
"email_verified" => true, "floating_ip_limit" => 5, "status" => "active",
"status_message" => "",
"uuid" => "abcdefghabcdefghabcdefghabcdefghabcdefgh"}}}
To send a POST command, for example creating a new droplet, you can run
iex> Doex.Api.post(
"/droplets",
%{name: "dplet001",
region: "tor1",
size: "512mb",
image: "ubuntu-14-04-x64",
ssh_keys: [12345],
backups: false,
ipv6: true,
user_data: nil,
private_networking: nil,
volumes: nil,
tags: ["dplet001"]})
OR, you encode the method, and make the same call like
iex> Doex.Api.call(
:post,
%{source: "/droplets",
body: %{name: "dplet001",
region: "tor1",
size: "512mb",
image: "ubuntu-14-04-x64",
ssh_keys: [12345],
backups: false,
ipv6: true,
user_data: nil,
private_networking: nil,
volumes: nil,
tags: ["dplet001"]}})
The underlying configs are stored in a Doex.Worker
and can be reloaded using
Doex.reload
At present, there are no client specific convenience methods, but when there are they will be located in
Doex.Client
Link to this section Summary
Link to this section Functions
Retrieve the DOEX configs.
Reload the DOEX configs from the defaulted location