UNPKG

vultr

Version:

Promise-based library to communicate with the Vultr API

453 lines (303 loc) 8.34 kB
# 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) ```