NAV
Shell Go Python

Introduction

Welcome to the Virtomize an automation tool for simplifying the creation and mangement for virtual resources on hypervisors.

Installation

Thank you for choosing Virtomize!

The following information will help you installing and configure our software on your hypervisor.

Virtomize comes as a pre-configured virtual appliance which you need to import into your cluster.

You can find the latest release in our download section

import ova

using govc cli tool

# govc env example
export GOVC_USERNAME=root
export GOVC_PASSWORD=esxipassword
export GOVC_URL=https://my-esxi-server/sdk/
export GOVC_INSECURE=true
./govc import.ova -ds=datastore1 -name=virtomize /path/to/virtomize-latest.ova

You can find more Information in the GOVC USAGE

via ESXI/VCenter WebUI

Importing via WebUI sometimes takes very long, up to multiple hours. Therefore, impot via govc and console should be the preferred install method.

login

troubleshooting

configure cluster

Our software uses the hypervisor API to connect to your cluster so make sure the system can reach your hypervisor.

add a new cluster

# example
Username: root
Password: mysecurepassword
Protocoll: HTTPS
# using the domain path
Cluster Address: my-esxi.local
# or some ip address
Cluster Address: 192.168.0.200
Datastore: datastore1
Folder: isos

a word about the user

Our software does not need full rights on your cluster so it makes sense to not use the root or admin user.

Instead create a new user and a new role with the following rights:

vmware:

Usage

This section gives you a short introduction to your new installed software

logins

The default login is for virtomize appliance:

The default login for installed operating systems:

As always the passwords should be changed to something secure after installation.

create/import a virtual machine

This section will be added soon

profiles

This section will be added soon

create and manage templates

create virtual machine from template

settings

This section will be added soon

user management

callbacks

synchronize

API

Authentication

#### POST
curl -k https:/<ipaddress>/rest/v1/token \
     -d "grant_type=client_credentials" \
     -d "client_id=username" \
     -d "client_secret=password"


#### GET
curl -k https://<ipaddress>/rest/v1/token?grant_type=client_credentials&client_id=username&client_secret=password

#### POST
curl -k https://<ipaddress>/rest/v1/destroy \ 
     -d "access_token=<mytoken>"

Authentication by requesting an OAuth token is required in order to use the API.

A token can be requested via /token and destroyed via /destroy

HTTP Request

GET /backup POST /backup POST /destroy

Help


#### GET
curl -k https://<ipaddress>/rest/v1

An overview of the API paths is available under /. No authorization is required for this path.

HTTP Request

GET /

Backup (get)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/backup

Backup

HTTP Request

GET /backup

HTTP Result

binary : object

Name Type Description
file application/octet-stream file download

Backup (recover)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-F 'backup=@path/to/file' \
	https://<ipaddress>/rest/v1/backup

Recover

HTTP Request

POST /backup

Name Type Description Required
backup application/octet-stream backup file true

HTTP Result

json : object

Name Type Description
msg string general message

Callbacks (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "callbackurl=<string value>" \
	-d "errorcallbackurl=<string value>" \
	-d "notes=<string value>" \
	https://<ipaddress>/rest/v1/callbacks

Create Callbacks

HTTP Request

POST /callbacks

Name Type Description Required
callbackurl string url used when operation succeded true
errorcallbackurl string url used when operation failed true
notes string additional notes false

HTTP Result

json : object

Name Type Description
key int callbacks identifier
callbackurl string url used for successfull install
errorcallbackurl string url used for errors on install
notes string additional notes

Callbacks (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/callbacks/<key>

Delete Callbacks

HTTP Request

DELETE /callbacks/:key

Name Type Description Required
key int callback identifier true

HTTP Result

json : object

Name Type Description
msg string general message
key int resource identifier

Callbacks (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/callbacks

Read All Callbacks

HTTP Request

GET /callbacks

HTTP Result

json : array

Name Type Description
key int callbacks identifier
callbackurl string url used for successfull install
errorcallbackurl string url used for errors on install
notes string additional notes

Callbacks (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/callbacks/<key>

Read Callbacks

HTTP Request

GET /callbacks/:key

Name Type Description Required
key int callback identifier true

HTTP Result

json : object

Name Type Description
key int callbacks identifier
callbackurl string url used for successfull install
errorcallbackurl string url used for errors on install
notes string additional notes

Callbacks (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "callbackurl=<string value>" \
	-d "errorcallbackurl=<string value>" \
	-d "notes=<string value>" \
	https://<ipaddress>/rest/v1/callbacks/<key>

Update Callbacks

HTTP Request

PUT /callbacks/:key

Name Type Description Required
callbackurl string url used when operation succeded true
errorcallbackurl string url used when operation failed true
key int callback identifier true
notes string additional notes false

HTTP Result

json : object

Name Type Description
key int callbacks identifier
callbackurl string url used for successfull install
errorcallbackurl string url used for errors on install
notes string additional notes

Certificate (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-F 'keyfile=@path/to/file' \
	-F 'certfile=@path/to/file' \
	https://<ipaddress>/rest/v1/certificate

Upload Certificate

HTTP Request

POST /certificate

Name Type Description Required
keyfile application/octet-stream private key file true
certfile application/octet-stream cert file true

HTTP Result

json : object

Name Type Description
msg string general message

Clustercredentials (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "username=<string value>" \
	-d "password=<string value>" \
	-d "url=<string value>" \
	-d "type=<string value>" \
	-d "insecure=<true|false>" \
	-d "http=<true|false>" \
	https://<ipaddress>/rest/v1/clustercredentials

Create Cluster Credentials

HTTP Request

POST /clustercredentials

Name Type Description Required
name string credentials name true
username string username used for authentication true
password string password used for authentication true
url string url used for authentication true
type string type of credentials true
insecure bool verify TLS if url is https (true or false) false
http bool use http instead of https protokoll false

HTTP Result

json : object

Name Type Description
key int credentials identifier
name string credentials name
username string username
url string ressource url
insecure bool verify tls connection ( true or false )
http bool
type string credentials type (e.g: vmware, proxmox, …)

Clustercredentials (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clustercredentials/<key>

Delete Cluster Credentials

HTTP Request

DELETE /clustercredentials/:key

Name Type Description Required
key int credentials identifer true

HTTP Result

json : object

Name Type Description
msg string general message
key int resource identifier

Clustercredentials (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clustercredentials

Read All Cluster Credentials

HTTP Request

GET /clustercredentials

HTTP Result

json : array

Name Type Description
key int credentials identifier
name string credentials name
username string username
url string ressource url
insecure bool verify tls connection ( true or false )
http bool
type string credentials type (e.g: vmware, proxmox, …)

Clustercredentials (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clustercredentials/<key>

Read Cluster Credentials

HTTP Request

GET /clustercredentials/:key

Name Type Description Required
key int credentials identifer true

HTTP Result

json : object

Name Type Description
key int credentials identifier
name string credentials name
username string username
url string ressource url
insecure bool verify tls connection ( true or false )
http bool
type string credentials type (e.g: vmware, proxmox, …)

Clustercredentials (test)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clustercredentials/<key>/test

Test Cluster Credentials

HTTP Request

POST /clustercredentials/:key/test

Name Type Description Required
key int credentials identifer true

HTTP Result

json : object

Name Type Description
msg string general message
key int resource identifier

Clustercredentials (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "username=<string value>" \
	-d "password=<string value>" \
	-d "url=<string value>" \
	-d "type=<string value>" \
	-d "insecure=<true|false>" \
	-d "http=<true|false>" \
	https://<ipaddress>/rest/v1/clustercredentials/<key>

Update Cluster Credentials

HTTP Request

PUT /clustercredentials/:key

Name Type Description Required
name string credentials name true
username string username used for authentication true
password string password used for authentication true
url string url used for authentication true
type string type of credentials true
key int credentials identifier true
insecure bool verify TLS if url is https (true or false) false
http bool use http instead of https protokoll false

HTTP Result

json : object

Name Type Description
key int credentials identifier
name string credentials name
username string username
url string ressource url
insecure bool verify tls connection ( true or false )
http bool
type string credentials type (e.g: vmware, proxmox, …)

Clusterdefaults (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "datacenter=<string value>" \
	-d "ressourcepool=<string value>" \
	-d "host=<string value>" \
	-d "datastore=<string value>" \
	https://<ipaddress>/rest/v1/clusterdefaults

Create Cluster Defaults

HTTP Request

POST /clusterdefaults

Name Type Description Required
datacenter string default datacenter used false
ressourcepool string default ressource pool used false
host string default host used false
datastore string default datastore used false

HTTP Result

json : object

Name Type Description
key int cluster default settings identifier
datacenter string default datacenter
ressourcepool string default ressourcepool
host string default host system
datastore string default datastore

Clusterdefaults (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusterdefaults/<key>

Delete Cluster Defaults

HTTP Request

DELETE /clusterdefaults/:key

Name Type Description Required
key int clusterdefaults identifier true

HTTP Result

json : object

Name Type Description
msg string general message
key int resource identifier

Clusterdefaults (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusterdefaults

Read All Cluster Defaults

HTTP Request

GET /clusterdefaults

HTTP Result

json : array

Name Type Description
key int cluster default settings identifier
datacenter string default datacenter
ressourcepool string default ressourcepool
host string default host system
datastore string default datastore

Clusterdefaults (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusterdefaults/<key>

Read Cluster Defaults

HTTP Request

GET /clusterdefaults/:key

Name Type Description Required
key int clusterdefaults identifier true

HTTP Result

json : object

Name Type Description
key int cluster default settings identifier
datacenter string default datacenter
ressourcepool string default ressourcepool
host string default host system
datastore string default datastore

Clusterdefaults (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "datacenter=<string value>" \
	-d "ressourcepool=<string value>" \
	-d "host=<string value>" \
	-d "datastore=<string value>" \
	https://<ipaddress>/rest/v1/clusterdefaults/<key>

Update Cluster Defaults

HTTP Request

PUT /clusterdefaults/:key

Name Type Description Required
key int clusterdefaults identifier true
datacenter string default datacenter used false
ressourcepool string default ressource pool used false
host string default host used false
datastore string default datastore used false

HTTP Result

json : object

Name Type Description
key int cluster default settings identifier
datacenter string default datacenter
ressourcepool string default ressourcepool
host string default host system
datastore string default datastore

Clusters datastores (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>/datastores

Read Datastores

HTTP Request

GET /clusters/:key/datastores

Name Type Description Required
key int cluster identifier true

HTTP Result

json : array

Name Type Description
name string
type string
capacity int64
freespace int64

Clusters imagesync (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>/imagesync

Sync Images

HTTP Request

POST /clusters/:key/imagesync

Name Type Description Required
key int cluster identifier true

HTTP Result

json : array

Name Type Description
name string image name
oskey int operating system identifier
status string image status

Clusters import (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "vmnames[0]=<string value>" \
	-d "vmnames[1]=<string value>" \
	https://<ipaddress>/rest/v1/clusters/<key>/import

Sync Cluster VMto Inventory

HTTP Request

POST /clusters/:key/import

Name Type Description Required
key int key of the cluster true
vmnames []string names of virtual machines to sync from cluster true

HTTP Result

json : array

Name Type Description
name string name of the imported virtual machine
key int resource identifier

Clusters import (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>/import

Read All Virtual Machines From Cluster

HTTP Request

GET /clusters/:key/import

Name Type Description Required
key int cluster identifier true

HTTP Result

json : array

Name Type Description
name string virtual machine name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
guestid string configured guest id
networks []string network name list
uuid string a unique identifier of the vm on the cluster

Clusters networksync (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>/networksync

Networks From Cluster

HTTP Request

POST /clusters/:key/networksync

Name Type Description Required
key int cluster identifier true

HTTP Result

json : object

Name Type Description
networkstatus []interfaces.NetStatus network status message list

Clusters synchronize (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>/synchronize

Defaults From Cluster

HTTP Request

POST /clusters/:key/synchronize

Name Type Description Required
key int cluster identifier true

HTTP Result

json : object

Name Type Description
msg string general message
key int resource identifier

Clusters (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "credentialskey=<credentials identifier>" \
	-d "type=<string value>" \
	-d "isodatastore=<string value>" \
	-d "isofilepath=<string value>" \
	-d "defaultskey=<cluster defaults identifier>" \
	-d "callbacks[0]=<callback identifier>" \
	-d "callbacks[1]=<callback identifier>" \
	https://<ipaddress>/rest/v1/clusters

Create Clusters

HTTP Request

POST /clusters

Name Type Description Required
name string name of the cluster true
credentialskey int credentials identifier true
type string type of cluster true
isodatastore string datastore used to store iso files true
isofilepath string filepath used to store iso files true
defaultskey int cluster defaults identifier false
callbacks []int callback identifier list false

HTTP Result

json : object

Name Type Description
key int cluster identifier
name string cluster name
type string cluster type (e.g: vmware, proxmox, …)
credentialskey int credentials identifier (connection and authentication information)
defaultskey int defaults identifier (default cluster configuration)
callbacks []int callbacks identifier list
isodatastore string datastore used for storing iso files
isofilepath string filepath used for storing iso files

Clusters (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>

Delete Clusters

HTTP Request

DELETE /clusters/:key

Name Type Description Required
key int cluster identifier true

HTTP Result

json : object

Name Type Description
msg string a general result message
key int a resource identifier belonging to the result

Clusters (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters

Read All Clusters

HTTP Request

GET /clusters

HTTP Result

json : array

Name Type Description
key int cluster identifier
name string cluster name
type string cluster type (e.g: vmware, proxmox, …)
credentialskey int credentials identifier (connection and authentication information)
defaultskey int defaults identifier (default cluster configuration)
callbacks []int callbacks identifier list
isodatastore string datastore used for storing iso files
isofilepath string filepath used for storing iso files

Clusters (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/clusters/<key>

Read Clusters

HTTP Request

GET /clusters/:key

Name Type Description Required
key int cluster identifier true

HTTP Result

json : object

Name Type Description
key int cluster identifier
name string cluster name
type string cluster type (e.g: vmware, proxmox, …)
credentialskey int credentials identifier (connection and authentication information)
defaultskey int defaults identifier (default cluster configuration)
callbacks []int callbacks identifier list
isodatastore string datastore used for storing iso files
isofilepath string filepath used for storing iso files

Clusters (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "credentialskey=<credentials identifier>" \
	-d "type=<string value>" \
	-d "isodatastore=<string value>" \
	-d "isofilepath=<string value>" \
	-d "defaultskey=<cluster defaults identifier>" \
	-d "callbacks[0]=<callback identifier>" \
	-d "callbacks[1]=<callback identifier>" \
	https://<ipaddress>/rest/v1/clusters/<key>

Update Clusters

HTTP Request

PUT /clusters/:key

Name Type Description Required
name string name of the cluster true
credentialskey int credentials identifier true
type string type of cluster true
isodatastore string datastore used to store iso files true
isofilepath string filepath used to store iso files true
key int cluster identifier true
defaultskey int cluster defaults identifier false
callbacks []int callback identifier list false

HTTP Result

json : object

Name Type Description
key int cluster identifier
name string cluster name
type string cluster type (e.g: vmware, proxmox, …)
credentialskey int credentials identifier (connection and authentication information)
defaultskey int defaults identifier (default cluster configuration)
callbacks []int callbacks identifier list
isodatastore string datastore used for storing iso files
isofilepath string filepath used for storing iso files

Eula (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/eula

Read EULA

HTTP Request

GET /eula

HTTP Result

json : object

Name Type Description
eulade string end user license agreement german
eulaen string end user license agreement english

Eula accept (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/eula/accept

Accept EULA

HTTP Request

POST /eula/accept

HTTP Result

json : object

Name Type Description
msg string general message

License (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/license

Delete License

HTTP Request

DELETE /license

HTTP Result

json : object

Name Type Description
msg string general message

License (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/license

Read License

HTTP Request

GET /license

HTTP Result

json : object

Name Type Description
license string license string
customerid string customer identifier
virtualmachines int virtual machine contingent assinged to this license
issued int64 issue date
expires int64 expiration date

License (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "license=<string value>" \
	https://<ipaddress>/rest/v1/license

Update License

HTTP Request

PUT /license

Name Type Description Required
license string License string true

HTTP Result

json : object

Name Type Description
license string license string
customerid string customer identifier
virtualmachines int virtual machine contingent assinged to this license
issued int64 issue date
expires int64 expiration date

Logs (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "services[0]=<string value>" \
	-d "services[1]=<string value>" \
	https://<ipaddress>/rest/v1/logs

Read Logs

HTTP Request

POST /logs

Name Type Description Required
services []string false

HTTP Result

json : object

Name Type Description

Networks (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "dhcp=<true|false>" \
	-d "cidr=<string value>" \
	-d "gateway=<string value>" \
	-d "dns=<string value>" \
	-d "zonedomain=<string value>" \
	https://<ipaddress>/rest/v1/networks

Create Networks

HTTP Request

POST /networks

Name Type Description Required
name string network name used on cluster to identifier the network true
dhcp bool dynamic host control protocol (true or false) true
cidr string classless inter domain routing definition e.g: 10.10.10.10/24 false
gateway string gateway IP address or full qualified domain name false
dns string domain name system IP address or full qualified domain name false
zonedomain string sets the domain for whole dns zone false

HTTP Result

json : object

Name Type Description
key int network identifier
name string network name
cidr string classless inter domain routing string
gateway string gateway ip
zonedomain string global zone domain
dns string domain name server ip
dhcp bool true or false

Networks (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/networks/<key>

Delete Networks

HTTP Request

DELETE /networks/:key

Name Type Description Required
key int network identifier true

HTTP Result

json : object

Name Type Description
msg string a general result message
key int a resource identifier belonging to the result

Networks (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/networks

Read All Networks

HTTP Request

GET /networks

HTTP Result

json : array

Name Type Description
key int network identifier
name string network name
cidr string classless inter domain routing string
gateway string gateway ip
zonedomain string global zone domain
dns string domain name server ip
dhcp bool true or false

Networks (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/networks/<key>

Read Networks

HTTP Request

GET /networks/:key

Name Type Description Required
key int network identifier true

HTTP Result

json : object

Name Type Description
key int network identifier
name string network name
cidr string classless inter domain routing string
gateway string gateway ip
zonedomain string global zone domain
dns string domain name server ip
dhcp bool true or false

Networks (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "dhcp=<true|false>" \
	-d "cidr=<string value>" \
	-d "gateway=<string value>" \
	-d "dns=<string value>" \
	-d "zonedomain=<string value>" \
	https://<ipaddress>/rest/v1/networks/<key>

Update Networks

HTTP Request

PUT /networks/:key

Name Type Description Required
name string network name used on cluster to identifier the network true
dhcp bool dynamic host control protocol (true or false) true
key int network identifier true
cidr string classless inter domain routing definition e.g: 10.10.10.10/24 false
gateway string gateway IP address or full qualified domain name false
dns string domain name system IP address or full qualified domain name false
zonedomain string sets the domain for whole dns zone false

HTTP Result

json : object

Name Type Description
key int network identifier
name string network name
cidr string classless inter domain routing string
gateway string gateway ip
zonedomain string global zone domain
dns string domain name server ip
dhcp bool true or false

Operatingsystems (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "iso=<string value>" \
	https://<ipaddress>/rest/v1/operatingsystems

Create Operating Systems

HTTP Request

POST /operatingsystems

Name Type Description Required
name string operating system name, should use pattern __, e.g: debian_10_64bit true
iso string iso file used for install true

HTTP Result

json : object

Name Type Description
key int operating system identifier
name string operating system name
iso string iso image

Operatingsystems (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/operatingsystems/<key>

Delete Operating Systems

HTTP Request

DELETE /operatingsystems/:key

Name Type Description Required
key int operating system identifier true

HTTP Result

json : object

Name Type Description
msg string a general result message
key int a resource identifier belonging to the result

Operatingsystems (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/operatingsystems

Read All Operating Systems

HTTP Request

GET /operatingsystems

HTTP Result

json : array

Name Type Description
key int operating system identifier
name string operating system name
iso string iso image

Operatingsystems (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/operatingsystems/<key>

Read Operating Systems

HTTP Request

GET /operatingsystems/:key

Name Type Description Required
key int operating system identifier true

HTTP Result

json : object

Name Type Description
key int operating system identifier
name string operating system name
iso string iso image

Operatingsystems (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "iso=<string value>" \
	https://<ipaddress>/rest/v1/operatingsystems/<key>

Update Operating Systems

HTTP Request

PUT /operatingsystems/:key

Name Type Description Required
name string operating system name, should use pattern __, e.g: debian_10_64bit true
iso string iso file used for install true
key int operating system identifier true

HTTP Result

json : object

Name Type Description
key int operating system identifier
name string operating system name
iso string iso image

Permissiongroups (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/permissiongroups

Read Permissions Groups

HTTP Request

GET /permissiongroups

HTTP Result

json : array

Name Type Description
name string
rights []interfaces.PermissionRight

Permissions (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/permissions

Read All Permissions

HTTP Request

GET /permissions

HTTP Result

json : array

Name Type Description
key int
description string
pattern string
method string
handler string

Permissions (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/permissions/<key>

Read Permissions

HTTP Request

GET /permissions/:key

Name Type Description Required
key int true

HTTP Result

json : object

Name Type Description
key int
description string
pattern string
method string
handler string

Profiles (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "cpu=<cpu count>" \
	-d "ram=<ram size in MB>" \
	-d "oskey=<operating system identifier>" \
	-d "clusterkey=<cluster identifier>" \
	-d "disc=<string value>" \
	-d "datastore=<string value>" \
	-d "networks[0]=<network identifier>" \
	-d "networks[1]=<network identifier>" \
	https://<ipaddress>/rest/v1/profiles

Create Virtual Machine Profiles

HTTP Request

POST /profiles

Name Type Description Required
name string profile name true
cpu int cpu count true
ram int ram size in MB true
oskey int operating system identifier true
clusterkey int cluster identifier true
disc string disc size true
datastore string datastore true
networks []int network identifier list true

HTTP Result

json : object

Name Type Description
key int profile identifier
name string profile name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list

Profiles (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/profiles/<key>

Delete Virtual Machine Profiles

HTTP Request

DELETE /profiles/:key

Name Type Description Required
key int profile identifier true

HTTP Result

json : object

Name Type Description
msg string a general result message
key int a resource identifier belonging to the result

Profiles (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/profiles

Read All Virtual Machine Profiles

HTTP Request

GET /profiles

HTTP Result

json : array

Name Type Description
key int profile identifier
name string profile name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list

Profiles (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/profiles/<key>

Read Virtual Machine Profiles

HTTP Request

GET /profiles/:key

Name Type Description Required
key int profile identifier true

HTTP Result

json : object

Name Type Description
key int profile identifier
name string profile name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list

Profiles (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "cpu=<cpu count>" \
	-d "ram=<ram size in MB>" \
	-d "oskey=<operating system identifier>" \
	-d "clusterkey=<cluster identifier>" \
	-d "disc=<string value>" \
	-d "datastore=<string value>" \
	-d "networks[0]=<network identifier>" \
	-d "networks[1]=<network identifier>" \
	https://<ipaddress>/rest/v1/profiles/<key>

Update Virtual Machine Profiles

HTTP Request

PUT /profiles/:key

Name Type Description Required
key int profile identifier true
name string profile name true
cpu int cpu count true
ram int ram size in MB true
oskey int operating system identifier true
clusterkey int cluster identifier true
disc string disc size true
datastore string datastore true
networks []int network identifier list true

HTTP Result

json : object

Name Type Description
key int profile identifier
name string profile name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list

Setting (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/setting

Delete Setting

HTTP Request

DELETE /setting

HTTP Result

json : object

Name Type Description
msg string general message

Setting (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/setting

Read Setting

HTTP Request

GET /setting

HTTP Result

json : object

Name Type Description
installtimeout uint installation timeout in minutes
regexfilter string regex filter used for datastore auto select
ignorefilter []string ignore filter used to ignore datastores when using auto select
loglevelcore string core service log level
loglevelconfigurator string configurator service log level
loglevelinventory string inventory service log level
loglevelintegrator string integrator service log level
loglevellogcollector string log collector service log level

Setting (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "regexfilter=<string value>" \
	-d "ignorefilter[0]=<string value>" \
	-d "ignorefilter[1]=<string value>" \
	-d "installtimeout=<installation timeout in minutes (default 40m)>" \
	-d "loglevelcore=<string value>" \
	-d "loglevelconfigurator=<string value>" \
	-d "loglevelinventory=<string value>" \
	-d "loglevelintegrator=<string value>" \
	-d "loglevellogcollector=<string value>" \
	https://<ipaddress>/rest/v1/setting

Update Setting

HTTP Request

PUT /setting

Name Type Description Required
regexfilter string regex filter used for datastore=auto mode false
ignorefilter []string ignore filters used for datastore=auto mode false
installtimeout int installation timeout in minutes (default 40m) false
loglevelcore string core service log level false
loglevelconfigurator string configurator service log level false
loglevelinventory string inventory service log level false
loglevelintegrator string integrator service log level false
loglevellogcollector string log collector service log level false

HTTP Result

json : object

Name Type Description
installtimeout uint installation timeout in minutes
regexfilter string regex filter used for datastore auto select
ignorefilter []string ignore filter used to ignore datastores when using auto select
loglevelcore string core service log level
loglevelconfigurator string configurator service log level
loglevelinventory string inventory service log level
loglevelintegrator string integrator service log level
loglevellogcollector string log collector service log level

Token (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "grant_type=<string value>" \
	-d "client_id=<string value>" \
	-d "client_secret=<string value>" \
	https://<ipaddress>/rest/v1/token

request oauth token

HTTP Request

POST /token

Name Type Description Required
grant_type string false
client_id string false
client_secret string false

HTTP Result

json : object

Name Type Description
access_token string
expires_in int
token_type string

Token (destroy)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "access_token=<string value>" \
	https://<ipaddress>/rest/v1/destroy

destroy oauth token

HTTP Request

POST /destroy

Name Type Description Required
access_token string false

HTTP Result

json : object

Name Type Description
message string

Update (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/update

Perform Update

HTTP Request

POST /update

HTTP Result

json : object

Name Type Description
currentversion string the current software version
availableversion string available update version
updateavailable bool true if update is possible false otherwise
scheduled bool true if update is scheduled false otherwise

Update (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/update

Read Update

HTTP Request

GET /update

HTTP Result

json : object

Name Type Description
currentversion string the current software version
availableversion string available update version
updateavailable bool true if update is possible false otherwise

Users permissions (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "permissions[0]=<permissions>" \
	-d "permissions[1]=<permissions>" \
	https://<ipaddress>/rest/v1/users/<key>/permissions

Update User Permissions

HTTP Request

PUT /users/:key/permissions

Name Type Description Required
key int user identifier true
permissions []int permissions true

HTTP Result

json : object

Name Type Description
key int
username string
permissions []int

Users (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "username=<string value>" \
	-d "password=<string value>" \
	https://<ipaddress>/rest/v1/users

Create Users

HTTP Request

POST /users

Name Type Description Required
username string username true
password string password true

HTTP Result

json : object

Name Type Description
key int
username string
permissions []int

Users (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/users/<key>

Delete Users

HTTP Request

DELETE /users/:key

Name Type Description Required
key int user identifier true

HTTP Result

json : object

Name Type Description
msg string general message

Users (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/users

Read All Users

HTTP Request

GET /users

HTTP Result

json : array

Name Type Description
key int
username string
permissions []int

Users (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/users/<key>

Read Users

HTTP Request

GET /users/:key

Name Type Description Required
key int user identifier true

HTTP Result

json : object

Name Type Description
key int
username string
permissions []int

Users (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "username=<string value>" \
	-d "password=<string value>" \
	https://<ipaddress>/rest/v1/users/<key>

Update Users

HTTP Request

PUT /users/:key

Name Type Description Required
key int user identifier true
username string username true
password string password true

HTTP Result

json : object

Name Type Description
key int
username string
permissions []int

Users current (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/users/current

read current user

HTTP Request

GET /users/current

HTTP Result

json : object

Name Type Description
key int
username string
permissions []int

Version (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/version

Version

HTTP Request

GET /version

HTTP Result

json : object

Name Type Description
version string semantic version string

Virtualmachinenetworks (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "vmkey=<virtual machine identifier>" \
	-d "netkey=<network identifier>" \
	-d "hostname=<string value>" \
	-d "ip=<string value>" \
	-d "mac=<string value>" \
	https://<ipaddress>/rest/v1/virtualmachinenetworks

Create Virtual Machine Networks

HTTP Request

POST /virtualmachinenetworks

Name Type Description Required
vmkey int virtual machine identifier true
netkey int network identifier true
hostname string hostname false
ip string ip address false
mac string mac address false

HTTP Result

json : object

Name Type Description
key int virtual machine network identifier
vmkey int virtual machine identifier
netkey int network identifier
ip net.IP assigned ip address
mac string network interface mac address
hostname string virtual machine hostname
domains []int domain identifier list

Virtualmachinenetworks (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	-d "vmkey=<virtual machine identifier>" \
	https://<ipaddress>/rest/v1/virtualmachinenetworks/<key>

Delete Virtual Machine Networks

HTTP Request

DELETE /virtualmachinenetworks/:key

Name Type Description Required
key int virtual machine network identifier true
vmkey int virtual machine identifier true

HTTP Result

json : object

Name Type Description
msg string network specific message
key int virtual machine network identifier
vmkey int virtual machine identifier

Virtualmachinenetworks (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachinenetworks

Read All Virtual Machine Networks

HTTP Request

GET /virtualmachinenetworks

HTTP Result

json : array

Name Type Description
key int virtual machine network identifier
vmkey int virtual machine identifier
netkey int network identifier
ip net.IP assigned ip address
mac string network interface mac address
hostname string virtual machine hostname
domains []int domain identifier list

Virtualmachinenetworks (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachinenetworks/<key>

Read Virtual Machine Networks

HTTP Request

GET /virtualmachinenetworks/:key

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : array

Name Type Description
key int virtual machine network identifier
vmkey int virtual machine identifier
netkey int network identifier
ip net.IP assigned ip address
mac string network interface mac address
hostname string virtual machine hostname
domains []int domain identifier list

Virtualmachinenetworks (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "vmkey=<virtual machine identifier>" \
	-d "netkey=<network identifier>" \
	-d "hostname=<string value>" \
	-d "ip=<string value>" \
	-d "mac=<string value>" \
	https://<ipaddress>/rest/v1/virtualmachinenetworks/<key>

Update Virtual Machine Networks

HTTP Request

PUT /virtualmachinenetworks/:key

Name Type Description Required
key int virtual machine network identifier true
vmkey int virtual machine identifier true
netkey int network identifier true
hostname string hostname false
ip string ip address false
mac string mac address false

HTTP Result

json : object

Name Type Description
key int virtual machine network identifier
vmkey int virtual machine identifier
netkey int network identifier
ip net.IP assigned ip address
mac string network interface mac address
hostname string virtual machine hostname
domains []int domain identifier list

Virtualmachines (create)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "cpu=<number of cpus>" \
	-d "ram=<random access memory size>" \
	-d "oskey=<operating system identifier>" \
	-d "clusterkey=<cluster identifier>" \
	-d "disc=<string value>" \
	-d "datastore=<string value>" \
	https://<ipaddress>/rest/v1/virtualmachines

Create Virtual Machines

HTTP Request

POST /virtualmachines

Name Type Description Required
name string name of virtual machine true
cpu int number of cpus true
ram int random access memory size true
oskey int operating system identifier true
clusterkey int cluster identifier true
disc string disc space size true
datastore string datastore used on cluster true

HTTP Result

json : object

Name Type Description
key int virtual machine identifier
name string virtual machine name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list
deployed bool indicate whether the virtual machine was deployed on the cluster
scheduleddeletion string data of forced deletion

Virtualmachines (delete)

curl -k -X DELETE \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>

Delete Virtual Machines

HTTP Request

DELETE /virtualmachines/:key

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
msg string general message
key int resource identifier

Virtualmachines (from profile)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "cpu=<number of cpus>" \
	-d "ram=<random access memory size>" \
	-d "disc=<string value>" \
	https://<ipaddress>/rest/v1/profiles/<key>/createvirtualmachine

Create Virtual Machine From Profile

HTTP Request

POST /profiles/:key/createvirtualmachine

Name Type Description Required
key int profile identifier true
name string name of virtual machine true
cpu int number of cpus false
ram int random access memory size false
disc string disc space size false

HTTP Result

json : object

Name Type Description
msg string virtual machine status description
status string virtual machine status
key int virtual machine identifier

Virtualmachines (info)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>/info

Read Virtual Machine Info

HTTP Request

GET /virtualmachines/:key/info

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
name string virtual machine name
powerstate string virtual machine power state

Virtualmachines (install)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>/install

Install Virtual Machine

HTTP Request

POST /virtualmachines/:key/install

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
msg string general message
statuscode int http status code

Virtualmachines (poweroff)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>/poweroff

Power Off VM

HTTP Request

POST /virtualmachines/:key/poweroff

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
msg string general message
statuscode int http status code

Virtualmachines (poweron)

curl -k -X POST \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>/poweron

Power On VM

HTTP Request

POST /virtualmachines/:key/poweron

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
msg string general message
statuscode int http status code

Virtualmachines (read all)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines

Read All Virtual Machines

HTTP Request

GET /virtualmachines

HTTP Result

json : array

Name Type Description
key int virtual machine identifier
name string virtual machine name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list
deployed bool indicate whether the virtual machine was deployed on the cluster
scheduleddeletion string data of forced deletion

Virtualmachines (read)

curl -k -X GET \
	-H "Authorization: Bearer <mytoken>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>

Read Virtual Machines

HTTP Request

GET /virtualmachines/:key

Name Type Description Required
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
key int virtual machine identifier
name string virtual machine name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list
deployed bool indicate whether the virtual machine was deployed on the cluster
scheduleddeletion string data of forced deletion

Virtualmachines (update)

curl -k -X PUT \
	-H "Authorization: Bearer <mytoken>" \
	-d "name=<string value>" \
	-d "cpu=<number of cpus>" \
	-d "ram=<random access memory size>" \
	-d "oskey=<operating system identifier>" \
	-d "clusterkey=<cluster identifier>" \
	-d "disc=<string value>" \
	-d "datastore=<string value>" \
	https://<ipaddress>/rest/v1/virtualmachines/<key>

Update Virtual Machines

HTTP Request

PUT /virtualmachines/:key

Name Type Description Required
name string name of virtual machine true
cpu int number of cpus true
ram int random access memory size true
oskey int operating system identifier true
clusterkey int cluster identifier true
disc string disc space size true
datastore string datastore used on cluster true
key int virtual machine identifier true

HTTP Result

json : object

Name Type Description
key int virtual machine identifier
name string virtual machine name
cpu int cpu count
ram int ram size in MB
disc string disc size
datastore string used datastore (can be set to auto for auto selecting datastore)
oskey int operating system identifier
clusterkey int cluster identifier
networks []int network identifier list
deployed bool indicate whether the virtual machine was deployed on the cluster
scheduleddeletion string data of forced deletion