November 23, 2017


Create a Virtual Guest server using the simplified way.

This example shows how customers can get a new virtual guest server by using the method
SoftLayer_Virtual_Guest::createObject which is a simplified way to create a server.
Take account that servers created via createObject() will incur charges on your account. For testing
input parameters we'll use the SoftLayer_Virtual_Guest::generateOrderTemplate method.
See below for more information.

Important manual pages:

Author: SoftLayer Technologies, Inc. <>
package main

import (

func main() {
	// SoftLayer API username and key
	username  := "set me"
	apikey    := "set me"

	// To get the configuration options call the method getCreateObjectOptions() of
	// SoftLayer_Virtual_Guest service. e.g.:
	//	createOptions = virtualGuestService.GetCreateObjectOptions()
	// Following is an example to create a template with the configuration options
	// that we want.
	templateObject := datatypes.Virtual_Guest{
		Hostname:   sl.String("softlayer"),				// Name of server
		Domain:     sl.String(""),				// Domain of server
		StartCpus:  sl.Int(2),						// The number of logical CPU cores to allocate
		MaxMemory:  sl.Int(4),						// The amount of memory to allocate in gigabytes.
		Datacenter: &datatypes.Location{				// Specifies on which data center will be provisioned the server.
			Name: sl.String("ams01"),				// Amsterdam
		OperatingSystemReferenceCode: sl.String("UBUNTU_16_64"),	// OS: Ubuntu Linux 16.04 LTS Xenial Xerus Minimal Install (64 bit)
		HourlyBillingFlag: sl.Bool(false),				// Specifies the billing type for the server (Monthly).
		LocalDiskFlag: 	   sl.Bool(false),				// Set true for LOCAL disk, otherwise SAN disks will be provisioned.

	// Create SoftLayer API session
	sess := session.New(username, apikey)

	// Get SoftLayer_Hardware service
	service := services.GetVirtualGuestService(sess)

	// Use generateOrderTemplate() method to check for errors. Replace this with createObject()
	// when you are ready to create the bare metal server.
	receipt, err := service.GenerateOrderTemplate(&templateObject)
	if err != nil {
		fmt.Printf("\n Unable to create the Virtual Guest Server:\n - %s\n", err)

	// Following helps to print the result in json format.
	jsonFormat, jsonErr := json.MarshalIndent(receipt, "","   ")
	if jsonErr != nil {



If this article contains any error, or leaves any of your questions unanswered, please help us out by opening up a github issue.
Open an issue