{
  "type": "array",
  "items":
    {
	"description": "This type represents a threshold.\n",
	"type": "object",
	"required": [
		"id",
		"objectType",
		"objectInstanceId",
		"criteria",
		"callbackUri",
		"_links"
	],
	"properties": {
		"id": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"objectType": {
			"description": "Type of the measured object. The applicable measured object type for a measurement is defined in clause 7.2 of ETSI GS NFV-IFA 027.\n",
			"type": "string"
		},
		"objectInstanceId": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"subObjectInstanceIds": {
			"description": "Identifiers of the sub-object instances of the measured object instance associated with the threshold. May be present if a sub-object is defined in clause 6.2 of ETSI GS NFV-IFA 027 for the related measurement type. If this attribute is absent and a sub-object is defined in clause 6.2 of ETSI GS NFV-IFA 027 for the related measured object type, measurements will be taken for all sub-object instances of the measured object instance.\n",
			"type": "array",
			"items": {
				"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
				"type": "string"
			}
		},
		"criteria": {
			"description": "This type represents criteria that define a threshold.\n",
			"type": "object",
			"required": [
				"performanceMetric",
				"thresholdType"
			],
			"properties": {
				"performanceMetric": {
					"description": "Defines the performance metric associated with the threshold. Valid values are specified as \"Measurement Name\" values in clause 7.2 of ETSI GS NFV-IFA 027.\n",
					"type": "string"
				},
				"thresholdType": {
					"description": "Type of threshold. This attribute determines which other attributes are present in the data structure. Permitted values: * SIMPLE: Single-valued static threshold In the present document, simple thresholds are defined. The definition of additional threshold types is left for future specification.\n",
					"type": "string",
					"enum": [
						"SIMPLE"
					]
				},
				"simpleThresholdDetails": {
					"description": "Details of a simple threshold. Shall be present if thresholdType=\"SIMPLE\".\n",
					"type": "object",
					"required": [
						"thresholdValue",
						"hysteresis"
					],
					"properties": {
						"thresholdValue": {
							"description": "The threshold value. Shall be represented as a floating point number.\n",
							"type": "number",
							"format": "float"
						},
						"hysteresis": {
							"description": "The hysteresis of the threshold. Shall be represented as a non-negative floating point number. A notification with crossing direction \"UP\" will be generated if the measured value reaches or exceeds \"thresholdValue\" + \"hysteresis\". A notification with crossing direction \"DOWN\" will be generated if the measured value reaches or undercuts \"thresholdValue\" - \"hysteresis\". The hysteresis is defined to prevent storms of threshold crossing notifications. When processing a request to create a threshold, implementations should enforce a suitable minimum value for this attribute (e.g. override the value or reject the request).\n",
							"type": "number",
							"minimum": 0,
							"maximum": 1024,
							"format": "float"
						}
					}
				}
			}
		},
		"callbackUri": {
			"description": "String formatted according to IETF RFC 3986.\n",
			"type": "string"
		},
		"_links": {
			"description": "Links for this resource.\n",
			"type": "object",
			"required": [
				"self"
			],
			"properties": {
				"self": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
					"required": [
						"href"
					],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
							"type": "string"
						}
					}
				},
				"object": {
					"description": "This type represents a link to a resource using an absolute URI.\n",
					"type": "object",
					"required": [
						"href"
					],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
							"type": "string"
						}
					}
				}
			}
		}
	}
  }
}