openapi: 3.0.2 info: version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL009 - NFV-MANO Performance Management Interface description: > SOL009 - NFV-MANO Performance Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt contact: name: NFV-SOL WG externalDocs: description: ETSI GS NFV-SOL 009 V3.3.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf servers: - url: http://0.0.0.0/nfvmanopm/v1 description: > API HTTP Server - url: https://0.0.0.0/nfvmanopm/v1 description: > API HTTPS Server paths: /api_versions: $ref: ../endpoints/SOL009_endpoints.yaml#/endpoints/api_versions /pm_jobs: post: description: > Creates a PM job. This method shall follow the provisions specified in the tables 6.5.3.3.1-1 and 6.5.3.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" requestBody: $ref: "#/components/requestBodies/CreatePMJobRequest" responses: "201": $ref: "#/components/responses/pm_jobs.post.201" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 get: description: > The client can use this method to retrieve information about PM jobs. parameters: - $ref: "#/components/parameters/filter.PmJob" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_fields" - $ref: "#/components/parameters/exclude_default.PmJob" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "200": $ref: "#/components/responses/pm_jobs.get.200" "400": $ref: "#/components/responses/pm_jobs.get.400" "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 /pm_jobs/{pmJobId}: parameters: - $ref: "#/components/parameters/pmJobId" get: description: > The client can use this method for reading an individual PM job. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "200": $ref: "#/components/responses/pm_job.get.200" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 patch: description: > This method allows to modify an "individual PM job" resource. This method shall follow the provisions specified in the tables 6.5.4.3.4-1 and 6.5.4.3.4-2 for URI query parameters, request and response data structures, and response codes. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" requestBody: $ref: "#/components/requestBodies/PmJobModificationRequest" responses: "200": $ref: "#/components/responses/threshold.patch.200" "412": $ref: "#/components/responses/threshold.patch.412" "422": $ref: "#/components/responses/threshold.patch.422" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "409": $ref: ../components/SOL009_resp.yaml#/components/responses/409 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 delete: description: > This method terminates an individual PM job. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "204": $ref: "#/components/responses/pm_job.delete.204" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 /pm_jobs/{pmJobId}/reports/{reportId}: parameters: - $ref: "#/components/parameters/pmJobId" - $ref: "#/components/parameters/reportId" get: description: > The client can use this method for reading an individual performance report. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "200": $ref: "#/components/responses/pm_job.report.get.200" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 /thresholds: post: description: > The POST method can be used by the client to create a threshold. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" requestBody: $ref: "#/components/requestBodies/CreateThesholdRequest" responses: "201": $ref: "#/components/responses/thresholds.post.201" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 get: description: > The client can use this method to query information about thresholds. parameters: - $ref: "#/components/parameters/filter.Threshold" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "200": $ref: "#/components/responses/thresholds.get.200" "400": $ref: "#/components/responses/thresholds.get.400" "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 /thresholds/{thresholdId}: parameters: - $ref: "#/components/parameters/thresholdId" get: description: > The client can use this method for reading an individual threshold parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "200": $ref: "#/components/responses/threshold.get.200" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 patch: description: > This method allows to modify an "Individual threshold" resource. This method shall follow the provisions specified in the tables 6.5.7.3.4-1 and 6.5.7.3.4-2 for URI query parameters, request and response data structures, and response codes parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" requestBody: $ref: "#/components/requestBodies/ThresholdModificationRequest" responses: "200": $ref: "#/components/responses/threshold.patch.200" "412": $ref: "#/components/responses/threshold.patch.412" "422": $ref: "#/components/responses/threshold.patch.422" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "409": $ref: ../components/SOL009_resp.yaml#/components/responses/409 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 delete: description: > This method allows to delete a threshold. parameters: - $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" responses: "204": $ref: "#/components/responses/threshold.delete.204" "400": $ref: ../components/SOL009_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL009_resp.yaml#/components/responses/401 "403": $ref: ../components/SOL009_resp.yaml#/components/responses/403 "404": $ref: ../components/SOL009_resp.yaml#/components/responses/404 "405": $ref: ../components/SOL009_resp.yaml#/components/responses/405 "406": $ref: ../components/SOL009_resp.yaml#/components/responses/406 "422": $ref: ../components/SOL009_resp.yaml#/components/responses/422 "500": $ref: ../components/SOL009_resp.yaml#/components/responses/500 "503": $ref: ../components/SOL009_resp.yaml#/components/responses/503 "504": $ref: ../components/SOL009_resp.yaml#/components/responses/504 components: schemas: CreatePmJobRequest: description: > This type represents a request to create a PM job. type: object properties: objectType: description: > Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. type: string objectInstanceIds: description: > Identifiers of the measured object instance for which performance information is requested to be collected. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. If more than one identifier is provided, values shall all refer to measured object instances of the same type, for which the same criteria is then applicable. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" minItems: 1 subObjectInstanceIds: description: > Identifiers of the sub-object instances of the measured object instance for which performance information is requested to be collected. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is present, the cardinality of the "objectInstanceIds" attribute shall be 1. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, measurements will be taken for all sub-object instances of the measured object instance. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" criteria: description: > Criteria of the collection of performance information. $ref: "#/components/schemas/PmJobCriteria" callbackUri: description: > The URI of the endpoint to send the notification to. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" authentication: description: > Authentication parameters to configure the use of Authorization when sending notifications corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" required: - objectType - objectInstanceIds - criteria - callbackUri PmJob: description: > This type represents a PM job. type: object properties: id: description: > Identifier of this PM job. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" objectType: description: > Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. type: string objectInstanceIds: description: > Identifiers of the measured object instance for which performance information is collected. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" minItems: 1 subObjectInstanceIds: description: > Identifiers of the sub-object instances of the measured object instance for which performance information is requested to be collected. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is present, the cardinality of the "objectInstanceIds" attribute shall be 1. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, measurements will be taken for all sub-object instances of the measured object instance. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" criteria: description: > Criteria of the collection of performance information. $ref: "#/components/schemas/PmJobCriteria" callbackUri: description: > The URI of the endpoint to send the notification to. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" reports: description: > Information about available reports collected by this PM job. type: array items: type: object properties: href: description: > The Uri where the report can be obtained. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" readyTime: description: > The time when the report was made available. $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" expiryTime: description: > The time when the report will expire. $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" fileSize: description: > The size of the report file in bytes, if known. $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" required: - href - readyTime _links: description: > Links for this resource. type: object properties: self: description: > URI of this resource. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" objects: description: > Links to resources representing the measured object instances for which performance information is collected. Shall be present if the measured object instance information is accessible as a resource. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" required: - self required: - id - objectType - objectInstanceIds - criteria - _links - callbackUri CreateThresholdRequest : description: > This type represents a request to create a threshold. type: object properties: objectType: description: > Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. type: string objectInstanceId: description: > Identifier of the measured object instance associated with this threshold. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" subjObjectInstanceIds: description: > Identifiers of the sub-object instances of the measured object instance associated with this threshold. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, thresholds will be set for all sub-object instances of the measured object instance. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" criteria: description: > Criteria that define this threshold. $ref: "#/components/schemas/ThresholdCriteria" callbackUri: description: > The URI of the endpoint to send the notification to. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" authentication: description: > Authentication parameters to configure the use of Authorization when sending notifications corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" required: - objectType - objectInstanceId - criteria - callbackUri Threshold: description: > type: object properties: id: description: > Identifier of this threshold resource. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" objectType: description: Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. type: string objectInstanceId: description: > Identifier of the measured object instance associated with the threshold. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" subjObjectInstanceIds: description: > Identifiers of the sub-object instances of the measured object instance associated with this threshold. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, thresholds are set for all sub-object instances of the measured object instance. type: array items: $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" criteria: description: > Criteria that define this threshold. $ref: "#/components/schemas/ThresholdCriteria" callbackUri: description: > The URI of the endpoint to send the notification to. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" _links: description: > Links for this resource. type: object properties: self: description: > URI for this resource. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" object: description: > Link to a resource representing the measured object instance for which performance information is collected. Shall be present if the measured object instance information is accessible as a resource. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" required: - self required: - id - objectType - objectInstanceId - subjObjectInstanceIds - criteria - _links - callbackUri PerformanceReport: description: > This type defines the format of a performance report provided by the NFV-MANO functional entity to the API consumer as a result of collecting performance information as part of a PM job. 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. measured object instance) corresponding to the related measured object types, but can include multiple collected values. type: array items: type: object properties: objectType: description: > Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. type: string objectInstanceId: description: > The object instance (i.e. measured object instance) for which the performance metric is reported. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference" subObjectInstanceId: description: > Identifier of the sub-object instance of the measured object instance for which the performance metric is reported. Shall be present if this is required in clause 8.2 of ETSI GS NFV-IFA 031 [1] for the related measured object type. $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" performanceMetric: description: > Name of the metric collected. This attribute shall contain the related "Measurement Name" value as defined in clause 8.4 of ETSI GS NFV-IFA 031. type: string performanceValues: description: > List of performance values with associated timestamp. type: array items: type: object properties: timeStamp: description: > Time stamp indicating when the data was collected. $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" value: description: > Value of the metric collected. The type of this attribute shall correspond to the related "Measurement Unit" as defined in clause 8.4 of ETSI GS NFV-IFA 031. context: description: > Measurement context information related to the measured value. The set of applicable keys is defined per measurement in clause 8.4 of ETSI GS NFV-IFA 031. $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" required: - timeStamp - value minItems: 1 required: - objectType - objectInstanceId - performanceMetric - performanceValues minItems: 1 required: - entries PmJobModifications: description: > This type represents modifications to a PM job. type: object properties: callbackUri: description: > New value of the "callbackUri" attribute.The value "null" is not permitted. NOTE: At least one of the attributes defined in this type shall be present in request bodies. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" authentication: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to the rules of JSONMerge PATCH (see IETF RFC 7396). This attribute shall not be present in response bodies. NOTE: At least one of the attributes defined in this type shall be present in request bodies.. $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" ThresholdModifications: description: > This type represents modifications to a threshold. type: object properties: callbackUri: description: > New value of the "callbackUri" attribute.The value "null" is not permitted. NOTE: At least one of the attributes defined in this type shall be present in request bodies. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" authentication: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to the rules of JSONMerge PATCH (see IETF RFC 7396). This attribute shall not be present in response bodies. NOTE: At least one of the attributes defined in this type shall be present in request bodies.. $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" #---------- PmJobCriteria: description: > This type represents collection criteria for PM jobs. type: object properties: performanceMetric: description: > This defines the types of performance metrics for the specified measured object(s). This attribute’s value shall contain the related "Measurement Name" values as defined in clause 8.4 of ETSI GS NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present. 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. This attribute’s value shall contain the related "Measurement Group" values as defined in clause 8.4 of ETSI GS NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present. 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 API 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. In particular when choosing short collection and reporting periods, the number of PM jobs that can be supported depends on the capability of the producing entity. type: integer reportingPeriod: description: > Specifies the periodicity at which the producer will report to the API consumer about performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the API 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. In particular when choosing short collection and reporting periods, the number of PM jobs that can be supported depends on the capability of the producing entity. type: integer reportingBoundary: description: > Identifies a time boundary after which the reporting will stop. The boundary shall allow a single reporting as well as periodic reporting up to the boundary. $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" required: - collectionPeriod - reportingPeriod ThresholdCriteria: description: > This type represents criteria that define a threshold. type: object properties: performanceMetric: description: > Defines the performance metric associated with the threshold. This attribute’s value shall contain the related "Measurement Name" values as defined in clause 8.4 of ETSI GS NFV-IFA 031 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. type: string enum: - SIMPLE simpleThresholdDetails: description: > Details of a simple threshold. Shall be present if thresholdType="SIMPLE". type: object properties: thresholdValue: description: > The threshold value. Shall be represented as a floating point number. $ref: "../components/SOL009_schemas.yaml#/components/schemas/Number" 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). $ref: "../components/SOL009_schemas.yaml#/components/schemas/Number" required: - thresholdValue - hysteresis required: - performanceMetric - thresholdType #---------------- # common types to SOL009 #---------------- responses: pm_jobs.post.201: description: > 201 CREATED Shall be returned when the PM job has been created successfully. The response body shall contain a representation of the created "Individual PM job" resource, as defined in clause 6.6.2.7. The HTTP response shall include a "Location" HTTP header that points to the created "Individual PM job" resource. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "#/components/schemas/PmJob" pm_jobs.post.422: description: > 422 Unprocessable Entity Shall be returned upon the following error: The content type of the payload body is supported and the payload body of a request contains syntactically correct data but the data cannot be processed. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this resource, the response code 422 shall also be returned if the API producer has tested the Notification endpoint as described in clause 6.5.10.3.2 and the test has failed. In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information about the error. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" pm_jobs.get.200: description: > 200 OK Shall be returned when information about zero or more PM jobs has been queried successfully. The response body shall contain in an array the representations of zero or more PM jobs, as defined in clause 6.6.2.7. If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. If the NFV-MANO functional entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013 . headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string Link: description: > Reference to other resources. Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. schema: type: string minimum: 0 maximum: 1 content: application/json: schema: type: array items: $ref: "#/components/schemas/PmJob" pm_jobs.get.400: description: > 400 BAD REQUEST Shall be returned upon the following errors: - Invalid attribute-based filtering expression. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Invalid attribute selector. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Response too big. If the NFV-MANO functional entity supports alternative N°1 (error) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, this error response shall follow the provisions in clause 5.4.2.2 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" pm_job.get.200: description: > 200 OK Shall be returned when information about an individual PM job has been read successfully. The response body shall contain a representation of the "Individual PM job" resource, as defined in clause 6.6.2.7. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "#/components/schemas/PmJob" pm_job.patch.200: description: > 200 OK Shall be returned when the request has been processed successfully. The response body shall contain a data structure of type "PmJobModifications" headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "#/components/schemas/PmJobModifications" pm_job.patch.412: description: > 412 PRECONDITION FAILED Shall be returned upon the following error: A precondition given in an HTTP request header is not fulfilled. Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. The response body should contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" pm_job.patch.422: description: > 422 Unprocessable Entity Shall be returned upon the following error: The content type of the payload body is supported and the payload body of a request contains syntactically correct data but the data cannot be processed. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this resource, the response code 422 shall also be returned if the API producer has tested the Notification endpoint as described in clause 6.5.10.3.2 and the test has failed. In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information about the error. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" pm_job.delete.204: description: > 204 NO CONTENT Shall be returned when the PM job has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string pm_job.report.get.200: description: > 200 OK Shall be returned when information of an individual performance report has been read successfully. The response body shall contain a representation of the "Individual performance report" resource, as defined in clause 6.6.2.10. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "#/components/schemas/PerformanceReport" thresholds.post.201: description: > 201 CREATED Shall be returned when a threshold has been created successfully. The response body shall contain a representation of the created "Individual threshold" resource, as defined in clause 6.6.2.9. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created "Individual threshold" resource. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string Location: description: > The resource URI of the created "Individual change state operation occurence" resource. schema: type: string format: url minimum: 1 maximum: 1 content: application/json: schema: $ref: "#/components/schemas/Threshold" thresholds.post.422: description: > 422 Unprocessable Entity Shall be returned upon the following error: The content type of the payload body is supported and the payload body of a request contains syntactically correct data but the data cannot be processed. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this resource, the response code 422 shall also be returned if the API producer has tested the Notification endpoint as described in clause 6.5.10.3.2 and the test has failed. In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information about the error. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" thresholds.get.200: description: > 200 OK Shall be returned when information about zero or more thresholds has been queried successfully. The response body shall contain in an array the representations of zero or more thresholds, as defined in clause 6.6.2.9. If the "filter" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: type: array items: $ref: "#/components/schemas/Threshold" thresholds.get.400: description: > 400 BAD REQUEST Shall be returned upon the following errors: - Invalid attribute-based filtering expression. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. - Response too big. If the NFV-MANO functional entity supports alternative N°1 (error) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, this error response shall follow the provisions in clause 5.4.2.2 of ETSI GS NFV-SOL 013. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" threshold.get.200: description: > 200 OK Shall be returned when information about an individual threshold has been read successfully. The response body shall contain a representation of the threshold, as defined in clause 6.6.2.9. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "#/components/schemas/Threshold" threshold.patch.200: description: > 200 OK Shall be returned when the request has been processed successfully. The response body shall contain a data structure of type "ThresholdModifications" headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "#/components/schemas/ThresholdModifications" threshold.patch.412: description: > 412 PRECONDITION FAILED Shall be returned upon the following error: A precondition given in an HTTP request header is not fulfilled. Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. The response body should contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" threshold.patch.422: description: > 422 Unprocessable Entity Shall be returned upon the following error: The content type of the payload body is supported and the payload body of a request contains syntactically correct data but the data cannot be processed. The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the response body. Specifically in case of this resource, the response code 422 shall also be returned if the API producer has tested the Notification endpoint as described in clause 6.5.10.3.2 and the test has failed. In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information about the error. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string content: application/json: schema: $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" threshold.delete.204: description: > 204 NO CONTENT Shall be returned when the threshold has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. schema: type: string Version: description: > Version of the API used in the response. schema: type: string parameters: filter.PmJob : name: filter description: > Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support receiving this parameter as part of the URI query string. The API consumer may supply this parameter. All attribute names that appear in the PmJob and in data types referenced from it shall be supported by the NFV-MANO functional entity in the expression. in: query required: false schema: type: string filter.Threshold : name: filter description: > Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support receiving this parameter as part of the URI query string. The API consumer may supply this parameter. All attribute names that appear in the Threshold and in data types referenced from it shall be supported by the NFV-MANO functional entity in the expression. in: query required: false schema: type: string exclude_default.PmJob : name: exclude_default description: > Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity shall support this parameter. The following attributes shall be excluded from the PmJob structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - none in: query required: false schema: type: string pmJobId: name: pmJobId in: path description: >- Identifier of the PM Job required: true schema: $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' reportId: name: reportId in: path description: >- Identifier of the PM report required: true schema: $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' thresholdId: name: thresholdId in: path description: >- Identifier of the PM threshold required: true schema: $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier' requestBodies: CreatePMJobRequest: description: > PM job creation request. content: application/json: schema: $ref: "#/components/schemas/CreatePmJobRequest" required: true CreateThesholdRequest: description: > Request parameters to create a threshold. content: application/json: schema: $ref: "#/components/schemas/CreateThresholdRequest" required: true ThresholdModificationRequest: description: > Parameters for the threshold modification. The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. content: application/merge-patch+json: schema: $ref: "#/components/schemas/ThresholdModifications" required: true PmJobModificationRequest: description: > Parameters for the PM job modification. The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. content: application/merge-patch+json: schema: $ref: "#/components/schemas/PmJobModifications" required: true