@@ -17,7 +17,7 @@ VNF Performance Information Availability Notification
...Test title: VNF Performance Information Availability Notification
...Test objective: The objective is to test the dispatch of VNF Performance Information Availability Notification when new VNF performance information is available in the NFVO, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system.
...Pre-conditions: A VNF performance job is created, and a subscription for information availability notifications is available in the VNFM.
...Reference: Clause 6.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v3.6.1
...Reference: Clause 6.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v4.3.1
...Test objective: The objective is to test the dispatch of VNF Threshold Crossed Notification when a previously set VNF performance metric threshold is crossed, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system.
...Pre-conditions: A VNF performance job is created, and a threshold subscription is available in the VNFM.
...Reference: Clause 6.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v3.6.1
...Reference: Clause 6.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v4.3.1
"description":"Identifiers of the sub-object instances of the measured object instance for which the measurements have been taken. Shall be present if the related PM job has been set up to measure only a subset of all sub-object instances of the measured object instance and a sub-object is defined in clause\n 6.2 of ETSI GS NFV-IFA 027 for the related measured object type.\nShall be absent otherwise.\n",
"description":"Identifiers of the sub-object instances of the measured object instance for which the measurements have been taken. Shall be present if the related PM job has been set up to measure only a subset of all sub-object instances of the measured object instance and a sub-object is defined in clause 6.2 of ETSI GS NFV-IFA 027 for the related measured object type.Shall be absent otherwise.\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",
{"description":"The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n","type":"object","required":["status","detail"],"properties":{"type":{"description":"A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n","type":"string","format":"URI"},"title":{"description":"A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n","type":"string"},"status":{"description":"The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.\n","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n","type":"string","format":"URI"}}}
No newline at end of file
{
"description":"The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
"type":"object",
"required":[
"status",
"detail"
],
"properties":{
"type":{
"description":"A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
"type":"string",
"format":"URI"
},
"title":{
"description":"A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
"type":"string"
},
"status":{
"description":"The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
"type":"integer"
},
"detail":{
"description":"A human-readable explanation specific to this occurrence of the problem.\n",
"type":"string"
},
"instance":{
"description":"A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
"description":"This type represents a notification that is sent when a threshold has been crossed. The notification shall be triggered by the VNFM when a threshold has been crossed.\n",
"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 \n producing entity to evaluate the threshold crossing condition.\n\nThe notification shall be triggered by the VNFM when a threshold has been crossed.\nNOTE:\tThe sub-object allows to structure the measured object, but is not to be confused \n with sub-counters which allow to structure the measurement.\n",
"type":"object",
"required":[
"id",
"notificationType",
"subscriptionId",
"timeStamp",
"thresholdId",
"crossingDirection",
"objectType",
"objectInstanceId",
"performanceMetric",
"performanceValue",
@@ -25,10 +25,6 @@
"ThresholdCrossedNotification"
]
},
"subscriptionId":{
"description":"An identifier with the intention of being globally unique.\n",
"type":"string"
},
"timeStamp":{
"description":"Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
"type":"string",
@@ -45,65 +41,60 @@
"DOWN"
]
},
"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"
},
"subObjectInstanceId":{
"description":"An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type":"string"
},
"performanceMetric":{
"description":"Performance metric associated with the threshold.\n",
"description":"Performance metric associated with the threshold. This attribute shall contain the related \"Measurement Name\" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.\n",
"type":"string"
},
"performanceValue":{
"description":"Value of the metric that resulted in threshold crossing. The type of the \"performanceValue\" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures / Objects)) is assumed to be defined in the external measurement specification (see ETSI GS NFV-IFA 027).\n",
"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 7.2 of ETSI GS NFV-IFA 027.\n",
"type":"object"
},
"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",
"required":[
"subscription",
"threshold"
],
"properties":{
"subscription":{
"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"
}
}
},
"objectInstance":{
"description":"This type represents a link to a resource.\n",
"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":"URI of the referenced resource.\n",
"type":"string",
"format":"url"
"description":"String formatted according to IETF RFC 3986.\n",
"type":"string"
}
}
},
"threshold":{
"description":"This type represents a link to a resource.\n",
"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":"URI of the referenced resource.\n",
"type":"string",
"format":"url"
"description":"String formatted according to IETF RFC 3986.\n",