Class: DigitalOcean::API

Inherits:
Object
  • Object
show all
Defined in:
lib/digital_ocean/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ API

Creates a new API client instance.

Examples:

client = DigitalOcean::API.new :client_id => '######', :api_key => '#######'

Parameters:

  • params (Hash)

Options Hash (params):

  • :client_id (String)

    The client_id (required)

  • :api_key (String)

    The api_key (required)

  • :base_url (String) — default: 'https://api.digitalocean.com/'

    API base url

  • :faraday_adapter (Symbol) — default: 'Faraday.default_adapter'

    Faraday adapter/http client library to use.

Raises:

  • (ArgumentError)

    when no client_id is provided

  • (ArgumentError)

    when no api_key is provided

See Also:

  • [Faraday]


16
17
18
19
20
21
22
23
24
25
26
# File 'lib/digital_ocean/api.rb', line 16

def initialize(params)
  @client_id       = params[:client_id]
  @api_key         = params[:api_key]
  @debug           = params[:debug]
  @base_url        = params[:base_url]        || 'https://api.digitalocean.com/'
  @faraday_adapter = params[:faraday_adapter] || Faraday.default_adapter
  @faraday         = params[:faraday]         || default_faraday

  raise ArgumentError, ':client_id missing' unless @client_id
  raise ArgumentError, ':api_key missing' unless @api_key
end

Instance Method Details

#default_faradayObject



63
64
65
66
67
68
69
70
71
72
# File 'lib/digital_ocean/api.rb', line 63

def default_faraday
  Faraday.new(:url => @base_url) do |faraday|
    faraday.use AuthenticationMiddleware, @client_id, @api_key
    faraday.request  :url_encoded
    faraday.response :rashify
    faraday.response :json
    faraday.response(:logger) if @debug
    faraday.adapter @faraday_adapter
  end
end

#dropletsDigitalOcean::Resource::Droplet

Access Droplets (virtual machines)



31
32
33
# File 'lib/digital_ocean/api.rb', line 31

def droplets
  DigitalOcean::Resource::Droplet.new(@faraday)
end

#imagesDigitalOcean::Resource::Image

Access Images (Snapshots, Backups)



59
60
61
# File 'lib/digital_ocean/api.rb', line 59

def images
  DigitalOcean::Resource::Image.new(@faraday)
end

#regionsDigitalOcean::Resource::Region

Access Regions (data center location)



45
46
47
# File 'lib/digital_ocean/api.rb', line 45

def regions
  DigitalOcean::Resource::Region.new(@faraday)
end

#sizesDigitalOcean::Resource::Size

Access Sizes (virtual machine types/sizes)



38
39
40
# File 'lib/digital_ocean/api.rb', line 38

def sizes
  DigitalOcean::Resource::Size.new(@faraday)
end

#ssh_keysDigitalOcean::Resource::SSHKey

Access SSH keys



52
53
54
# File 'lib/digital_ocean/api.rb', line 52

def ssh_keys
  DigitalOcean::Resource::SSHKey.new(@faraday)
end