Go to main content

Oracle I/O Domain Administration Guide

Exit Print View

Updated: September 2021
 
 

REST API Reference

This section provides examples of SuperCluster Virtual Assistant REST APIs that are available at the time of publication. To see the specific APIs available on your SuperCluster, view the REST API catalog on SuperCluster. See Access the REST API Catalog (BUI).

Agent Request APIs – /api/agentrequest

/api/agentrequest/
	GET: List all pending Agent Requests (Agent requests encapsulate
	     Start/Stop Domain requests.)

	RETURNS: Multiple Serialized Agent Request Objects

/api/agentrequest/{id}
	GET: Returns Agent Request matching supplied ID
	RETURNS: Serialized Agent Request Object

Deployment Group APIs – /api/deploymentgroup

/api/deploymentgroup/
	POST Data:
	{
	    "io_domains": []
	}

	io_domains: List of Integer IODomain IDs to be queued for deployment
	note: Domains must be in applicable state, as per BUI rules.
	RETURNS: Serialized IODomain and Deployment Group Object

	HTTP 200 OK
	Allow: GET, POST, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 16,
		"io_domains": [
		    {
			"id": 17,
			"state": 1,
			"state_str": "Queued for Deployment",
			"mgmt_hostname": "test"
		    }
		],
		"state_str": "Queued for Deployment",
		"state": 0,
		"created": "2018-05-12T13:18:20.965024Z",
		"owner": 2
	    }
	]

/api/deploymentgroup/
	GET: List All Deployment Groups
	RETURNS: Multiple Deployment Group Objects

	HTTP 200 OK
	Allow: GET, POST, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 16,
		"io_domains": [
		    {
			"id": 17,
			"state": 1,
			"state_str": "Queued for Deployment",
			"mgmt_hostname": "test"
		    }
		],
		"state_str": "Queued for Deployment",
		"state": 0,
		"created": "2018-05-12T13:18:20.965024Z",
		"owner": 2
	    },
	    {
	       ...
	    }
	]

/api/deploymentgroup/{id}/
	GET: Returns Deployment Group with supplied ID.
	RETURNS: Deployment Group Object

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 16,
	    "io_domains": [
		{
		    "id": 17,
		    "state": 1,
		    "state_str": "Queued for Deployment",
		    "mgmt_hostname": "test"
		}
	    ],
	    "state_str": "Queued for Deployment",
	    "state": 0,
	    "created": "2018-05-12T13:18:20.965024Z",
	    "owner": 2
	}

Domain Type APIs – /api/flavour

/api/flavour/
	GET: Returns all IO Domain Flavours (Domain Types)
	RETURNS: Multiple Serialized Flavour Objects

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 1,
		"description": "My Database Domain",
		"disk_size": 150,
		"token": "db",
		"recipes": [
		    {
			"id": 4,
			"name": "Small",
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 5,
			"name": "Medium",
			"core_max": 4,
			"memory_max": 64,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 6,
			"name": "Large",
			"core_max": 8,
			"memory_max": 128,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    }
		]
	    },
	    {
		"id": 3,
		"description": "Solaris 11 Application Domain",
		"disk_size": 100,
		"token": "11",
		"recipes": [
		    {
			"id": 1,
			"name": "Small",
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 2,
			"name": "Medium",
			"core_max": 4,
			"memory_max": 64,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 3,
			"name": "Large",
			"core_max": 8,
			"memory_max": 128,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    }
		]
	    },
	    {
		"id": 4,
		"description": "My Database Zone Domain",
		"disk_size": 100,
		"token": "dbz",
		"recipes": []
	    }
	]

/api/flavour/{id}/
	GET: Returns IO Domain Flavour which matches supplied ID
	RETURNS: Serialized Flavour Object

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "description": "My Database Domain",
	    "disk_size": 150,
	    "token": "db",
	    "recipes": [
		{
		    "id": 4,
		    "name": "Small",
		    "core_max": 2,
		    "memory_max": 32,
		    "ib_vf_max": 1,
		    "xgb_vf_max": 2,
		    "applies_to_all": true,
		    "owner": 2,
		    "active": true
		},
		{
		    "id": 5,
		    "name": "Medium",
		    "core_max": 4,
		    "memory_max": 64,
		    "ib_vf_max": 1,
		    "xgb_vf_max": 2,
		    "applies_to_all": true,
		    "owner": 2,
		    "active": true
		},
		{
		    "id": 6,
		    "name": "Large",
		    "core_max": 8,
		    "memory_max": 128,
		    "ib_vf_max": 1,
		    "xgb_vf_max": 2,
		    "applies_to_all": true,
		    "owner": 2,
		    "active": true
		}
	    ]
	}

Health Report APIs – /api/health/reports/

/api/health/reports/
	GET: Returns all Health Monitor Reports
	RETURNS: Multiple Serialized Health Monitor Objects (can take a while)

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 1,
		"records": [
		    {
			"id": 2,
			"state_str": "Pass",
			"state": 0,
			"date_run": "2018-04-29T14:09:50.390554Z",
			"result_text": "{\"results\": []}",
			"resolved": true,
			"date_resolved": "2018-04-29T14:09:50.390142Z",
			"sanity_check": 3,
			"resolved_by": null
		    },
		    {
			"id": 3,
			"state_str": "Pass",
			"state": 0,
			"date_run": "2018-04-29T14:10:04.898457Z",
			"result_text": "{\"results\": []}",
			"resolved": true,
			"date_resolved": "2018-04-29T14:10:04.897516Z",
			"sanity_check": 13,
			"resolved_by": null
		    }
	    }
	]

/api/health/latest/
	GET: Returns the latest Health Monitor Report
	RETURNS: Serialized Health Monitor Object

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	"id": 1,
	"records": [
	    {
		"id": 2,
		"state_str": "Pass",
		"state": 0,
		"date_run": "2018-04-29T14:09:50.390554Z",
		"result_text": "{\"results\": []}",
		"resolved": true,
		"date_resolved": "2018-04-29T14:09:50.390142Z",
		"sanity_check": 3,
		"resolved_by": null
	    },
	    {
		"id": 3,
		"state_str": "Pass",
		"state": 0,
		"date_run": "2018-04-29T14:10:04.898457Z",
		"result_text": "{\"results\": []}",
		"resolved": true,
		"date_resolved": "2018-04-29T14:10:04.897516Z",
		"sanity_check": 13,
		"resolved_by": null
	    }
	}

Install Bundle APIs – /api/install_bundle/

/api/install_bundle/
	GET: Return All Install Bundles (Solaris Large Server/Solaris Minimal Server)
	RETURNS: Multiple Serialized Install Bundle Objects

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "description": "Solaris Minimal Server",
	    "identifier": "solaris-minimal-server",
	    "active": true
	}

/api/install_bundle/{id}/
	GET: Return the Bundle which matches supplied ID
	RETURNS: Serialized Install Bundle Object

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 1,
		"description": "Solaris Minimal Server",
		"identifier": "solaris-minimal-server",
		"active": true
	    },
	    {
		"id": 2,
		"description": "Solaris Large Server",
		"identifier": "solaris-large-server",
		"active": true
	    }
	]

I/O Domain APIs – /api/iodomain/

/api/iodomain/
	GET: Return all IODomains which the user has permission to see
	RETURNS: Multiple Serialized IO Domain Objects

	HTTP 200 OK
	Allow: GET, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept
[
	{
	    "id": 1,
	    "mgmt_ips": [],
	    "ten_g_ips": [],
	    "zfs_ib_ips": [],
	    "exa_ib_ips": [],
	    "vip_ips": [],
	    "resource_allocation": {
		"id": 1,
		"cores": [],
		"memory": [],
		"virtual_functions": [],
		"iodrae_token": "-3406869841"
	    },
	    "flavour": {
		"id": 1,
		"description": "My Database Domain",
		"disk_size": 150,
		"token": "db",
		"recipes": [
		    {
			"id": 4,
			"name": "Small",
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 5,
			"name": "Medium",
			"core_max": 4,
			"memory_max": 64,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 6,
			"name": "Large",
			"core_max": 8,
			"memory_max": 128,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    }
		]
	    },
	    "state_str": "Destroyed Domain",
	    "recipe": {
		"id": 4,
		"name": "Small",
		"core_max": 2,
		"memory_max": 32,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    "root_domains": [
		{
		    "mgmt_hostname": "mysys"
		}
	    ],
	    "iodomainlog_set": [
		{
		    "id": 1,
		    "level": "info",
		    "message": "Creation of IO Domain Started.",
		    "created": "2018-04-29T15:44:52.708954Z",
		    "io_domain": 1
		},
		{
		    "id": 2,
		    "level": "info",
		    "message": "Resources Allocated. Domain is ready for deployment.",
		    "created": "2018-04-29T15:44:52.709522Z",
		    "io_domain": 1
		},
		{
		    "id": 3,
		    "level": "info",
		    "message": "IO Domain Released",
		    "created": "2018-04-29T16:02:46.719994Z",
		    "io_domain": 1
		}
	    ],
	    "rac_cluster_id": -1,
	    "state": -7,
	    "root_domain_num": 1,
	    "owner": 2
	},
	...
	...
]

/api/iodomain/by_hostname/{hostname}/
	GET: Return the IODomain whose Management Hostname matches the supplied Hostname
	RETURNS: Serialized IO Domain Object

	HTTP 200 OK
	Allow: GET, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "mgmt_ips": [],
	    "ten_g_ips": [],
	    "zfs_ib_ips": [],
	    "exa_ib_ips": [],
	    "vip_ips": [],
	    "resource_allocation": {
		"id": 1,
		"cores": [],
		"memory": [],
		"virtual_functions": [],
		"iodrae_token": "-3406869841"
	    },
	    "flavour": {
		"id": 1,
		"description": "My Database Domain",
		"disk_size": 150,
		"token": "db",
		"recipes": [
		    {
			"id": 4,
			"name": "Small",
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 5,
			"name": "Medium",
			"core_max": 4,
			"memory_max": 64,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 6,
			"name": "Large",
			"core_max": 8,
			"memory_max": 128,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    }
		]
	    },
	    "state_str": "Destroyed Domain",
	    "recipe": {
		"id": 4,
		"name": "Small",
		"core_max": 2,
		"memory_max": 32,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    "root_domains": [
		{
		    "mgmt_hostname": "mysysmgt"
		}
	    ],
	    "iodomainlog_set": [
		{
		    "id": 1,
		    "level": "info",
		    "message": "Creation of IO Domain Started.",
		    "created": "2018-04-29T15:44:52.708954Z",
		    "io_domain": 1
		},
		{
		    "id": 2,
		    "level": "info",
		    "message": "Resources Allocated. Domain is ready for deployment.",
		    "created": "2018-04-29T15:44:52.709522Z",
		    "io_domain": 1
		},
		{
		    "id": 3,
		    "level": "info",
		    "message": "IO Domain Released",
		    "created": "2018-04-29T16:02:46.719994Z",
		    "io_domain": 1
		}
	    ],
	    "rac_cluster_id": -1,
	    "state": -7,
	    "root_domain_num": 1,
	    "owner": 2
	}

I/O Domain Deletion APIs – /api/iodomain/id/

/api/iodomain/{id}/
	DELETE: Queue the IODomain with supplied ID for destruction.
	RETURNS: Serialized Deletion Queue Object

	HTTP 200 OK
	Allow: GET, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "mgmt_ips": [],
	    "ten_g_ips": [],
	    "zfs_ib_ips": [],
	    "exa_ib_ips": [],
	    "vip_ips": [],
	    "resource_allocation": {
		"id": 1,
		"cores": [],
		"memory": [],
		"virtual_functions": [],
		"iodrae_token": "-3406869841"
	    },
	    "flavour": {
		"id": 1,
		"description": "My Database Domain",
		"disk_size": 150,
		"token": "db",
		"recipes": [
		    {
			"id": 4,
			"name": "Small",
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 5,
			"name": "Medium",
			"core_max": 4,
			"memory_max": 64,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 6,
			"name": "Large",
			"core_max": 8,
			"memory_max": 128,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    }
		]
	    },
	    "state_str": "Destroyed Domain",
	    "recipe": {
		"id": 4,
		"name": "Small",
		"core_max": 2,
		"memory_max": 32,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    "root_domains": [
		{
		    "mgmt_hostname": "mysysmgt"
		}
	    ],
	    "iodomainlog_set": [
		{
		    "id": 1,
		    "level": "info",
		    "message": "Creation of IO Domain Started.",
		    "created": "2018-04-29T15:44:52.708954Z",
		    "io_domain": 1
		},
		{
		    "id": 2,
		    "level": "info",
		    "message": "Resources Allocated. Domain is ready for deployment.",
		    "created": "2018-04-29T15:44:52.709522Z",
		    "io_domain": 1
		},
		{
		    "id": 3,
		    "level": "info",
		    "message": "IO Domain Released",
		    "created": "2018-04-29T16:02:46.719994Z",
		    "io_domain": 1
		}
	    ],
	    "rac_cluster_id": -1,
	    "state": -7,
	    "root_domain_num": 1,
	    "owner": 2
	}


/api/iodomain/{id}
	GET: Return the IODomain which matches supplied ID
	RETURNS: Serialized IODomain Object

	HTTP 200 OK
	Allow: GET, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "mgmt_ips": [],
	    "ten_g_ips": [],
	    "zfs_ib_ips": [],
	    "exa_ib_ips": [],
	    "vip_ips": [],
	    "resource_allocation": {
		"id": 1,
		"cores": [],
		"memory": [],
		"virtual_functions": [],
		"iodrae_token": "-3406869841"
	    },
	    "flavour": {
		"id": 1,
		"description": "My Database Domain",
		"disk_size": 150,
		"token": "db",
		"recipes": [
		    {
			"id": 4,
			"name": "Small",
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 5,
			"name": "Medium",
			"core_max": 4,
			"memory_max": 64,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    },
		    {
			"id": 6,
			"name": "Large",
			"core_max": 8,
			"memory_max": 128,
			"ib_vf_max": 1,
			"xgb_vf_max": 2,
			"applies_to_all": true,
			"owner": 2,
			"active": true
		    }
		]
	    },
	    "state_str": "Destroyed Domain",
	    "recipe": {
		"id": 4,
		"name": "Small",
		"core_max": 2,
		"memory_max": 32,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    "root_domains": [
		{
		    "mgmt_hostname": "mysysmgt"
		}
	    ],
	    "iodomainlog_set": [
		{
		    "id": 1,
		    "level": "info",
		    "message": "Creation of IO Domain Started.",
		    "created": "2018-04-29T15:44:52.708954Z",
		    "io_domain": 1
		},
		{
		    "id": 2,
		    "level": "info",
		    "message": "Resources Allocated. Domain is ready for deployment.",
		    "created": "2018-04-29T15:44:52.709522Z",
		    "io_domain": 1
		},
		{
		    "id": 3,
		    "level": "info",
		    "message": "IO Domain Released",
		    "created": "2018-04-29T16:02:46.719994Z",
		    "io_domain": 1
		}
	    ],
	    "rac_cluster_id": -1,
	    "state": -7,
	    "root_domain_num": 1,
	    "owner": 2
	}


/api/iodomain/{id}/action/{action}/
	GET: Start/Stop an Iodomain which matches the supplied ID
	Args: action = 'start' or 'stop'
	RETURNS: Serialized AgentRequest object

/api/iodomain/{id}/freeze/
	POST: Freeze IODomain which matches the supplied ID
	RETURNS: Serialized IODomain Freeze Queue Entry/Deployment Group

/api/iodomain/{id}/thaw/
	PUT: Thaw IODomain which matches the supplied ID
	INPUT: physical_domain: <id> #PDOM On which to thaw
	RETURNS: Serialized IODomain Thaw Queue Entry
	
/api/iodomain/create/
	POST: Allocate one or many IODomains and their ScanAddressGroups
	INPUT: Expanded in Auxilliary file
	EXAMPLE INPUT: 
	{
	    "domains": [                                                                    
		{
		    "compute_node": 1,
		    "flavour_token": "db",
		    "rac_cluster_id": 10,
		    "mgmt_hostname": "mysysmgt",
		    "network_recipe_id": 1,
		    "recipe_id": 4
		}
	    ]
	}
		
	RETURNS: Complex Serializer containing IODomains and Scan Address Group Objects

	HTTP 201 Created
	Allow: POST, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "domains": [
		{
		    "id": 1,
		    "compute_node": 1,
		    "mgmt_network_id": 6,
		    "mgmt_hostname": "mysysmgt",
		    "mgmt_ipaddr": "nnn.nnn.nnn.35",
		    "teng_network_id": 7,
		    "teng_hostname": "mysys-client",
		    "teng_ipaddr": "nnn.nnn.nnn.4",
		    "stor_ib_network_id": 8,
		    "stor_ib_hostname": "mysys-storib",
		    "stor_ib_ipaddr": "nnn.nnn.nnnnnn.nnn.nnn.9",
		    "exa_priv_network_id": 9,
		    "exa_priv_hostname": "mysys-priv1",
		    "exa_priv_ipaddr": "nnn.nnn.nnn.7",
		    "vip_hostname": "mysys-vip",
		    "vip_ipaddr": "nnn.nnn.nnn.5",
		    "primary_hostname": "mysys",
		    "flavour_id": 1,
		    "flavour_token": "db",
		    "install_bundle_id": 2,
		    "install_bundle_name": "solaris-large-server",
		    "rac_cluster_id": 10,
		    "network_recipe": {
			"domain_name": "us.example.com",
			"name_servers": "nnn.nnn.nnn.197 nnn.nnn.nnn.198",
			"time_servers": "nnn.nnn.nnn.1 nnn.nnn.nnn.nnn.nnn.nnn.1",
			"time_zone": "America/Los_Angeles"
		    },
		    "recipe": {
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2
		    }
		}
	    ],
	    "scan_address_groups": [
		{
		    "id": 1,
		    "scan_addresses": [
			{
			    "ip_address": "nnn.nnn.nnn.6"
			},
			{
			    "ip_address": "nnn.nnn.nnn.7"
			},
			{
			    "ip_address": "nnn.nnn.nnn.8"
			}
		    ],
		    "scan_hostname": "io-scan-1",
		    "rac_cluster_id": 10
		}
	    ],
	    "deployment_group": null
	}

/api/iodomain/create_and_deploy/
	POST: Create one or many IODomains and their ScanAddressGroups and 
	      return their Deployment Queue Objects
	INPUT: Expanded in attached file
	EXAMPLE INPUT: 
		{
		    "domains": [
			{
			    "compute_node": 1,
			    "exa_priv_hostname": "mysys-priv1",
			    "flavour_token": "db",
			    "rac_cluster_id": 10,
			    "install_bundle_name": "solaris-minimal-server",
			    "mgmt_hostname": "mysysmgt",
			    "network_recipe": {
				"domain_name": "us.example.com",
				"gateway": "nnn.nnn.nnn.1",
				"name_servers": "nnn.nnn.nnn.197 nnn.nnn.nnn.198",
				"time_servers": "nnn.nnn.nnn.1 nnn.nnn.nnn.nnn.nnn.nnn.1",
				"time_zone": "America/Los_Angeles"
			    },
			    "primary_hostname": "mysys.us.example.com",
			    "recipe_id": 4,
			    "teng_hostname": "mysys-client",
			    "vip_hostname": "mysys-vip"
			}
		    ]
		}
			
		
	RETURNS: Complex Serializer containing IODomains and Scan Address Group Objects and
		 created IODomain Deployment Group objects

	HTTP 201 Created
	Allow: POST, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "domains": [
		{
		    "id": 2,
		    "compute_node": 1,
		    "mgmt_network_id": 6,
		    "mgmt_hostname": "mysys46",
		    "mgmt_ipaddr": "nnn.nnn.nnn.36",
		    "teng_network_id": 7,
		    "teng_hostname": "mysys-client",
		    "teng_ipaddr": "nnn.nnn.nnn.9",
		    "stor_ib_network_id": 8,
		    "stor_ib_hostname": "mysys-storib",
		    "stor_ib_ipaddr": "nnn.nnn.nnn.10",
		    "exa_priv_network_id": 9,
		    "exa_priv_hostname": "mysys-priv1",
		    "exa_priv_ipaddr": "nnn.nnn.nnn.8",
		    "vip_hostname": "mysys-vip",
		    "vip_ipaddr": "nnn.nnn.nnn.10",
		    "primary_hostname": "mysys",
		    "flavour_id": 1,
		    "flavour_token": "db",
		    "install_bundle_id": 2,
		    "install_bundle_name": "solaris-large-server",
		    "rac_cluster_id": 10,
		    "network_recipe": {
			"domain_name": "us.example.com",
			"name_servers": "nnn.nnn.nnn.nnn.nnn.nnn.198",
			"time_servers": "nnn.nnn.nnn.1 nnn.nnn.nnn.nnn.nnn.nnn.1",
			"time_zone": "America/Los_Angeles"
		    },
		    "recipe": {
			"core_max": 2,
			"memory_max": 32,
			"ib_vf_max": 1,
			"xgb_vf_max": 2
		    }
		}
	    ],
	    "scan_address_groups": [
		{
		    "id": 1,
		    "scan_addresses": [
			{
			    "ip_address": "nnn.nnn.nnn.6"
			},
			{
			    "ip_address": "nnn.nnn.nnn.7"
			},
			{
			    "ip_address": "nnn.nnn.nnn.8"
			}
		    ],
		    "scan_hostname": "io-scan-1",
		    "rac_cluster_id": 10
		}
	    ],
	    "deployment_group": {
		"id": 1,
		"io_domains": [
		    {
			"id": 2,
			"state": 1,
			"state_str": "Queued for Deployment",
			"mgmt_hostname": "mysys46"
		    }
		],
		"state_str": "Queued for Deployment",
		"state": 0,
		"created": "2018-05-12T13:31:13.217440Z",
		"owner": 2
	    }
	}

IP Address APIs – /api/ip_address/id/

/api/ip_address/{id}/
	GET: Return IP Address object whose ID matches supplied ID
	RETURNS: Multiple Serialized IPAddress Objects

	{
	  "id": 1,
	  "ip_address": "nnn.nnn.nnn.26",
	  "hostname": "mysys-sp0",
	  "allocated": true,
	  "allocated_at_setup": true,
	  "is_scan": false,
	  "is_gateway": false,
	  "order_weight": 1,
	  "network": 1,
	  "tag": null
	}

Network APIs – /api/network/

/api/network/
	GET: Returns All Networks
	RETURNS: Multiple Serialized Network Objects

	[
	  {
	    "id": 6,
	    "start_address": "nnn.nnn.nnn.35",
	    "end_address": "nnn.nnn.nnn.64",
	    "netmask": "255.255.255.0",
	    "default_route": "nnn.nnn.nnn.254",
	    "network_identifier": {
	      "id": 1,
	      "display_name": "Management Network",
	      "internal_name": "management",
	      "description": "The Management (1Gb) Network",
	      "routable": true
	    },
	    "applies_to_all": true,
	    "accessible_users": [],
	    "accessible_groups": [
	      6
	    ],
	    "ipaddress_set": [
	      {
		"ip_address": "nnn.nnn.nnn.35",
		"hostname": null,
		"is_scan": false,
		"allocated": false
	      },
	    ...
	]

/api/network/
	POST Data:
	{
	    "start_address": "nnn.nnn.nnn.1",
	    "end_address": "nnn.nnn.nnn.120", #optional
	    "netmask": "255.255.255.0",
	    "default_route": "nnn.nnn.nnn.1", #optional for non-routable nets
	    "network_identifier": 1,
	    "applies_to_all": false,
	    "accessible_users": [],
	    "accessible_groups": []
	}

	network_identifier: Id of a Network Identifier
		- Note NetworkIdentifier Retrieval REST Interface not
			yet available. Use manual mapping 
			
	accessible_users: List of User ID's
        accessible_groups: Ignored currently

	RETURNS: Serialized Network Object

	  {
	    "id": 6,
	    "start_address": "nnn.nnn.nnn.35",
	    "end_address": "nnn.nnn.nnn.64",
	    "netmask": "255.255.255.0",
	    "default_route": "nnn.nnn.nnn.254",
	    "network_identifier": {
	      "id": 1,
	      "display_name": "Management Network",
	      "internal_name": "management",
	      "description": "The Management (1Gb) Network",
	      "routable": true
	    },
	    "applies_to_all": true,
	    "accessible_users": [],
	    "accessible_groups": [
	      6
	    ],
	    "ipaddress_set": [
	      {
		"ip_address": "nnn.nnn.nnn.35",
		"hostname": null,
		"is_scan": false,
		"allocated": false
	      },
	    ...
	  }

/api/network/{id}/
	GET: Returns a serialized network instance which matches supplied ID
	Not Found: Should return 404

	RETURNS: Serialized Network Object
	{
	    "id": 6,
	    "start_address": "nnn.nnn.nnn.35",
	    "end_address": "nnn.nnn.nnn.64",
	    "netmask": "255.255.255.0",
	    "default_route": "nnn.nnn.nnn.254",
	    "network_identifier": {
	      "id": 1,
	      "display_name": "Management Network",
	      "internal_name": "management",
	      "description": "The Management (1Gb) Network",
	      "routable": true
	    },
	    "applies_to_all": true,
	    "accessible_users": [],
	    "accessible_groups": [
	      6
	    ],
	    "ipaddress_set": [
	      {
		"ip_address": "nnn.nnn.nnn.35",
		"hostname": null,
		"is_scan": false,
		"allocated": false
	      },
	    ...
	  }

Network Recipe APIs – /api/network/recipe/

/api/network/recipe/
	GET: Return all Network Recipe Objects
	RETURNS: Serialized Network Recipe Object
	
	HTTP 200 OK
    Allow: GET, POST, HEAD, OPTIONS
    Content-Type: application/json
    Vary: Accept
    [
    {
        "id": 1,
        "name": "default",
        "domain_name": "us.example.com",
        "name_servers": "nnn.nnn.nnn.197 nnn.nnn.nnn.198 nnn.nnn.nnn.132",
        "time_servers": "nnn.nnn.nnn.1",
        "time_zone": "America/Los_Angeles",
        "applies_to_all": true,
        "active": true,
        "owner": 2
    },
    ...
    ...
    ]


/api/network/recipe/
	POST: Create a new Network Recipe
	POST Data:
	{
	    "name": "",
	    "domain_name": "",
	    "name_servers": "",
	    "time_servers": "",
	    "time_zone": "",
	    "applies_to_all": false, # default
	    "active": false,
	    "users": [] 
	}
	users: list of user id's who may access this network
	RETURNS: Serialized New Network Recipe Object

/api/network/recipe/{id}/
	DELETE: Delete a Network Recipe with supplied ID

/api/network/recipe/{id}/
	GET: Get a Network Recipe with supplied ID
	RETURNS: Serialized Network Recipe Object
	{
	  "id": 1,
	  "name": "Small",
	  "core_max": 2,
	  "memory_max": 32,
	  "ib_vf_max": 1,
	  "xgb_vf_max": 2,
	  "applies_to_all": true,
	  "owner": 2,
	  "active": true
	}

/api/network/recipe/{id}/
	PUT: Modify a network recipe with the supplied ID
	POST Data:
	{
	    "id": "",
	    "name": "",
	    "domain_name": "",
	    "name_servers": "",
	    "time_servers": "",
	    "time_zone": "",
	    "applies_to_all": false, # default
	    "active": false,
	    "users": [] 
	}
	users: list of user id's who may access this network
	RETURNS: Serialized Modified Network Recipe
	{
	  "id": 1,
	  "name": "Small",
	  "core_max": 2,
	  "memory_max": 32,
	  "ib_vf_max": 1,
	  "xgb_vf_max": 2,
	  "applies_to_all": true,
	  "owner": 2,
	  "active": true
	}

Physical Domain APIs – /api/physicaldomain/

/api/physicaldomain/
	GET: Return all PhysicalDomain (PDOM) Objects
	RETURNS: Multiple Serialized Physical Domain Objects
	[
	  {
	    "id": 1,
	    "internal_name": "ssccn1",
	    "guests": [
	      {
		"id": 1,
		"internal_name": "primary",
		"host_os": "s11",
		"host_type": "root",
		"physical_type": "guest",
		"virtual_type": "ldom",
		"state": 400,
		"primary_interface": "mgmt",
		"is_control_domain": true,
		"is_master_control_domain": true,
		"is_service_domain": false,
		"rac_id": null,
		"active": true,
		"sanity_target": true,
		"physical_position_index": null,
		"timing": null,
		"net_config": 1,
		"mgmt_interfaces": [
		  6
		],
		"client_interfaces": [
		  8
		],
		"zfs_ib_interfaces": [
		  7
		],
		"exa_ib_interfaces": [],
		"vip_interfaces": [],
		"versaboot_interfaces": [
		  9,
		  10
		],
		"ilom_interfaces": [],
		"memory": [],
		"cores": [],
		"physical_functions": [],
		"root_complexes": [
		  1,
		  2,
		  3,
		  4,
		  5,
		  6
		],
		"variables": [],
		"accessible_groups": [],
		"accessible_users": [],
		"io_domains": [],
		"vms": []
	      },
	      {
		"id": 2,
		"internal_name": "ssccn1-dom1",
		"host_os": "s11",
		"host_type": "root",
		"physical_type": "guest",
		"virtual_type": "ldom",
		"state": 400,
		"primary_interface": "mgmt",
		"is_control_domain": false,
		"is_master_control_domain": false,
		"is_service_domain": true,
		"rac_id": null,
		"active": true,
		"sanity_target": true,
		"physical_position_index": null,
		"timing": null,
		"net_config": 2,
		"mgmt_interfaces": [
		  11
		],
		"client_interfaces": [],
		"zfs_ib_interfaces": [
		  12
		],
		"exa_ib_interfaces": [],
		"vip_interfaces": [],
		"versaboot_interfaces": [
		  13,
		  14
		],
		"ilom_interfaces": [],
		"memory": [],
		"cores": [],
		"physical_functions": [],
		"root_complexes": [
		  8,
		  9,
		  10,
		  7
		],
		"variables": [],
		"accessible_groups": [],
		"accessible_users": [],
		"io_domains": [],
		"vms": []
	      }
	    ]
	  },
	  {
	    "id": 2,
	    "internal_name": "ssccn3",
	    "guests": [
	      {
		"id": 3,
		"internal_name": "primary",
		"host_os": "s11",
		"host_type": "root",
		"physical_type": "guest",
		"virtual_type": "ldom",
		"state": 400,
		"primary_interface": "mgmt",
		"is_control_domain": true,
		"is_master_control_domain": false,
		"is_service_domain": false,
		"rac_id": null,
		"active": true,
		"sanity_target": true,
		"physical_position_index": null,
		"timing": null,
		"net_config": 3,
		"mgmt_interfaces": [
		  19
		],
		"client_interfaces": [],
		"zfs_ib_interfaces": [
		  20
		],
		"exa_ib_interfaces": [],
		"vip_interfaces": [],
		"versaboot_interfaces": [
		  21,
		  22
		],
		"ilom_interfaces": [],
		"memory": [],
		"cores": [],
		"physical_functions": [],
		"root_complexes": [
		  1,
		  2,
		  3,
		  4,
		  5,
		  6
		],
		"variables": [],
		"accessible_groups": [],
		"accessible_users": [],
		"io_domains": [],
		"vms": []
	      },
	      {
		"id": 4,
		"internal_name": "ssccn3-dom1",
		"host_os": "s11",
		"host_type": "root",
		"physical_type": "guest",
		"virtual_type": "ldom",
		"state": 400,
		"primary_interface": "mgmt",
		"is_control_domain": false,
		"is_master_control_domain": false,
		"is_service_domain": true,
		"rac_id": null,
		"active": true,
		"sanity_target": true,
		"physical_position_index": null,
		"timing": null,
		"net_config": 4,
		"mgmt_interfaces": [
		  23
		],
		"client_interfaces": [],
		"zfs_ib_interfaces": [
		  24
		],
		"exa_ib_interfaces": [],
		"vip_interfaces": [],
		"versaboot_interfaces": [
		  25,
		  26
		],
		"ilom_interfaces": [],
		"memory": [],
		"cores": [],
		"physical_functions": [],
		"root_complexes": [
		  8,
		  9,
		  10,
		  7
		],
		"variables": [],
		"accessible_groups": [],
		"accessible_users": [],
		"io_domains": [],
		"vms": []
	      }
	    ]
	  },
	  {
	    "id": 3,
	    "internal_name": "ssccn4",
	    "guests": [
	      {
		"id": 5,
		"internal_name": "primary",
		"host_os": "s11",
		"host_type": "root",
		"physical_type": "guest",
		"virtual_type": "ldom",
		"state": 400,
		"primary_interface": "mgmt",
		"is_control_domain": true,
		"is_master_control_domain": false,
		"is_service_domain": false,
		"rac_id": null,
		"active": true,
		"sanity_target": true,
		"physical_position_index": null,
		"timing": null,
		"net_config": 5,
		"mgmt_interfaces": [
		  28
		],
		"client_interfaces": [],
		"zfs_ib_interfaces": [
		  29
		],
		"exa_ib_interfaces": [],
		"vip_interfaces": [],
		"versaboot_interfaces": [
		  30,
		  31
		],
		"ilom_interfaces": [],
		"memory": [],
		"cores": [],
		"physical_functions": [],
		"root_complexes": [
		  11,
		  12,
		  13,
		  14,
		  15,
		  16
		],
		"variables": [],
		"accessible_groups": [],
		"accessible_users": [],
		"io_domains": [],
		"vms": []
	      },
	      {
		"id": 6,
		"internal_name": "ssccn4-dom1",
		"host_os": "s11",
		"host_type": "root",
		"physical_type": "guest",
		"virtual_type": "ldom",
		"state": 400,
		"primary_interface": "mgmt",
		"is_control_domain": false,
		"is_master_control_domain": false,
		"is_service_domain": true,
		"rac_id": null,
		"active": true,
		"sanity_target": true,
		"physical_position_index": null,
		"timing": null,
		"net_config": 6,
		"mgmt_interfaces": [
		  32
		],
		"client_interfaces": [],
		"zfs_ib_interfaces": [
		  33
		],
		"exa_ib_interfaces": [],
		"vip_interfaces": [],
		"versaboot_interfaces": [
		  34,
		  35
		],
		"ilom_interfaces": [],
		"memory": [],
		"cores": [],
		"physical_functions": [],
		"root_complexes": [
		  17,
		  18,
		  19,
		  20
		],
		"variables": [],
		"accessible_groups": [],
		"accessible_users": [],
		"io_domains": [],
		"vms": []
	      }
	    ]
	  }
	]

I/O Domain Recipe APIs – /api/recipe/

/api/recipe/
	GET: Return All IODomain Recipe Objects
	RETURNS: Multiple Serialized Recipe Objects

	HTTP 200 OK
	Allow: GET, POST, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 1,
		"name": "Small",
		"core_max": 2,
		"memory_max": 32,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    {
		"id": 2,
		"name": "Medium",
		"core_max": 4,
		"memory_max": 64,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    {
		"id": 3,
		"name": "Large",
		"core_max": 8,
		"memory_max": 128,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    {
		"id": 4,
		"name": "Small",
		"core_max": 2,
		"memory_max": 32,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    {
		"id": 5,
		"name": "Medium",
		"core_max": 4,
		"memory_max": 64,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    },
	    {
		"id": 6,
		"name": "Large",
		"core_max": 8,
		"memory_max": 128,
		"ib_vf_max": 1,
		"xgb_vf_max": 2,
		"applies_to_all": true,
		"owner": 2,
		"active": true
	    }
	]
/api/recipe/
	POST: Create a new recipe
	DATA: {
	    "name": "",
	    "core_max": null,
	    "memory_max": null,
	    "ib_vf_max": null,
	    "xgb_vf_max": null,
	    "applies_to_all": false,
	    "owner": null,
	    "active": false
	}
	owner: ID of user who will own this recipe. Defaults to current user.
	RETURNS: Serialized Recipe Object

	HTTP 200 OK
	Allow: GET, PUT, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "name": "Small",
	    "core_max": 2,
	    "memory_max": 32,
	    "ib_vf_max": 1,
	    "xgb_vf_max": 2,
	    "applies_to_all": true,
	    "owner": 2,
	    "active": true
	}

/api/recipe/{id}/
	DELETE: Deletes the Recipe whose ID matches supplied ID

/api/recipe/{id}/
	GET: Get the Recipe whose ID matches Supplied ID
	RETURNS: Serialized Recipe Object
	HTTP 200 OK
	Allow: GET, PUT, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "name": "Small",
	    "core_max": 2,
	    "memory_max": 32,
	    "ib_vf_max": 1,
	    "xgb_vf_max": 2,
	    "applies_to_all": true,
	    "owner": 2,
	    "active": true
	}

/api/recipe/{id}/
	PUT: Update the Recipe whose ID matches Supplied ID
	DATA: {
	    "id":"",
	    "name": "",
	    "core_max": null,
	    "memory_max": null,
	    "ib_vf_max": null,
	    "xgb_vf_max": null,
	    "applies_to_all": false,
	    "owner": null,
	    "active": false
	}
	RETURNS: Serialized Recipe Object
	HTTP 200 OK
	Allow: GET, PUT, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": 1,
	    "name": "Small",
	    "core_max": 2,
	    "memory_max": 32,
	    "ib_vf_max": 1,
	    "xgb_vf_max": 2,
	    "applies_to_all": true,
	    "owner": 2,
	    "active": true
	}

Resource Allowance APIs –/api/resourceallowance/

/api/resourceallowance/
	GET: List all User Resource Allowances
	HTTP 200 OK
	Allow: GET, PUT, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": "",
	    "num_ib_vfs": null,
	    "num_xgb_vfs": null,
	    "num_fc_vfs": null,
	    "num_cores": null,
	    "mem_in_gb": null,
	    "user": null
	}

/api/resourceallowance/
	POST: Create a User Resource Allowance
	DATA: {
	    "num_ib_vfs": null,
	    "num_xgb_vfs": null,
	    "num_fc_vfs": null,
	    "num_cores": null,
	    "mem_in_gb": null,
	    "user": null
	}

	user: id of the user to whom this allowance corresponds
	RETURNS: Serialized Resource Allowance Object

	HTTP 200 OK
	Allow: GET, PUT, DELETE, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	{
	    "id": "",
	    "num_ib_vfs": null,
	    "num_xgb_vfs": null,
	    "num_fc_vfs": null,
	    "num_cores": null,
	    "mem_in_gb": null,
	    "user": null
	}

SCAN Address Group APIs – /api/scan_address_group/

/api/scan_address_group/
	GET: List All Scan Address Groups
	RETURNS: Multiple Serialized Scan Address Group Objects

/api/scan_address/group/{id}
	GET: Return ScanAddressGroup whose ID matches the supplied ID
	RETURNS: Serialized Scan Address Group Objects

System Log APIs – /api/systemlog/

/api/systemlog/
	GET: Return All SystemLog Entries (can take a while)
	RETURNS: Multiple Serialized System Log Objects

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 50,
		"level": "success",
		"message": "The user admin logged in successfully from nnn.nnn.nnn.99",
		"created": "2018-05-12T10:51:30.514744Z"
	    },
	    {
		"id": 49,
		"level": "success",
		"message": "System Configuration Import Complete.",
		"created": "2018-05-12T10:48:56.996620Z"
	    },
	    {
		"id": 48,
		"level": "info",
		"message": "Resource Discovery Complete.",
		"created": "2018-05-12T10:48:56.970266Z"
	    }
	    ...
	]

User APIs – /api/user/

/api/user/
	GET: Return all Users
	RETURNS: Multiple Serialized Resource Allowance Objects

	HTTP 200 OK
	Allow: GET, HEAD, OPTIONS
	Content-Type: application/json
	Vary: Accept

	[
	    {
		"id": 2,
		"groups": [
		    {
			"id": 1,
			"name": "network_1_owners"
		    },
		    {
			"id": 2,
			"name": "network_2_owners"
		    },
		    {
			"id": 3,
			"name": "network_3_owners"
		    },
		    {
			"id": 4,
			"name": "network_4_owners"
		    },
		    {
			"id": 5,
			"name": "network_5_owners"
		    },
		    {
			"id": 6,
			"name": "network_6_owners"
		    },
		    {
			"id": 7,
			"name": "network_7_owners"
		    },
		    {
			"id": 8,
			"name": "network_8_owners"
		    },
		    {
			"id": 9,
			"name": "network_9_owners"
		    },
		    {
			"id": 10,
			"name": "network_10_owners"
		    }
		],
		"username": "admin",
		"first_name": "Administrator",
		"last_name": "",
		"email": "example@example.com",
		"is_staff": true,
		"is_active": true,
		"user_permissions": []
	    }
	]

/api/user/{id}/resourceallowance/
	GET: Return the User Allowance for the User whose ID matches the supplied ID
	RETURNS: Serialized Resource Allowance Object

/api/user/{id}/resourceallowance/
	PUT: Update the Resource Allowance for the User whose ID matches the supplied ID
	DATA: {
	    "num_ib_vfs": null,
	    "num_xgb_vfs": null,
	    "num_fc_vfs": null,
	    "num_cores": null,
	    "mem_in_gb": null
	}
	RETURNS: Serialized Resource Allowance Object

Zone List API – /api/zone

/api/zone/

	HTTP 200 OK
	Allow: GET
	Content-Type: application/json\
[
  {
    "id": 2,
    "mgmt_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.31",
        "hostname": "z1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "client_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.215",
        "hostname": "z1-client1",
        "is_scan": false,
        "allocated": true
      },
      {
        "ip_address": "nnn.nnn.nnn.216",
        "hostname": "z1-client2",
        "is_scan": false,
        "allocated": true
      }
    ],
    "zfs_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.10",
        "hostname": "z1-storib",
        "is_scan": false,
        "allocated": true
      }
    ],
    "exa_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.13",
        "hostname": "z1-priv1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "vip_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.217",
        "hostname": "z1-vip",
        "is_scan": false,
        "allocated": true
      }
    ],
    "versaboot_interfaces": [],
    "state_str": "Configured",
    "accessible_groups": [
      {
        "id": 27,
        "name": "vm_2_owners"
      }
    ],
    "internal_name": "zone",
    "host_os": "s11",
    "host_type": "zone",
    "physical_type": "guest",
    "virtual_type": "zone",
    "state": 350,
    "primary_interface": "mgmt",
    "is_control_domain": false,
    "is_master_control_domain": false,
    "is_service_domain": false,
    "rac_id": 10,
    "active": true,
    "sanity_target": false,
    "physical_position_index": null,
    "timing": null,
    "net_config": 7,
    "ilom_interfaces": [],
    "memory": [],
    "cores": [],
    "physical_functions": [],
    "root_complexes": [],
    "variables": [],
    "accessible_users": [],
    "io_domains": [
      22
    ]
  },
  {
    "id": 4,
    "mgmt_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.32",
        "hostname": "z2",
        "is_scan": false,
        "allocated": true
      }
    ],
    "client_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.225",
        "hostname": "z2-client",
        "is_scan": false,
        "allocated": true
      }
    ],
    "zfs_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.11",
        "hostname": "z2-storib",
        "is_scan": false,
        "allocated": true
      }
    ],
    "exa_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.15",
        "hostname": "z2-priv1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "vip_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.226",
        "hostname": "z2-vip",
        "is_scan": false,
        "allocated": true
      }
    ],
    "versaboot_interfaces": [],
    "state_str": "Configured",
    "accessible_groups": [
      {
        "id": 29,
        "name": "vm_4_owners"
      }
    ],
    "internal_name": "zone",
    "host_os": "s11",
    "host_type": "zone",
    "physical_type": "guest",
    "virtual_type": "zone",
    "state": 350,
    "primary_interface": "mgmt",
    "is_control_domain": false,
    "is_master_control_domain": false,
    "is_service_domain": false,
    "rac_id": 10,
    "active": true,
    "sanity_target": false,
    "physical_position_index": null,
    "timing": null,
    "net_config": 9,
    "ilom_interfaces": [],
    "memory": [],
    "cores": [],
    "physical_functions": [],
    "root_complexes": [],
    "variables": [],
    "accessible_users": [],
    "io_domains": [
      31
    ]
  },
  {
    "id": 5,
    "mgmt_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.34",
        "hostname": "z3",
        "is_scan": false,
        "allocated": true
      }
    ],
    "client_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.227",
        "hostname": "z3-client1",
        "is_scan": false,
        "allocated": true
      },
      {
        "ip_address": "nnn.nnn.nnn.230",
        "hostname": "z3-client2",
        "is_scan": false,
        "allocated": true
      }
    ],
    "zfs_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.13",
        "hostname": "z3-storib",
        "is_scan": false,
        "allocated": true
      }
    ],
    "exa_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.17",
        "hostname": "z3-priv1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "vip_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.231",
        "hostname": "z3-vip",
        "is_scan": false,
        "allocated": true
      }
    ],
    "versaboot_interfaces": [],
    "state_str": "Configured",
    "accessible_groups": [
      {
        "id": 30,
        "name": "vm_5_owners"
      }
    ],
    "internal_name": "zone",
    "host_os": "s11",
    "host_type": "zone",
    "physical_type": "guest",
    "virtual_type": "zone",
    "state": 350,
    "primary_interface": "mgmt",
    "is_control_domain": false,
    "is_master_control_domain": false,
    "is_service_domain": false,
    "rac_id": 5,
    "active": true,
    "sanity_target": false,
    "physical_position_index": null,
    "timing": null,
    "net_config": 10,
    "ilom_interfaces": [],
    "memory": [],
    "cores": [],
    "physical_functions": [],
    "root_complexes": [],
    "variables": [],
    "accessible_users": [],
    "io_domains": [
      22
    ]
  },
  {
    "id": 6,
    "mgmt_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.36",
        "hostname": "z4",
        "is_scan": false,
        "allocated": true
      }
    ],
    "client_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.235",
        "hostname": "z4-client",
        "is_scan": false,
        "allocated": true
      }
    ],
    "zfs_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.15",
        "hostname": "z4-storib",
        "is_scan": false,
        "allocated": true
      }
    ],
    "exa_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.18",
        "hostname": "z4-priv1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "vip_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.236",
        "hostname": "z4-vip",
        "is_scan": false,
        "allocated": true
      }
    ],
    "versaboot_interfaces": [],
    "state_str": "Configured",
    "accessible_groups": [
      {
        "id": 31,
        "name": "vm_6_owners"
      }
    ],
    "internal_name": "zone",
    "host_os": "s11",
    "host_type": "zone",
    "physical_type": "guest",
    "virtual_type": "zone",
    "state": 350,
    "primary_interface": "mgmt",
    "is_control_domain": false,
    "is_master_control_domain": false,
    "is_service_domain": false,
    "rac_id": 5,
    "active": true,
    "sanity_target": false,
    "physical_position_index": null,
    "timing": null,
    "net_config": 11,
    "ilom_interfaces": [],
    "memory": [],
    "cores": [],
    "physical_functions": [],
    "root_complexes": [],
    "variables": [],
    "accessible_users": [],
    "io_domains": [
      31
    ]
  },
  {
    "id": 7,
    "mgmt_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.42",
        "hostname": "z22",
        "is_scan": false,
        "allocated": true
      }
    ],
    "client_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.241",
        "hostname": "z22-client",
        "is_scan": false,
        "allocated": true
      }
    ],
    "zfs_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.22",
        "hostname": "z22-storib",
        "is_scan": false,
        "allocated": true
      }
    ],
    "exa_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.19",
        "hostname": "z22-priv1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "vip_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.242",
        "hostname": "z22-vip",
        "is_scan": false,
        "allocated": true
      }
    ],
    "versaboot_interfaces": [],
    "state_str": "Configured",
    "accessible_groups": [
      {
        "id": 33,
        "name": "vm_7_owners"
      }
    ],
    "internal_name": "zone",
    "host_os": "s11",
    "host_type": "zone",
    "physical_type": "guest",
    "virtual_type": "zone",
    "state": 350,
    "primary_interface": "mgmt",
    "is_control_domain": false,
    "is_master_control_domain": false,
    "is_service_domain": false,
    "rac_id": 1,
    "active": true,
    "sanity_target": false,
    "physical_position_index": null,
    "timing": null,
    "net_config": 12,
    "ilom_interfaces": [],
    "memory": [],
    "cores": [],
    "physical_functions": [],
    "root_complexes": [],
    "variables": [],
    "accessible_users": [],
    "io_domains": [
      31
    ]
  },
  {
    "id": 8,
    "mgmt_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.46",
        "hostname": "z33-dbz",
        "is_scan": false,
        "allocated": true
      }
    ],
    "client_interfaces": [
      {
        "ip_address": "nnn.nnn.nnnnnn.nnn.nnn.248",
        "hostname": "z33-dbz-client",
        "is_scan": false,
        "allocated": true
      }
    ],
    "zfs_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.25",
        "hostname": "z33-dbz-storib",
        "is_scan": false,
        "allocated": true
      }
    ],
    "exa_ib_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.21",
        "hostname": "z33-dbz-priv1",
        "is_scan": false,
        "allocated": true
      }
    ],
    "vip_interfaces": [
      {
        "ip_address": "nnn.nnn.nnn.249",
        "hostname": "z33-dbz-vip",
        "is_scan": false,
        "allocated": true
      }
    ],
    "versaboot_interfaces": [],
    "state_str": "Configured",
    "accessible_groups": [
      {
        "id": 34,
        "name": "vm_8_owners"
      }
    ],
    "internal_name": "zone",
    "host_os": "s11",
    "host_type": "zone",
    "physical_type": "guest",
    "virtual_type": "zone",
    "state": 350,
    "primary_interface": "mgmt",
    "is_control_domain": false,
    "is_master_control_domain": false,
    "is_service_domain": false,
    "rac_id": 10,
    "active": true,
    "sanity_target": false,
    "physical_position_index": null,
    "timing": null,
    "net_config": 13,
    "ilom_interfaces": [],
    "memory": [],
    "cores": [],
    "physical_functions": [],
    "root_complexes": [],
    "variables": [],
    "accessible_users": [],
    "io_domains": [
      55
    ]
  }
]