vultr
Version:
Promise-based library to communicate with the Vultr API
453 lines (303 loc) • 8.34 kB
Markdown
# node-vultr
Node.JS Promise-based library to communicate with the Vultr API
Test coverage is currently 100%, although some tests involving actually creating the VPS's itself are currently not tested.
This library creates a new instance of "Vultr" for you, exposing a few libraries and methods you can use to communicate.
To start a new Vultr instance:
```js
var Vultr = require('vultr');
var vultrInstance = new Vultr(apiKey);
```
`apiKey` is your Vultr API key.
## Enable the Vultr API
You can generate a Vultr API key from the `Settings` page.
## Running the integration tests
It's safe for you to run the integration tests, simply copy `config/data.example.js` to `config/data.js` and fill out your real API key. Run `npm test` to run the tests.
## Account
### vultrInstance.account.info
```js
vultrInstance.account.info().then(function(info) {
// Returns Object with account info
})
```
## DNS
### vultrInstance.dns.list
```js
vultrInstance.dns.list().then(function(list) {
// Returns array with DNS entries
})
```
### vultrInstance.dns.createDomain
```js
vultrInstance.dns.createDomain('dualdev.com')
```
### vultrInstance.dns.createRecord
```js
vultrInstance.dns.createRecord({
'domain': 'dualdev.com',
'name': 'test',
'type': 'A',
'data': '127.0.0.1'
})
```
### vultrInstance.dns.records
```js
vultrInstance.dns.records('dualdev.com').then(function(list) {
// Returns array with DNS entries
})
```
### vultrInstance.dns.deleteRecord
```js
vultrInstance.dns.deleteRecord({
'domain': 'dualdev.com',
'id': id
})
```
### vultrInstance.dns.deleteDomain
```js
vultrInstance.dns.deleteDomain('dualdev.com');
```
## OS
### vultrInstance.os.list
```js
vultrInstance.os.list().then(function(list) {
// Returns array with OS objects
})
```
## ISO
### vultrInstance.iso.list
```js
vultrInstance.iso.list().then(function(list) {
// Returns array with ISO objects
})
```
### vultrInstance.iso.createFromUrl
```js
vultrInstance.iso.createFromUrl().then(function(list) {
// Returns Object with ISO upload status
})
```
## Backup
### vultrInstance.backup.list
```js
vultrInstance.backup.list().then(function(list) {
// Returns array with Backup objects
})
```
## Plans
### vultrInstance.plans.list
```js
vultrInstance.plans.list().then(function(list) {
// Returns array with PLAN objects
})
```
## Regions
### vultrInstance.regions.list
```js
vultrInstance.regions.list().then(function(list) {
// Returns array of REGION objects
})
```
### vultrInstance.regions.availability
Retrieve a list of the VPSPLANIDs currently available in this location. (DCID can be retrieved from `vultrInstance.regions.list()`)
```js
vultrInstance.regions.availability(DCID).then(function(plans) {
// Returns array of PLAN objects
})
```
## Server
### vultrInstance.server.list
```js
vultrInstance.server.list().then(function(list) {
// Returns array of vps's
})
```
### vultrInstance.server.bandwidth
`SUBID` is the VPS ID
```js
vultrInstance.server.bandwidth(SUBID).then(function(bandwidth) {
// Returns bandwidth objects
})
```
### vultrInstance.server.reboot
`SUBID` is the VPS ID
```js
vultrInstance.server.reboot(SUBID)
```
### vultrInstance.server.halt
`SUBID` is the VPS ID
```js
vultrInstance.server.halt(SUBID)
```
### vultrInstance.server.start
`SUBID` is the VPS ID. This function also RESTARTS an already running VPS.
```js
vultrInstance.server.start(SUBID)
```
### vultrInstance.server.destroy
`SUBID` is the VPS ID
```js
vultrInstance.server.destroy(SUBID)
```
### vultrInstance.server.reinstall
`SUBID` is the VPS ID
```js
vultrInstance.server.reinstall(SUBID)
```
### vultrInstance.server.restoreSnapshot
`SUBID` is the VPS ID. `SNAPSHOTID` can be retrieved from `vultrInstance.snapshot.list()`.
```js
vultrInstance.server.restoreSnapshot(SUBID, SNAPSHOTID)
```
### vultrInstance.server.restoreBackup
`SUBID` is the VPS ID. `BACKUPID` cannot be retrieved yet (asked Vultr support about this).
```js
vultrInstance.server.restoreSnapshot(SUBID, BACKUPID)
```
### vultrInstance.server.create
`create` returns `SUBID`, this is used in many other calls. PLAN, OS and REGION can be retrieved from the services offering the same name.
```js
vultrInstance.server.create({
'plan': PLAN,
'os': OS,
'region': REGION
})
```
### vultrInstance.server.listIpv4
`SUBID` is the VPS ID.
```js
vultrInstance.server.listIpv4(SUBID).then(function(list) {
// Returns object of ipv4 addresses
})
```
### vultrInstance.server.reverseSetIpv4
`SUBID` is the VPS ID.
```js
vultrInstance.server.reverseSetIpv4(SUBID, IP, ENTRY)
```
### vultrInstance.server.reverseDefaultIpv4
`SUBID` is the VPS ID.
```js
vultrInstance.server.reverseDefaultIpv4(SUBID, IP)
```
### vultrInstance.server.listIpv6
`SUBID` is the VPS ID.
```js
vultrInstance.server.listIpv6(SUBID).then(function(list) {
// Returns object of ipv6 addresses
})
```
### vultrInstance.server.reverseSetIpv6
`SUBID` is the VPS ID.
```js
vultrInstance.server.reverseSetIpv6(SUBID, IP, ENTRY)
```
### vultrInstance.server.reverseListIpv6
`SUBID` is the VPS ID.
```js
vultrInstance.server.reverseListIpv6(SUBID).then(function(list) {
// Returns object of reverse ipv6 entries
})
```
### vultrInstance.server.reverseDeleteIpv6
`SUBID` is the VPS ID.
```js
vultrInstance.server.reverseDeleteIpv6(SUBID, IP)
```
### vultrInstance.server.setLabel
`SUBID` is the VPS ID. `LABEL` is a `string` of your choosing.
```js
vultrInstance.server.setLabel(SUBID, LABEL)
```
### vultrInstance.server.createIpv4
`SUBID` is the VPS ID. The second argument is "yes" or "no" to trigger a reboot.
```js
vultrInstance.server.createIpv4(SUBID, 'no')
```
### vultrInstance.server.destroyIpv4
`SUBID` is the VPS ID. The second argument is "yes" or "no" to trigger a reboot.
```js
vultrInstance.server.destroyIpv4(SUBID, 'no')
```
### vultrInstance.server.osChangeList
`SUBID` is the VPS ID.
```js
vultrInstance.server.osChangeList(SUBID).then(function(list) {
// Returns object of available OS's
})
```
### vultrInstance.server.osChange
`SUBID` is the VPS ID.
```js
vultrInstance.server.osChange(SUBID, OSID)
```
### vultrInstance.server.upgradePlanlist
`SUBID` is the VPS ID.
```js
vultrInstance.server.upgradePlanlist(SUBID).then(function(list) {
// Returns object of available upgrade plans
})
```
### vultrInstance.server.upgradePlan
`SUBID` is the VPS ID.
```js
vultrInstance.server.upgradePlan(SUBID, PLANID)
```
## Snapshot
### vultrInstance.snapshot.list
```js
vultrInstance.snapshot.list().then(function(list) {
// Returns array of snapshot objects
})
```
### vultrInstance.snapshot.create
`SUBID` is the VPS ID. `DESCRIPTION` is an optional description for this snapshot.
```js
vultrInstance.snapshot.create(SUBID, DESCRIPTION)
```
### vultrInstance.snapshot.destroy
`SNAPSHOTID` can be retrieved from `vultrInstance.snapshopt.list()`.
```js
vultrInstance.snapshot.destroy(SNAPSHOTID)
```
## SSHKey
### vultrInstance.sshkey.list
```js
vultrInstance.sshkey.list().then(function(list) {
// Returns array of sshkey objects
})
```
### vultrInstance.sshkey.create
```js
vultrInstance.sshkey.create(NAME, KEY)
```
### vultrInstance.sshkey.update
`SSHKEYID` can be retrieved from `vultrInstance.sshkey.list()` or after calling `vultrInstance.sshkey.create()`.
```js
vultrInstance.sshkey.update(NAME, KEY, SSHKEYID)
```
### vultrInstance.sshkey.destroy
`SSHKEYID` can be retrieved from `vultrInstance.sshkey.list()` or after calling `vultrInstance.sshkey.create()`.
```js
vultrInstance.sshkey.destroy(SSHKEYID)
```
## StartupScript
### vultrInstance.startupscript.list
```js
vultrInstance.startupscript.list().then(function(list) {
// Returns array of startupscript objects
})
```
### vultrInstance.startupscript.create
```js
vultrInstance.startupscript.create(NAME, KEY)
```
### vultrInstance.startupscript.update
`SSHKEYID` can be retrieved from `vultrInstance.startupscript.list()` or after calling `vultrInstance.startupscript.create()`.
```js
vultrInstance.startupscript.update(NAME, KEY, SSHKEYID)
```
### vultrInstance.startupscript.destroy
`SSHKEYID` can be retrieved from `vultrInstance.startupscript.list()` or after calling `vultrInstance.startupscript.create()`.
```js
vultrInstance.startupscript.destroy(SSHKEYID)
```