{"description":"This type defines the format of a performance report provided by the VNFM to the NFVO as a result of collecting performance information as part of a PM job.\n","type":"object","properties":{"entries":{"description":"List of performance information entries. Each performance report entry is for a given metric of a given object (i.e. VNF instance), but can include multiple collected values.\n","type":"array","items":{"type":"object","required":["objectType","objectInstanceId","performanceMetric","performanceValue"],"properties":{"objectType":{"description":"Defines the object type for which performance information is reported (i.e. VNF type). The string value shall be set to the vnfdId of the VNF instance to which the performance information relates.\n","type":"string"},"objectInstanceId":{"description":"An identifier with the intention of being globally unique.\n","type":"string"},"performanceMetric":{"description":"Name of the metric collected.\n","type":"string"},"performanceValues":{"description":"List of performance values with associated timestamp.\n","type":"array","items":{"type":"object","required":["timeStamp","performanceValue"],"properties":{"timeStamp":{"description":"Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n","type":"string","format":"date-time"},"value":{"description":"Value of the metric collected. The type of the \"value\" 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","type":"object"}}}}}}}}}
{"description":"This type represents a PM job.\n","type":"object","required":["id","objectInstanceIds","criteria"],"properties":{"id":{"description":"An identifier with the intention of being globally unique.\n","type":"string"},"objectInstanceIds":{"description":"Identifiers of the VNF instances for which performance information is collected.\n","type":"array","items":{"description":"An identifier with the intention of being globally unique.\n","type":"string"}},"criteria":{"description":"Criteria of the collection of performance information.\n","type":"object","required":["collectionPeriod","reportingPeriod"],"properties":{"performanceMetric":{"description":"This defines the types of performance metrics for the specified object instances, as specified in ETSI GS NFV-IFA 027). At least one of the two attributes (performance metric or group) shall be present.\n","type":"array","items":{"type":"string"}},"performanceMetricGroup":{"description":"Group of performance metrics. A metric group is a pre-defined list of metrics, known to the producer that it can decompose to individual metrics. At least one of the two attributes (performance metric or group) shall be present.\n","type":"array","items":{"type":"string"}},"collectionPeriod":{"description":"Specifies the periodicity at which the producer will collect performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together.\n","type":"integer"},"reportingPeriod":{"description":"Specifies the periodicity at which the producer will report to the consumer. about performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together.\n","type":"integer"},"reportingBoundary":{"description":"Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n","type":"string","format":"date-time"}}},"reports":{"description":"Information about available reports collected by this PM job.\n","type":"object","required":["href","readyTime","_links"],"properties":{"href":{"description":"The Uri where the report can be obtained.\n","type":"string","format":"url"},"readyTime":{"description":"Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n","type":"string","format":"date-time"},"expiryTime":{"description":"Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n","type":"string","format":"date-time"},"fileSize":{"description":"The size of the report file in bytes, if known.\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"}}},"objects":{"description":"Links to resources representing the VNF instances for which performance information is collected. Shall be present if the VNF instance information is accessible as a resource.\n","type":"array","items":{"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"}}}}}}}}}}
{"type":"array","items":{"description":"This type represents a subscription.\n","type":"object","required":["id","callbackUri","_links"],"properties":{"id":{"description":"An identifier with the intention of being globally unique.\n","type":"string"},"filter":{"description":"This type represents a filter that can be used to subscribe for notifications related to performance management events.\n","type":"object","properties":{"vnfInstanceSubscriptionFilter":{"description":"This type represents subscription filter criteria to match VNF instances.\n","type":"object","properties":{"vnfdIds":{"description":"If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"description":"An identifier with the intention of being globally unique.\n","type":"string"}},"vnfProductsFromProviders":{"description":"If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"type":"object","required":["vnfProvider"],"properties":{"vnfProvider":{"description":"Name of the VNF provider to match.\n","type":"string"},"vnfProducts":{"description":"If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n","type":"array","items":{"type":"object","required":["vnfProductName"],"properties":{"vnfProductName":{"description":"Name of the VNF product to match.\n","type":"string"},"versions":{"description":"If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n","type":"array","items":{"type":"object","required":["vnfSoftwareVersion"],"properties":{"vnfSoftwareVersion":{"description":"A version.\n","type":"string"},"vnfdVersions":{"description":"If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n","type":"array","items":{"description":"A version.\n","type":"string"}}}}}}}}}}},"vnfInstanceIds":{"description":"If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"description":"An identifier with the intention of being globally unique.\n","type":"string"}},"vnfInstanceNames":{"description":"If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"type":"string"}}}},"notificationTypes":{"description":"Match particular notification types. Permitted values: * ThresholdCrossedNotification * PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n","type":"string","enum":["ThresholdCrossedNotification","PerformanceInformationAvailableNotification"]}}},"callbackUri":{"description":"The URI of the endpoint to send the notification to.\n","type":"string","format":"url"},"_links":{"description":"Links to resources related to 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"}}}}}}}}
{"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"}}}
{"type":"array","items":{"description":"This type represents a subscription.\n","type":"object","required":["id","callbackUri","_links"],"properties":{"id":{"description":"An identifier with the intention of being globally unique.\n","type":"string"},"filter":{"description":"This type represents a filter that can be used to subscribe for notifications related to performance management events.\n","type":"object","properties":{"vnfInstanceSubscriptionFilter":{"description":"This type represents subscription filter criteria to match VNF instances.\n","type":"object","properties":{"vnfdIds":{"description":"If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"description":"An identifier with the intention of being globally unique.\n","type":"string"}},"vnfProductsFromProviders":{"description":"If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"type":"object","required":["vnfProvider"],"properties":{"vnfProvider":{"description":"Name of the VNF provider to match.\n","type":"string"},"vnfProducts":{"description":"If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n","type":"array","items":{"type":"object","required":["vnfProductName"],"properties":{"vnfProductName":{"description":"Name of the VNF product to match.\n","type":"string"},"versions":{"description":"If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n","type":"array","items":{"type":"object","required":["vnfSoftwareVersion"],"properties":{"vnfSoftwareVersion":{"description":"A version.\n","type":"string"},"vnfdVersions":{"description":"If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n","type":"array","items":{"description":"A version.\n","type":"string"}}}}}}}}}}},"vnfInstanceIds":{"description":"If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"description":"An identifier with the intention of being globally unique.\n","type":"string"}},"vnfInstanceNames":{"description":"If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n","type":"array","items":{"type":"string"}}}},"notificationTypes":{"description":"Match particular notification types. Permitted values: * ThresholdCrossedNotification * PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n","type":"string","enum":["ThresholdCrossedNotification","PerformanceInformationAvailableNotification"]}}},"callbackUri":{"description":"The URI of the endpoint to send the notification to.\n","type":"string","format":"url"},"_links":{"description":"Links to resources related to 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"}}}}}}}}
{"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"}}}}}}