Infrastructure Groups
#340080
Description
This API returns Infrastructure Group details so that Workloads can be routed appropriately. The API provides stats and amenities at each defined timeframe of the timeline. The API also provides the results of the Fit-for-Purpose checks for a specific hosting venue and workload placement.
Hosting Venues
This API supports full control hosting venues (i.e. infrastructure groups), non-control hosting venues and guest-level hosting venues.
With respect to this API, the difference between the hosting venues is as follows:
- Options for Returned Details—for the amenities query, the empty arrays "host_summary": [] and "sensor_capacities": [] are returned as there are no hosts or sensors in non-control and guest-level hosting venues; all options are available for all three hosting venues
- Supported Operations—all operations are supported for all three hosting venues except:
- for non-control and guest-level hosting venues, you can only open/close but not auto-close them using PUT /infrastructure-groups/<id>
- Resource Elements—only elements that are applicable to the hosting venue is returned in the response. Specifically:
- for non-control and guest-level hosting venues, element value allow_new_workloads: "DO_NOT_ALLOW_IF_RISK", stats elements (specifically cei, total_guests, total_hosts, required_hosts, outbound_guest_bookings, inbound_host_bookings, outbound_host_bookings) are not returned
- for non-control hosting venues, element value last_refreshed_time is not returned
Options for Returned Details
You can extend the amenities query:
GET /infrastructure-groups/<id>/amenities/
with any or all of the following to return only the information required:
- host_summary=false—does not return the host_summary array
- sensor_capacities=false—does not return the sensor_capacities array
- capability_groups=false—does not return the capability_groups array
By default, these options are all true.
Resource
/infrastructure-groups
/infrastructure-groups/amenities
Supported Operations
Table: Infrastructure Group Supported Operations
Operation |
HTTP Method |
Input |
Output |
Description |
Get Collection |
GET /infrastructure-groups |
None |
Infrastructure Group collection of [id, name, platform, platform_category, href, hardware_name, hardware_icon, control_type, color_code_selected, color_code_unselected] |
Default Sort By is defined as: Common Operations is supported. |
Get Individual |
GET /infrastructure-groups/<id> |
None |
Retrieve the Infrastructure Group elements of the specified id. |
|
Get Individual Amenities |
GET /infrastructure-groups/<id>/amenities |
None |
Retrieve the amenities of the Infrastructure Group specified by id, for each defined timeframe of the timeline. Example: Getting the Amenities of an Individual Infrastructure Group, Example: Getting the Amenities of an Individual Infrastructure Group for Today |
|
Modify Individual |
PUT /infrastructure-groups/<id> |
An Infrastructure Group can be modified to open, close or auto-close it, in terms of allowing new workloads. Example: Modifying an Infrastructure Group to Auto-Close Based on Performance Risk, Example: Manually Closing an Infrastructure Group |
||
Post Individual Fit-for-Purpose Checks |
POST /infrastructure-groups/<id>/ffp-check |
Fit-for-Purpose Checks of the Infrastructure Group: Form Definition |
categories, as defined in Resource Elements |
Retrieve the results of the Fit-for-Purpose checks for the Infrastructure Group specified by id and the workload placement specified by Fit-for-Purpose Checks of the Infrastructure Group: Form Definition. Example: Getting an Infrastructure Group's Fit-for-Purpose Checks |
Resource Elements
Infrastructure Groups: Resource Elements
Table: Infrastructure Group Resource Elements
Element |
Type |
Sort By |
Filter |
Description |
id, name, href |
strings |
S by name |
F by name The filter-metadata returns infrastructure_groups with the metadata values of name |
|
string |
|
|
Indicates whether this Infrastructure Group is accepting new workloads or not. This corresponds to the field Allow New VM Bookings in
|
|
amenities |
href |
|
|
The href to the Amenities for the Infrastructure Group. The Amenities object is used to show the capabilities of the Infrastructure Group, for each defined timeframe of the timeline (referenced by the short_name of the Timeline Tags). This includes the supported hardware, licensed software, compute and storage information. See Amenities of the Infrastructure Group: Resource Elements below for details. |
string |
|
|
The reason why the availability_status has the value it has. Can be user-defined or Densify-defined:
|
|
availability_status |
string |
S |
F The filter-metadata returns status_values with all possible states |
Whether or not the Infrastructure Group is available or not for routing.
|
color_code_selected |
string |
|
|
The color displayed in the Hosting Venues pane of the Route and Reserve Demand page, when this hosting venue tile is selected. |
color_code_unselected |
string |
|
|
The color displayed in the Hosting Venues pane of the Route and Reserve Demand page, when this hosting venue tile is not selected. |
control_type |
string |
|
F |
The type of hosting venue:
|
control_environment |
id, name, platform, platform_category, href, icon |
|
F by control_environment_id |
The Control Environment where this Infrastructure Group belongs. |
creation_time |
number |
S |
|
The UTC date and time the Infrastructure Group was created. |
hardware_icon |
string |
|
|
The URL where the icon representing the hardware is found, e.g. "http://thedocs1:8086/CIRBA/images/serverModelIcon/Dell_small.png". |
hardware_name |
string |
|
|
The name of the hardware in the Infrastructure Group, e.g. "PowerEdge". |
last_refreshed_time |
number |
S sort by last_refresh_time |
F The filter-metadata returns last_refresh_time with only UTC values, and filter by last_refresh_time with UTC values |
The UTC date and time the Infrastructure Group itself was last refreshed. If the Infrastructure Group has never been refreshed, the following is returned: "last_refreshed_time": 0 If all Infrastructure Groups in the filter-metadata query have never been refreshed, then the filter-metadata returns: "last_refresh_time": { "min": 0, "max": 0 } Filtering by range with a value of 0 is not supported. e.g. the following does not return all Infrastructure Groups that have never been refreshed: ?last_refresh_time_from=0& |
platform |
string |
|
F The filter-metadata returns platform_type with the metadata values of platform |
The system type being analyzed. For examples:
|
platform_category |
string |
|
F |
The type of platform. Infrastructure Groups have the same platform_category as the Control Environment where they belong. Possible categories are:
|
stats |
Complex, as specified in the Description |
|
|
The overall statistics of the Infrastructure Group at each timeframe. For each timeframe that has data (tagged using short_name of the Timeline Tags):
If the Infrastructure Group has never been refreshed or is currently being refreshed (even for a specific timeframe), the following is returned: Note: If the Infrastructure Group has been disqualified, then the CEI is -1 and all the above totals are 0. |
You can use an Infrastructure Group form if you want to specify how the Infrastructure Group can be modified to open, close or auto-close it, in terms of allowing new workloads.
Table: Infrastructure Group Form Definition
Element |
Type |
Req |
Description |
allow_new_workloads |
string |
P |
To specify whether or not to allow new workloads, as documented above for allow_new_workloads. Options are:
|
availability_reason |
string |
|
Optionally, you can define a reason why new workloads are not allowed, as documented above for availability_reason. Setting this element is valid only when allow_new_workloads is set to "DO_NOT_ALLOW". |
Amenities of the Infrastructure Group: Resource Elements
For each timeframe, the following information on amenities is returned.
Table: Amenities of the Infrastructure Group Resource Elements
Element |
Type |
Description |
href |
string |
Link to this amenities for this timeframe. e.g. for "timeline": "180", "href": "/infrastructure-groups/542cd4bc-1e4a-494c-930c-e00679e9e11a/amenities/180". |
capability_groups |
Complex, as specified in the Description |
An array of capabilities, NOT returned if option capability_groups=false is used in the query. An array entry defines one capability grouping, as follows:
|
feature_description |
string |
Optional description for the timeframe amenities. |
host_summary |
Complex, as specified in the Description |
An array of the different hosts in the Infrastructure Group, NOT returned if option host_summary=false is used in the query. An array entry defines each model, as follows:
|
sensor_capacities |
Complex, as specified in the Description |
An array of metrics for each sensor type, NOT returned if option sensor_capacities=false is used in the query. An array entry defines each sensor type as follows:
|
timeline |
string |
Name of the timeframe of the timeline. This is the same as the short_name of the Timeline Tags. |
Fit-for-Purpose Checks of the Infrastructure Group: Form Definition
In order to retrieve the results of the Fit-for-Purpose checks, you need to specify the workloads for placement along with the expected date.
Table: Fit-for-Purpose Checks of the Infrastructure Group Form Definition
Element |
Type |
Req |
Description |
workloads |
[id] |
P |
An array of Workload ids to be placed. |
expected_date |
number |
P |
The date these workloads are expected to arrive in UTC. The time portion is ignored. The date must be today's date or some date in the future. |
Examples
Example: Getting a Collection of Infrastructure Groups
The following example shows you how to obtain the collection of current hosting venues.

Request:
GET /infrastructure-groups
Response:
[
{
"id": "104716a8-63c7-4fe9-a82d-48d5ec1fbf33",
"name": "Eng-UAT",
"platform": "VMWARE",
"platform_category": "Internal Virtual",
"href": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33"
"hardware_name": "PowerEdge",
"hardware_icon": http://thedocs1:8086/CIRBA/images/serverModelIcon/Dell_small.png,
"control_type": "FULL"
"color_code_selected": "#AACBEC"
"color_code_unselected": "#DCE5F4"
},
{
"id": "11673bee-6e02-436c-afc5-64692a517e08",
"name": "Bos-Eng&Dev",
"platform": "IBM",
"platform_category": "Internal Virtual",
"href": "/infrastructure-groups/11673bee-6e02-436c-afc5-64692a517e08"
"hardware_name": "Power",
"hardware_icon": http://thedocs1:8086/CIRBA/images/serverModelIcon/ibm_small.png,
"control_type": "FULL"
"color_code_selected": "#AACBEC"
"color_code_unselected": "#DCE5F4"
},
// ... *SNIP* of Infrastructure Groups...
]
Example: Getting an Individual Infrastructure Group
The following example shows you how to get a single hosting venue.

Request:
GET /infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33
Response:
{
"id": "104716a8-63c7-4fe9-a82d-48d5ec1fbf33",
"name": "Eng-UAT",
"platform": "VMWARE",
"platform_category": "Internal Virtual",
"stats": {
"Today": {
"cei": 0.83,
"timeline_name": "Today",
"date": 1365480000000,
"total_guests": 72,
"total_hosts": 6,
"required_hosts": 5,
"inbound_guest_bookings": 0,
"outbound_guest_bookings": 0,
"inbound_host_bookings": 0,
"outbound_host_bookings": 0
"amenities": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33/amenities/Today"
},
"90": {
"cei": 0.83,
"timeline_name": "90 Days",
"date": 1373256000000,
"total_guests": 72,
"total_hosts": 6,
"required_hosts": 5,
"inbound_guest_bookings": 0,
"outbound_guest_bookings": 0,
"inbound_host_bookings": 0,
"outbound_host_bookings": 0
"amenities": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33/amenities/90"
},
"60": {
"cei": 0.83,
"timeline_name": "60 Days",
"date": 1370664000000,
"total_guests": 72,
"total_hosts": 6,
"required_hosts": 5,
"inbound_guest_bookings": 0,
"outbound_guest_bookings": 0,
"inbound_host_bookings": 0,
"outbound_host_bookings": 0
"amenities": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33/amenities/60"
},
"30": {
"cei": 0.83,
"timeline_name": "30 Days",
"date": 1368072000000,
"total_guests": 72,
"total_hosts": 6,
"required_hosts": 5,
"inbound_guest_bookings": 0,
"outbound_guest_bookings": 0,
"inbound_host_bookings": 0,
"outbound_host_bookings": 0
"amenities": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33/amenities/30"
},
"180": {
"cei": 0.83,
"timeline_name": "180 Days",
"date": 1366084800000,
"total_guests": 73,
"total_hosts": 6,
"required_hosts": 5,
"inbound_guest_bookings": 0,
"outbound_guest_bookings": 0,
"inbound_host_bookings": 0,
"outbound_host_bookings": 0
"amenities": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33/amenities/180"
}
},
"href": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33",
"hardware_name": "PowerEdge",
"hardware_icon": "http://thedocs1:8086/CIRBA/images/serverModelIcon/Dell_small.png",
"availability_status": "BLOCKED_BY_USER",
"availability_reason": "New VM Bookings have been Blocked by Operations",
"allow_new_workloads": "DO_NOT_ALLOW",
"amenities": "/infrastructure-groups/104716a8-63c7-4fe9-a82d-48d5ec1fbf33/amenities",
"control_type": "FULL",
"color_code_selected": "#AACBEC",
"color_code_unselected": "#DCE5F4",
"control_environment": {
"id": "e1d6867b-abca-4587-a9cf-1f9df2667eb5",
"name": "Houston",
"platform": "VMWARE",
"platform_category": "Internal Virtual",
"control_type": "FULL",
"href": "/control-environments/e1d6867b-abca-4587-a9cf-1f9df2667eb5",
"icon": "/control-environments/e1d6867b-abca-4587-a9cf-1f9df2667eb5/icon"
},
"creation_time": 1365908733947,
"last_refreshed_time": 1371232026497
}
Example: Getting an Infrastructure Group's Fit-for-Purpose Checks
The following example shows you how to get the Fit-for-Purpose results for a specific hosting venue and workload placement, for the expected date as specified.

Request:
POST /infrastructure-groups/05c8eabb-77ad-49dc-b22c-93d7a0e6da0e/ffp-check
{
"workloads": [
{"id": "5bda671d-832a-4ccc-8f28-43c4ad106189"}
],
"expected_date": 9908939200000
}
Response:
{
"categories": [
{
"name": "Resource",
"test": [
{
"name": "Operating Systems",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Guest Sizes",
"status_reasons": [],
"status": "PASS"
}
],
"status": "PASS"
},
{
"name": "Security",
"test": [
{
"name": "Data Jurisdiction",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Compliance",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Encryption and Key Management",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Identity and Access Management",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Security Zones",
"status_reasons": [
{
"reason": "Required Security Zone not supported",
"workload_id": "5bda671d-832a-4ccc-8f28-43c4ad106189",
"workload_name": "sas-mid33"
}
],
"status": "FAIL"
},
{
"name": "Network Isolation",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Intel TXT Support",
"status_reasons": [],
"status": "PASS"
}
],
"status": "FAIL"
},
{
"name": "Business",
"test": [
{
"name": "Location",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Departments",
"status_reasons": [
{
"reason": "Department not allowed",
"workload_id": "5bda671d-832a-4ccc-8f28-43c4ad106189",
"workload_name": "sas-mid33"
}
],
"status": "FAIL"
},
{
"name": "Service Level",
"status_reasons": [],
"status": "PASS"
}
],
"status": "FAIL"
},
{
"name": "Technical",
"test": [
{
"name": "Hosting Platform",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Hypervisor",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Maximum Guest I/O",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Operational Environments",
"status_reasons": [],
"status": "PASS"
},
{
"name": "DPDK",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Software Licenses",
"status_reasons": [],
"status": "PASS"
},
{
"name": "Crypto H/W Acceleration",
"status_reasons": [],
"status": "PASS"
},
{
"name": "License Groups",
"status_reasons": [
{
"reason": "License Group not allowed",
"workload_id": "5bda671d-832a-4ccc-8f28-43c4ad106189",
"workload_name": "sas-mid33"
}
],
"status": "FAIL"
},
{
"name": "Transport Zone",
"status_reasons": [],
"status": "PASS"
},
],
"status": "FAIL"
}
],
"status": "FAIL"
}
Example: Getting the Amenities of an Individual Infrastructure Group
The following example shows you how to get the amenities for a single hosting venue.

Request:
GET /infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3/amenities
Response:
[
{
"timeline": "Today",
"href": "/infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3/amenities/Today",
"feature_description": "",
"host_summary": [
{
"count": 6,
"memory": 589824,
"model_name": "Dell PowerEdge M610",
"cpu_cores": 64,
"os_names": [
"VMware ESX Server 4.1.0",
"VMware ESX Server 4.0.0"
]
}
],
"sensor_capacities": [
{
"metrics": [
{
"name": "Total Provisioned Space (MB)",
"value": 7973470
},
{
"name": "Total Used Space (MB)",
"value": 4412514
},
{
"name": "Total Required Space (MB)",
"value": 5022252
},
{
"name": "Capacity (MB)",
"value": 7570376
}
],
"sensor_type": "Datastores",
"total_sensors": 5
},
// ... *SNIP* of capabilities for Physical Storage and Resource Pools //
],
"capability_groups": [
{
"name": "Resource",
"capabilities": [
{
"name": "Operating Systems",
"type": "Pick-list type A",
"values": [
{
"key": "0",
"value": "Linux"
},
{
"key": "1",
"value": "Windows"
}
]
},
{
"name": "Maximum Guest Size",
"type": "Parameter-driven",
"values": [
{
"key": "Memory size (MB)",
"value": "24567"
},
{
"key": "Number of vCPUs",
"value": "4"
}
]
},
{
"name": "Datastores Tiers",
"type": "Parameter-driven",
"values": [
{
"key": "0",
"value": "Default"
},
{
"key": "1",
"value": "Gold"
},
{
"key": "2",
"value": "Silver"
}
]
}
]
},
{
"name": "Security",
"capabilities": [
{
"name": "Data Jurisdiction",
"type": "Pick-list type A",
"values": []
},
{
"name": "Compliance",
"type": "Pick-list type A",
"values": []
{,
{
"name": "Encryption and Key Management",
"type": "Pick-list type A",
"values": []
},
{
"name": "Identity and Access Management",
"type": "Pick-list type A",
"values": []
},
{
"name": "Security Zones",
"type": "Pick-list type A",
"values": []
},
{
"name": "Network Isolation",
"type": "Pick-list type A",
"values": []
},
{
"name": "Intel TXT Support",
"type": "Pick-list type A",
"values": []
}
]
},
{
"name": "Business",
"capabilities": [
{
"name": "Location",
"type": "Pick-list type A",
"values": []
},
{
"name": "Departments",
"type": "Pick-list type A",
"values": []
},
{
"name": "Service Levels",
"type": "Pick-list type A",
"values": []
}
]
},
{
"name": "Technical",
"capabilities": [
{
"name": "Hosting Platform: VMware",
"type": "Parameter-driven",
"values": []
},
{
"name": "Hypervisor: VMware",
"type": "Parameter-driven",
"values": []
},
{
"name": "Maximum Guest I/O",
"type": "Parameter-driven",
"values": [
{
"key": "Context Switches (CtSw/s)",
"value": "80000"
},
{
"key": "Disk I/O (Bytes/s)",
"value": "60000000"
},
{
"key": "Disk I/O (Operations/s)",
"value": "10000"
},
{
"key": "Network I/O (Bytes/s)",
"value": "60000000"
},
{
"key": "Network I/O (Packets/s)",
"value": "50000"
}
]
},
{
"name": "Operational Environments",
"type": "Pick-list type A",
"values": [
{
"key": "0",
"value": "ProdApp"
},
{
"key": "1",
"value": "ProdGen"
},
{
"key": "2",
"value": "ProdStd"
},
]
},
{
"name": "DPDK",
"type": "Pick-list type A",
"values": []
},
{
"name": "Software Licenses",
"type": "Pick-list type A",
"values": []
},
{
"name": "Crypto H/W Acceleration",
"type": "Pick-list type A",
"values": []
},
{
"name": "License Groups",
"type": "Pick-list type A",
"values": []
},
{
"name": "Transport Zone",
"type": "Pick-list type A",
"values": []
},
]
}
]
},
// ... *SNIP* of other timelines ...
]
Example: Getting the Amenities of an Individual Infrastructure Group for Today
The following example shows you how to get amenities for a single hosting venue for today's date. The following query does not return the capability_groups array:

Request:
GET /infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3/amenities/Today?capability_groups=false
Response:
{
"timeline": "Today",
"href": "/infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3/amenities/Today",
"feature_description": "",
// ... *SNIP* of other elements as example above for "Today" ...
}
Example: Getting the hosting venue Filter Metadata for an Environment
This example retrieves the filter metadata for the hosting venues that belong to a specific environment.

Request:
GET /infrastructure-group-filter-metadata/?control_environment_id=e6cf1672-77ff-4e7d-9dda-5387b0bc95cc
Response:
{
"control_environments": [
{
"id": "e6cf1672-77ff-4e7d-9dda-5387b0bc95cc",
"name": "Boston",
"platform": "VMWARE",
"platform_category": "Internal Virtual",
"control_type": "FULL",
"href": "/control-environments/e6cf1672-77ff-4e7d-9dda-5387b0bc95cc"
"icon": "/control-environments/e6cf1672-77ff-4e7d-9dda-5387b0bc95cc/icon"
}
],
"status_values":
"AVAILABLE",
"UNAVAILABLE",
"BLOCKED_BY_USER"
],
"infrastructure_groups": [
"Bos-GenApps",
"Bos-ProdApps1",
"Bos-ProdApps2",
"Bos-Eng&Dev"
],
"platform_category": [
"Internal Virtual",
"External Cloud",
"Internal Physical",
],
"last_refresh_time": {
"min": 1380557115513,
"max": 1380557115513
},
"platform_type": [
"VMWARE"
],
"control_types": [
"FULL"
]
}
Example: Getting the Infrastructure Group Filter Metadata for IBM
Request:
GET /infrastructure-group-filter-metadata/?platform=IBM
Example: Getting the Infrastructure Group Filter Metadata for Specific Groups
Request:
GET /infrastructure-group-filter-metadata/?infrastructure_group=Engineering1,Engineering2
Example: Modifying an Infrastructure Group to Auto-Close Based on Performance Risk
Request:
PUT /infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3
{
"allow_new_workloads": "DO_NOT_ALLOW_IF_RISK"
}
Example: Manually Closing an Infrastructure Group
Request:
PUT /infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3
{
"allow_new_workloads": "DO_NOT_ALLOW",
"availability_reason": "New VM workloads are blocked"
}