<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->isoApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->authApi();
$res = $api->info();
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->osApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($server, $res)
{
    if ($res === false) {
        echo $server->code . "\n";
        echo $server->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$server = $vultrApi->serverApi();
// safe (read) queries
// Get All servers
$list = $server->getList();
echo "------------- getList --------------\n";
var_dump($list);
// Get servers one by one
foreach ($list as $k => $v) {
    echo "------------- getList(" . $k . ") --------------\n";
    $res = $server->getList($k);
    var_dump($res);
    printReplyIfError($server, $res);
    echo "------------- osChangeList(" . $k . ") --------------\n";
    $res = $server->osChangeList($k);
    var_dump($res);
    printReplyIfError($server, $res);
    echo "------------- appChangeList(" . $k . ") --------------\n";
    $res = $server->appChangeList($k);
    var_dump($res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->dnsApi();
echo "---------- getList() ----------\n";
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
/*
echo "---------- createDomain(domain, ip) ----------\n" ;
$res = $api->createDomain('test01.info', 'PUT_YOUR_SERVER_IP_HERE') ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
echo "---------- records(domain) ----------\n";
$res = $api->records('test01.info');
var_dump($res);
printReplyIfError($api, $res);
/*
echo "---------- createRecord(record) ----------\n" ;
use LinkORB\Vultr\DnsRecordEntity;
$record = new DnsRecordEntity ;
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->regionApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
$res = $api->availability(1);
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->sshKeyApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
/*
// create(name, key) - key is SSH public key
// see https://www.vultr.com/api/#sshkey_create
$res = $api->create("test_key01", "ssh-dss ...== test@example.com") ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
/*
// update(record)
// see https://www.vultr.com/api/#sshkey_update
// Assume that we want change only 'name' field of sshkey record with sshkeyid "12a345b678c90"

use LinkORB\Vultr\SshKeyEntity;

$rec = new SshKeyEntity ;
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->planApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->appApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->startupScriptApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
/*
// create(name, script, type) 
// see https://www.vultr.com/api/#startupscript_create
$res = $api->create("test_script2", "#!/bin/bash\necho hello world > /root/hello", "boot") ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
/*
// update(record)
// see https://www.vultr.com/api/#startupscript_update
// Assume that we want change only 'script' field of startupscript record with scriptid "12345"

use LinkORB\Vultr\StartupScriptEntity;

$rec = new StartupScriptEntity ;
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->userApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
/*
echo "---------- create(user) ----------\n" ;
// create(user)
// see https://www.vultr.com/api/#user_create
use LinkORB\Vultr\UserEntity;
$record = new UserEntity ;
$record->name = 'testuser1' ;
$record->email = '*****@*****.**' ;
$record->api_enabled = "yes" ;
$record->password = "******" ;
$record->acls = [         
    "manage_users",
    "subscriptions",
    "billing",
    "provisioning"] ;
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->reservedIpApi();
/*
// create(dcid, ip_type)
// see https://www.vultr.com/api/#reservedip_create
$res = $api->create(7, "v4") ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
/*
// attach(subid, ip)
// see https://www.vultr.com/api/#reservedip_attach
$res = $api->attach(123456, "123.45.67.89") ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
/*
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->snapshotApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
/*
// create(subid)
// see https://www.vultr.com/api/#snapshot_create
$res = $api->create(1234567) ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
/*
// destroy(snapshotid)
// see https://www.vultr.com/api/#snapshot_destroy
$res = $api->destroy("12345c67890a1") ;
var_dump($res) ;
printReplyIfError($api, $res) ;
*/
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
/*
    There is some stranges in api about backups. 
    According to documentation at https://www.vultr.com/api/ 
    we can list existing backups by call:
        /v1/backup/list
    and we can restore backup by call:
        /v1/server/restore_backup 
    also in options for create server call 
        /v1/server/create
    present option 'auto_backups'
    "auto_backups string (optional) 'yes' or 'no'.  If yes, automatic backups will be enabled for this server
    (these have an extra charge associated with them)"
    
    but where is call for create backup from api ???
*/
$api = $vultrApi->backupApi();
$res = $api->getList();
var_dump($res);
printReplyIfError($api, $res);
<?php

require 'vendor/autoload.php';
use LinkORB\Vultr\Vultr;
function printReplyIfError($api, $res)
{
    if ($res === false) {
        echo $api->code . "\n";
        echo $api->reply . "\n";
    }
}
$vultrApi = new Vultr("PUT_YOUR_API_KEY_HERE");
$api = $vultrApi->accountApi();
$res = $api->info();
var_dump($res);
printReplyIfError($api, $res);