Class: Vultr::InstancesResource

Inherits:
Resource
  • Object
show all
Defined in:
lib/vultr/resources/instances.rb

Instance Attribute Summary

Attributes inherited from Resource

#client

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from Vultr::Resource

Instance Method Details

#attach_iso(instance_id:, iso_id:) ⇒ Object



116
117
118
# File 'lib/vultr/resources/instances.rb', line 116

def attach_iso(instance_id:, iso_id:)
  Object.new post_request("instances/#{instance_id}/iso/attach", body: {iso_id: iso_id}).body.dig("iso_status")
end

#attach_private_network(instance_id:, network_id:) ⇒ Object



104
105
106
# File 'lib/vultr/resources/instances.rb', line 104

def attach_private_network(instance_id:, network_id:)
  post_request("instances/#{instance_id}/private-networks/attach", body: {network_id: network_id})
end

#backup_schedule(instance_id:) ⇒ Object



124
125
126
# File 'lib/vultr/resources/instances.rb', line 124

def backup_schedule(instance_id:)
  Object.new get_request("instances/#{instance_id}/backup-schedule").body.dig("backup_schedule")
end

#bandwidth(instance_id:) ⇒ Object



44
45
46
# File 'lib/vultr/resources/instances.rb', line 44

def bandwidth(instance_id:)
  Object.new get_request("instances/#{instance_id}/bandwidth").body.dig("bandwidth")
end

#create(**attributes) ⇒ Object



8
9
10
# File 'lib/vultr/resources/instances.rb', line 8

def create(**attributes)
  Instance.new post_request("instances", body: attributes).body.dig("instance")
end

#create_ipv4(instance_id:, **params) ⇒ Object



65
66
67
# File 'lib/vultr/resources/instances.rb', line 65

def create_ipv4(instance_id:, **params)
  Object.new post_request("instances/#{instance_id}/ipv4", body: params).body.dig("ipv4")
end

#create_ipv4_reverse(instance_id:, **params) ⇒ Object



73
74
75
# File 'lib/vultr/resources/instances.rb', line 73

def create_ipv4_reverse(instance_id:, **params)
  post_request("instances/#{instance_id}/ipv4/reverse", body: params)
end

#create_ipv6_reverse(instance_id:, **params) ⇒ Object



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

def create_ipv6_reverse(instance_id:, **params)
  post_request("instances/#{instance_id}/ipv6/reverse", body: params)
end

#delete(instance_id:) ⇒ Object



20
21
22
# File 'lib/vultr/resources/instances.rb', line 20

def delete(instance_id:)
  delete_request("instances/#{instance_id}")
end

#delete_ipv4(instance_id:, ipv4:) ⇒ Object



69
70
71
# File 'lib/vultr/resources/instances.rb', line 69

def delete_ipv4(instance_id:, ipv4:)
  delete_request("instances/#{instance_id}/ipv4/#{ipv4}")
end

#delete_ipv6_reverse(instance_id:, ipv6:) ⇒ Object



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

def delete_ipv6_reverse(instance_id:, ipv6:)
  delete_request("instances/#{instance_id}/ipv6/reverse/#{ipv6}")
end

#detach_iso(instance_id:, iso_id:) ⇒ Object



120
121
122
# File 'lib/vultr/resources/instances.rb', line 120

def detach_iso(instance_id:, iso_id:)
  Object.new post_request("instances/#{instance_id}/iso/detach", body: {iso_id: iso_id}).body.dig("iso_status")
end

#detach_private_network(instance_id:, network_id:) ⇒ Object



108
109
110
# File 'lib/vultr/resources/instances.rb', line 108

def detach_private_network(instance_id:, network_id:)
  post_request("instances/#{instance_id}/private-networks/detach", body: {network_id: network_id})
end

#halt(instance_id:, **attributes) ⇒ Object



40
41
42
# File 'lib/vultr/resources/instances.rb', line 40

def halt(instance_id:, **attributes)
  post_request("instances/#{instance_id}/halt", body: attributes)
end

#halt_instances(instance_ids:) ⇒ Object

Bulk operations



133
134
135
# File 'lib/vultr/resources/instances.rb', line 133

def halt_instances(instance_ids:)
  post_request("instances/halt", body: {instance_ids: Array(instance_ids)})
end

#ipv6_reverse(instance_id:) ⇒ Object



86
87
88
89
# File 'lib/vultr/resources/instances.rb', line 86

def ipv6_reverse(instance_id:)
  response = get_request("instances/#{instance_id}/ipv6/reverse")
  Collection.from_response(response, key: "reverse_ipv6s", type: Object)
end

#iso(instance_id:) ⇒ Object



112
113
114
# File 'lib/vultr/resources/instances.rb', line 112

def iso(instance_id:)
  Object.new get_request("instances/#{instance_id}/iso").body.dig("iso_status")
end

#list(**params) ⇒ Object



3
4
5
6
# File 'lib/vultr/resources/instances.rb', line 3

def list(**params)
  response = get_request("instances", params: params)
  Collection.from_response(response, key: "instances", type: Instance)
end

#list_ipv4(instance_id:, **params) ⇒ Object



60
61
62
63
# File 'lib/vultr/resources/instances.rb', line 60

def list_ipv4(instance_id:, **params)
  response = get_request("instances/#{instance_id}/ipv4", params: params)
  Collection.from_response(response, key: "ipv4s", type: Object)
end

#list_ipv6(instance_id:, **params) ⇒ Object



81
82
83
84
# File 'lib/vultr/resources/instances.rb', line 81

def list_ipv6(instance_id:, **params)
  response = get_request("instances/#{instance_id}/ipv6", params: params)
  Collection.from_response(response, key: "ipv6s", type: Object)
end

#list_private_networks(instance_id:, **params) ⇒ Object



99
100
101
102
# File 'lib/vultr/resources/instances.rb', line 99

def list_private_networks(instance_id:, **params)
  response = get_request("instances/#{instance_id}/private-networks", params: params)
  Collection.from_response(response, key: "private_networks", type: PrivateNetwork)
end

#neighbors(instance_id:) ⇒ Object



48
49
50
# File 'lib/vultr/resources/instances.rb', line 48

def neighbors(instance_id:)
  get_request("instances/#{instance_id}/neighbors").body.dig("neighbors")
end

#reboot(instance_id:, **attributes) ⇒ Object



28
29
30
# File 'lib/vultr/resources/instances.rb', line 28

def reboot(instance_id:, **attributes)
  post_request("instances/#{instance_id}/reboot", body: attributes)
end

#reboot_instances(instance_ids:) ⇒ Object



137
138
139
# File 'lib/vultr/resources/instances.rb', line 137

def reboot_instances(instance_ids:)
  post_request("instances/reboot", body: {instance_ids: Array(instance_ids)})
end

#reinstall(instance_id:, **attributes) ⇒ Object



32
33
34
# File 'lib/vultr/resources/instances.rb', line 32

def reinstall(instance_id:, **attributes)
  Instance.new post_request("instances/#{instance_id}/reinstall", body: attributes).body.dig("instance")
end

#restore(instance_id:, **attributes) ⇒ Object



36
37
38
# File 'lib/vultr/resources/instances.rb', line 36

def restore(instance_id:, **attributes)
  Object.new post_request("instances/#{instance_id}/restore", body: attributes).body.dig("status")
end

#retrieve(instance_id:) ⇒ Object



12
13
14
# File 'lib/vultr/resources/instances.rb', line 12

def retrieve(instance_id:)
  Instance.new get_request("instances/#{instance_id}").body.dig("instance")
end

#set_backup_schedule(instance_id:, **attributes) ⇒ Object



128
129
130
# File 'lib/vultr/resources/instances.rb', line 128

def set_backup_schedule(instance_id:, **attributes)
  post_request("instances/#{instance_id}/backup-schedule", body: attributes)
end

#set_default_reverse_dns_entry(instance_id:, **params) ⇒ Object



77
78
79
# File 'lib/vultr/resources/instances.rb', line 77

def set_default_reverse_dns_entry(instance_id:, **params)
  post_request("instances/#{instance_id}/ipv4/reverse/default", body: params)
end

#start(instance_id:, **attributes) ⇒ Object



24
25
26
# File 'lib/vultr/resources/instances.rb', line 24

def start(instance_id:, **attributes)
  post_request("instances/#{instance_id}/start", body: attributes)
end

#start_instances(instance_ids:) ⇒ Object



141
142
143
# File 'lib/vultr/resources/instances.rb', line 141

def start_instances(instance_ids:)
  post_request("instances/start", body: {instance_ids: Array(instance_ids)})
end

#update(instance_id:, **attributes) ⇒ Object



16
17
18
# File 'lib/vultr/resources/instances.rb', line 16

def update(instance_id:, **attributes)
  patch_request("instances/#{instance_id}", body: attributes)
end

#upgrades(instance_id:, **params) ⇒ Object



56
57
58
# File 'lib/vultr/resources/instances.rb', line 56

def upgrades(instance_id:, **params)
  Object.new get_request("instances/#{instance_id}/upgrades", params: params).body.dig("upgrades")
end

#user_data(instance_id:) ⇒ Object



52
53
54
# File 'lib/vultr/resources/instances.rb', line 52

def user_data(instance_id:)
  Object.new get_request("instances/#{instance_id}/user-data").body.dig("user_data")
end