{
  "type": "array",
  "items": {
    "description": "This type represents a threshold.\n",
    "type": "object",
    "required": [
      "id",
      "objectInstanceId",
      "criteria",
      "_links"
    ],
    "properties": {
      "id": {
        "description": "An identifier with the intention of being globally unique.\n",
        "type": "string"
      },
      "objectInstanceId": {
        "description": "An identifier with the intention of being 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, as specified in 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": "integer"
              },
              "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": "integer"
              }
            }
          }
        }
      },
      "_links": {
        "description": "Links for this resource.\n",
        "type": "object",
        "required": [
          "self"
        ],
        "properties": {
          "self": {
            "description": "This type represents a link to a resource.\n",
            "type": "object",
            "required": [
              "href"
            ],
            "properties": {
              "href": {
                "description": "URI of the referenced resource.\n",
                "type": "string",
                "format": "url"
              }
            }
          },
          "object": {
            "description": "Link to a resource representing the VNF instance for which performance information is collected. Shall be present if the VNF instance information is accessible as a resource.\n"
          }
        }
      }
    }
  }
}