Commit 550df6a0 authored by Samir Medjiah's avatar Samir Medjiah
Browse files

NFVMANO PM Mgmt Interfaces (first push)

parent 5bdb768a
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 V0.8.0
url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL009ed331_MANO_mgmt_stage_3/NFV-SOL009ed331v080.zip
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/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreatePMJobRequest"
responses:
"201":
$ref: "#/components/responses/pm_jobs.post.201"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
get:
description: >
The client can use this method to retrieve information about PM jobs.
parameters:
- $ref: "#/components/parameters/filter.PmJob"
- $ref: "#/components/parameters/all_fields"
- $ref: "#/components/parameters/fields"
- $ref: "#/components/parameters/exclude_fields"
- $ref: "#/components/parameters/exclude_default.PmJob"
- $ref: "#/components/parameters/nextpage_opaque_marker"
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/pm_jobs.get.200"
"400":
$ref: "#/components/responses/pm_jobs.get.400"
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
/pm_jobs/{pmJobId}:
get:
description: >
The client can use this method for reading an individual PM job.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/pm_job.get.200"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
delete:
description: >
This method terminates an individual PM job.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"204":
$ref: "#/components/responses/pm_job.delete.204"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
/pm_jobs/{pmJobId}/reports/{reportId}:
get:
description: >
The client can use this method for reading an individual
performance report.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/pm_job.report.get.200"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
/thresholds:
post:
description: >
The POST method can be used by the client to create a threshold.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateThesholdRequest"
responses:
"201":
$ref: "#/components/responses/thresholds.post.201"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
get:
description: >
The client can use this method to query information about thresholds.
parameters:
- $ref: "#/components/parameters/filter.Threshold"
- $ref: "#/components/parameters/nextpage_opaque_marker"
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/thresholds.get.200"
"400":
$ref: "#/components/responses/thresholds.get.400"
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
/thresholds/{thresholdId}:
get:
description: >
The client can use this method for reading an individual threshold
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/threshold.get.200"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
delete:
description: >
This method allows to delete a threshold.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"204":
$ref: "#/components/responses/threshold.delete.204"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
/subscriptions:
post:
description: >
The POST method creates a new subscription.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateSubscriptionRequest"
responses:
"201":
$ref: "#/components/responses/subscriptions.post.201"
"303":
$ref: "#/components/responses/subscriptions.post.303"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
get:
description: >
The client can use this method to query the list of active subscriptions
to performance management notifications subscribed by the client.
parameters:
- $ref: "#/components/parameters/filter.PmSubscription"
- $ref: "#/components/parameters/nextpage_opaque_marker"
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/subscriptions.get.200"
"400":
$ref: "#/components/responses/subscriptions.get.400"
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
/subscriptions/{subscriptionId}:
get:
description: >
The client can use this method for reading an individual subscription
about performance management notifications subscribed by the client.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/subscription.get.200"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
delete:
description: >
This method terminates an individual subscription.
parameters:
- $ref: "#/components/parameters/Version"
- $ref: "#/components/parameters/Accept"
- $ref: "#/components/parameters/Authorization"
responses:
"204":
$ref: "#/components/responses/subscription.delete.204"
"400":
$ref: ../responses/SOL009_resp.yaml#/responses/400
"401":
$ref: ../responses/SOL009_resp.yaml#/responses/401
"403":
$ref: ../responses/SOL009_resp.yaml#/responses/403
"404":
$ref: ../responses/SOL009_resp.yaml#/responses/404
"405":
$ref: ../responses/SOL009_resp.yaml#/responses/405
"406":
$ref: ../responses/SOL009_resp.yaml#/responses/406
"422":
$ref: ../responses/SOL009_resp.yaml#/responses/422
"500":
$ref: ../responses/SOL009_resp.yaml#/responses/500
"503":
$ref: ../responses/SOL009_resp.yaml#/responses/503
"504":
$ref: ../responses/SOL009_resp.yaml#/responses/504
components:
schemas:
PmSubscriptionRequest:
description: >
This type represents a subscription request.
type: object
properties:
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular notification
is sent to the subscriber if the filter matches, or if there is no filter.
$ref: "#/components/schemas/PmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "#/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/schemas/SubscriptionAuthentication"
required:
- callbackUri
PmSubscription:
description: >
This type represents a subscription.
type: object
properties:
id:
description: >
Identifier that identifies the subscription
$ref: "#/components/schemas/Identifier"
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular notification
is sent to the subscriber if the filter matches, or if there is no filter.
$ref: "#/components/schemas/PmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
type: object
properties:
links:
description: >
Links to resources related to this resource.
$ref: "#/components/schemas/Uri"
self:
description: >
URI of this resource.
$ref: "#/components/schemas/Link"
required:
- links
- self
required:
- id
- callbackUri
ThresholdCrossedNotification:
description: >
This type represents a notification that is sent when a threshold has been crossed.
NOTE: The timing of sending this notification is determined by the capability of
the producing entity to evaluate the threshold crossing condition.
The notification shall be triggered by the NFV-MANO functional entity when
a threshold has been crossed.
type: object
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple times due
to multiple subscriptions, the "id" attribute of all these notifications shall
have the same value.
$ref: "#/components/schemas/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"ThresholdCrossedNotification" for this notification type.
$ref: "#/components/schemas/String"
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "#/components/schemas/Identifier"
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "#/components/schemas/DateTime"
thresholdId:
description: >
Identifier of the threshold which has been crossed.
$ref: "#/components/schemas/Identifier"
crossingDirection:
description: >
An indication of whether the threshold was crossed in upward or downward direction.
$ref: "#/components/schemas/CrossingDirectionType"
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.
$ref: "#/components/schemas/String"
objectInstanceId:
description: >
Identifier of the measured object instance. 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/schemas/Identifier"
subObjectInstanceId:
description: >
Identifier of the sub-object of the measured object to which the measurement
applies. Shall be present if this is required in clause 8.2 of ETSI GS NFV-IFA 031
for the related measured object type. Shall be absent otherwise.
$ref: "#/components/schemas/IdentifierInManoEntity"
performanceMetric:
description: >
Performance metric associated with the threshold.
This attribute shall contain the related "Measurement Name" value as defined
in clause 8.4 of ETSI GS NFV-IFA 031
$ref: "#/components/schemas/String"
performanceValue:
description: >
Value of the metric that resulted in threshold crossing.
The type of this attribute shall correspond to the related "Measurement Unit"