{ "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" } } } } } } } }