{
  "description": "This type represents a notification that is sent when a threshold has been crossed.\nNOTE:\tThe timing of sending this notification is determined by the capability of the producing entity to evaluate the threshold crossing condition.\nThe notification shall be triggered by the NFV-MANO functional entity when a threshold has been crossed.\n",
  "type": "object",
  "required": [
    "id",
    "notificationType",
    "timeStamp",
    "thresholdId",
    "crossingDirection",
    "objectType",
    "objectInstanceId",
    "performanceMetric",
    "performanceValue",
    "_links"
  ],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "notificationType": {
      "description": "A string defined in IETF RFC 8259.\n",
      "type": "string"
    },
    "timeStamp": {
      "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
      "type": "string",
      "format": "date-time"
    },
    "thresholdId": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "crossingDirection": {
      "description": "CrossingDirectionType enumeration. Permited values:\n  - UP: The threshold was crossed in upward direction.\n  - DOWN : The threshold was crossed in downward direction.\n",
      "type": "string",
      "enum": [
        "UP",
        "DOWN"
      ]
    },
    "objectType": {
      "description": "A string defined in IETF RFC 8259.\n",
      "type": "string"
    },
    "objectInstanceId": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "subObjectInstanceId": {
      "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n",
      "type": "string"
    },
    "performanceMetric": {
      "description": "A string defined in IETF RFC 8259.\n",
      "type": "string"
    },
    "performanceValue": {
      "description": "Value of the metric that resulted in threshold crossing. The type of this attribute shall correspond to the related \"Measurement Unit\" as defined in clause 8.4 of ETSI GS NFV-IFA 031.\n"
    },
    "context": {
      "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
      "type": "object"
    },
    "_links": {
      "description": "Links to resources related to this notification.\n",
      "type": "object",
      "properties": {
        "objectInstance": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "threshold": {
          "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
          "type": "object",
          "required": [
            "href"
          ],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        }
      },
      "required": [
        "objectInstance"
      ]
    }
  }
}