{
	"type": "object",
	"description": "This type defines the format of the NFVI capacity information. The type shall comply with the provisions defined\nin Table 10.5.2.4-1.\n",
	"required": [
		"id",
		"vimId",
		"capacityInfoPerZone"
	],
	"properties": {
		"id": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"vimId": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"capacityInfoPerZone": {
			"description": "Capacity information on a per resource zone basis under control by the associated VIM.\n",
			"type": "array",
			"items": {
				"type": "object",
				"description": "This type defines the format of the NFVI capacity information on a per resource zone basis.\nThe type shall comply with the provisions defined in table 10.5.2.5-1.\n",
				"required": [
					"capacityMeasurements"
				],
				"properties": {
					"resourceZoneId": {
						"description": "An identifier with the intention of being globally unique.\n",
						"type": "string"
					},
					"capacityMeasurements": {
						"description": "Capacity measurement on a per resource type basis.\n",
						"type": "array",
						"items": {
							"type": "object",
							"description": "This type defines the format of the NFVI capacity information on a per resource type basis.\nThe type shall comply with the provisions defined in table 10.5.2.6-1.\n",
							"required": [
								"resourceType",
								"capacityMeasurementName",
								"totalCapacity",
								"allocatedCapacity",
								"availableCapacity"
							],
							"properties": {
								"resourceType": {
									"type": "string",
									"description": "The enumeration NfviCapacityResourceTypeEnumeration shall comply with the provisions in table 10.5.4.3-1.\n* VR_COMPUTE: For virtualised compute resource.\n* VR_NETWORK: For virtualised network resource.\n* VR_STORAGE: For virtualised storage resource.\n* HOST_COMPUTE: For host compute resource.\n",
									"enum": [
										"VR_COMPUTE",
										"VR_NETWORK",
										"VR_STORAGE",
										"HOST_COMPUTE"
									]
								},
								"capacityMeasurementName": {
									"description": "Name of the capacity measurement. Different resource types can have different associated capacity measurements,\ntypically associated to different sub-types of the resource type.\nThe present document and referred documents do not specify the capacity measurements, thus the capacity\nmeasurement names are not specified in the present document version.\n",
									"type": "string"
								},
								"totalCapacity": {
									"description": "The total capacity.\n",
									"type": "object"
								},
								"allocatedCapacity": {
									"description": "The allocated/used capacity.\n",
									"type": "object"
								},
								"reservedCapacity": {
									"description": "The reserved capacity. Shall be present if the capacity measurement relates to a resource type and\n(and sub-type) that is reservable.\n",
									"type": "object"
								},
								"availableCapacity": {
									"description": "The available capacity.\n",
									"type": "object"
								}
							}
						}
					}
				}
			}
		},
		"totalCapacityInfo": {
			"type": "object",
			"description": "This type defines the format of the NFVI capacity information on a per resource type basis.\nThe type shall comply with the provisions defined in table 10.5.2.6-1.\n",
			"required": [
				"resourceType",
				"capacityMeasurementName",
				"totalCapacity",
				"allocatedCapacity",
				"availableCapacity"
			],
			"properties": {
				"resourceType": {
					"type": "string",
					"description": "The enumeration NfviCapacityResourceTypeEnumeration shall comply with the provisions in table 10.5.4.3-1.\n* VR_COMPUTE: For virtualised compute resource.\n* VR_NETWORK: For virtualised network resource.\n* VR_STORAGE: For virtualised storage resource.\n* HOST_COMPUTE: For host compute resource.\n",
					"enum": [
						"VR_COMPUTE",
						"VR_NETWORK",
						"VR_STORAGE",
						"HOST_COMPUTE"
					]
				},
				"capacityMeasurementName": {
					"description": "Name of the capacity measurement. Different resource types can have different associated capacity measurements,\ntypically associated to different sub-types of the resource type.\nThe present document and referred documents do not specify the capacity measurements, thus the capacity\nmeasurement names are not specified in the present document version.\n",
					"type": "string"
				},
				"totalCapacity": {
					"description": "The total capacity.\n",
					"type": "object"
				},
				"allocatedCapacity": {
					"description": "The allocated/used capacity.\n",
					"type": "object"
				},
				"reservedCapacity": {
					"description": "The reserved capacity. Shall be present if the capacity measurement relates to a resource type and\n(and sub-type) that is reservable.\n",
					"type": "object"
				},
				"availableCapacity": {
					"description": "The available capacity.\n",
					"type": "object"
				}
			}
		},
		"timeInterval": {
			"type": "object",
			"description": "This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1.\n",
			"required": [
				"aTime"
			],
			"properties": {
				"aTime": {
					"description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n",
					"format": "date-time"
				},
				"bTime": {
					"description": "Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339.\n",
					"format": "date-time"
				}
			}
		}
	}
}