Class: Hcloud::FloatingIP

Inherits:
Object
  • Object
show all
Includes:
EntryLoader
Defined in:
lib/hcloud/floating_ip.rb

Constant Summary collapse

Attributes =
{
  id: nil,
  description: nil,
  ip: nil,
  type: nil,
  dns_ptr: nil,
  home_location: Location,
  blocked: nil,
}

Instance Method Summary collapse

Methods included from EntryLoader

#initialize, #request

Instance Method Details

#actionsObject



33
34
35
# File 'lib/hcloud/floating_ip.rb', line 33

def actions
  ActionResource.new(client: client, parent: self, base_path: "floating_ips/#{id.to_i}")
end

#assign(server:) ⇒ Object



21
22
23
24
25
# File 'lib/hcloud/floating_ip.rb', line 21

def assign(server:)
  j = Oj.load(request("floating_ips/#{id.to_i}/actions/assign", 
                      j: {server: server}).run.body)
  Action.new(j["action"], self, client)
end

#destroyObject



37
38
39
40
# File 'lib/hcloud/floating_ip.rb', line 37

def destroy
  request("floating_ips/#{id}", method: :delete).run.body
  true
end

#unassignObject



27
28
29
30
31
# File 'lib/hcloud/floating_ip.rb', line 27

def unassign
  j = Oj.load(request("floating_ips/#{id.to_i}/actions/unassign", 
                      method: :post).run.body)
  Action.new(j["action"], self, client)
end

#update(description:) ⇒ Object



14
15
16
17
18
19
# File 'lib/hcloud/floating_ip.rb', line 14

def update(description:)
  j = Oj.load(request("floating_ips/#{id.to_i}", 
                      j: {description: description}, 
                      method: :put).run.body)
  FloatingIP.new(j["floating_ip"], self, client)
end