Class: Vultr::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/vultr/client.rb

Constant Summary collapse

BASE_URL =
"https://api.vultr.com/v2"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, adapter: Faraday.default_adapter, stubs: nil) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
13
# File 'lib/vultr/client.rb', line 7

def initialize(api_key:, adapter: Faraday.default_adapter, stubs: nil)
  @api_key = api_key
  @adapter = adapter

  # Test stubs for requests
  @stubs = stubs
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



5
6
7
# File 'lib/vultr/client.rb', line 5

def adapter
  @adapter
end

#api_keyObject (readonly)

Returns the value of attribute api_key.



5
6
7
# File 'lib/vultr/client.rb', line 5

def api_key
  @api_key
end

Instance Method Details

#accountObject



15
16
17
# File 'lib/vultr/client.rb', line 15

def 
  AccountResource.new(self)
end

#applicationsObject



19
20
21
# File 'lib/vultr/client.rb', line 19

def applications
  ApplicationsResource.new(self)
end

#backupsObject



23
24
25
# File 'lib/vultr/client.rb', line 23

def backups
  BackupsResource.new(self)
end

#bare_metalObject



27
28
29
# File 'lib/vultr/client.rb', line 27

def bare_metal
  BareMetalResource.new(self)
end

#block_storageObject



31
32
33
# File 'lib/vultr/client.rb', line 31

def block_storage
  BlockStorageResource.new(self)
end

#connectionObject



99
100
101
102
103
104
105
106
107
108
109
# File 'lib/vultr/client.rb', line 99

def connection
  @connection ||= Faraday.new(BASE_URL) do |conn|
    conn.request :authorization, :Bearer, api_key
    conn.request :json

    conn.response :dates
    conn.response :json, content_type: "application/json"

    conn.adapter adapter, @stubs
  end
end

#dnsObject



35
36
37
# File 'lib/vultr/client.rb', line 35

def dns
  DnsResource.new(self)
end

#firewallObject



39
40
41
# File 'lib/vultr/client.rb', line 39

def firewall
  FirewallResource.new(self)
end

#instancesObject



43
44
45
# File 'lib/vultr/client.rb', line 43

def instances
  InstancesResource.new(self)
end

#isoObject



47
48
49
# File 'lib/vultr/client.rb', line 47

def iso
  IsoResource.new(self)
end

#kubernetesObject



51
52
53
# File 'lib/vultr/client.rb', line 51

def kubernetes
  KubernetesResource.new(self)
end

#load_balancersObject



55
56
57
# File 'lib/vultr/client.rb', line 55

def load_balancers
  LoadBalancersResource.new(self)
end

#object_storageObject



59
60
61
# File 'lib/vultr/client.rb', line 59

def object_storage
  ObjectStorageResource.new(self)
end

#operating_systemsObject



63
64
65
# File 'lib/vultr/client.rb', line 63

def operating_systems
  OperatingSystemsResource.new(self)
end

#plansObject



67
68
69
# File 'lib/vultr/client.rb', line 67

def plans
  PlansResource.new(self)
end

#private_networksObject



71
72
73
# File 'lib/vultr/client.rb', line 71

def private_networks
  PrivateNetworksResource.new(self)
end

#regionsObject



79
80
81
# File 'lib/vultr/client.rb', line 79

def regions
  RegionsResource.new(self)
end

#reserved_ipsObject



75
76
77
# File 'lib/vultr/client.rb', line 75

def reserved_ips
  ReservedIpsResource.new(self)
end

#snapshotsObject



83
84
85
# File 'lib/vultr/client.rb', line 83

def snapshots
  SnapshotsResource.new(self)
end

#ssh_keysObject



87
88
89
# File 'lib/vultr/client.rb', line 87

def ssh_keys
  SshKeysResource.new(self)
end

#startup_scriptsObject



91
92
93
# File 'lib/vultr/client.rb', line 91

def startup_scripts
  StartupScriptsResource.new(self)
end

#usersObject



95
96
97
# File 'lib/vultr/client.rb', line 95

def users
  UserResource.new(self)
end