Commit 0338b777 authored by Gergely Csatari's avatar Gergely Csatari Committed by Michele Carignani
Browse files

VNF Performance Management interface



Change-Id: Ie44a72a9e9ded5acf6014dcf8018224149bb7e3c
Signed-off-by: Gergely Csatari's avatarGergely Csatari <gergely.csatari@nokia.com>
parent c1d1ce0c
......@@ -322,63 +322,63 @@ definitions:
properties:
self:
description: URI of this resource.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
indicators:
description: Indicators related to this VNF instance, if applicable.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
instantiate:
description: >
Link to the "instantiate" task resource, if the related operation
is possible based on the current status of this VNF instance
resource (i.e. VNF instance in NOT_INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
terminate:
description: >
Link to the "terminate" task resource, if the related operation
is possible based on the current status of this VNF instance
resource (i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
scale:
description: >
Link to the "scale" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource (i.e. VNF instance
is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
scaleToLevel:
description: >
Link to the "scale_to_level" task resource, if the related
operation is supported for this VNF instance, and is possible
based on the current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
changeFlavour:
description: >
Link to the "change_flavour" task resource, if the related
operation is supported for this VNF instance, and is possible
based on the current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
heal:
description: >
Link to the "heal" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
operate:
description: >
Link to the "operate" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
changeExtConn:
description: >
Link to the "change_ext_conn" task resource, if the related
operation is possible based on the current status of this VNF
instance resource (i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
MonitoringParameter:
type: object
......@@ -928,39 +928,39 @@ definitions:
self:
description: >
URI of this resource.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Link to the VNF instance that the operation applies to.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
grant:
description: >
Link to the grant for this operation, if one exists.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
cancel:
description: >
Link to the task resource that represents the "cancel" operation
for this VNF LCM operation occurrence, if cancelling is
currently allowed.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
retry:
description: >
Link to the task resource that represents the "retry" operation
for this VNF LCM operation occurrence, if retrying is currently
allowed.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
rollback:
description: >
Link to the task resource that represents the "rollback"
operation for this VNF LCM operation occurrence, if rolling back
is currently allowed.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
fail:
description: >
Link to the task resource that represents the "fail" operation
for this VNF LCM operation occurrence, if declaring as failed is
currently allowed.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
VnfLinkPort:
type: object
......
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
PerformanceReport:
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.
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.
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.
type: string
objectInstanceId:
description: >
The object instance for which the performance metric is
reported.
The object instances for this information element will be VNF
instances.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
performanceMetric:
description: >
Name of the metric collected.
type: string
performanceValue:
description: >
List of performance values with associated timestamp.
type: array
items:
type: object
required:
- timeStamp
- performanceValue
properties:
timeStamp:
description: >
Time stamp indicating when the data was collected.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
performanceValue:
description: >
Value of the metric collected.
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 an external measurement specification
outside the scope of the present document.
type: object
swagger: "2.0"
info:
version: "2.3.0"
title: SOL003 - VNF Lifecycle Management Notification interface
license:
name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
basePath: "/callback/v1"
schemes:
- https
consumes:
- "application/json"
produces:
- "application/json"
paths:
###############################################################################
# Notification endpoint PerformanceInformationAvailableNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification':
#SOL003 location: 6.4.9
post:
description: >
The POST method delivers a notification regarding a performance
management event from the server to the client.
parameters:
- name: PerformanceInformationAvailableNotification
description: >
Notification about performance information availability.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceInformationAvailableNotification"
responses:
204:
description: >
The notification was delivered successfully.
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.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
responses:
204:
description: >
The notification endpoint was tested successfully.
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.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint ThresholdCrossedNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-ThresholdCrossedNotification':
#SOL003 location: 6.4.9
post:
description: >
The POST method delivers a notification regarding a performance
management event from the server to the client.
parameters:
- name: ThresholdCrossedNotification
description: >
Notification about performance information availability.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdCrossedNotification"
responses:
204:
description: >
The notification was delivered successfully.
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.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
responses:
204:
description: >
The notification endpoint was tested successfully.
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.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
......@@ -378,17 +378,17 @@ definitions:
description: >
Link to the resource representing the VNF instance to which the
notified change applies.
$ref: "#/definitions/Link"
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
subscription:
description: >
Link to the related subscription.
$ref: "#/definitions/Link"
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
vnfLcmOpOcc:
description: >
Link to the VNF lifecycle management operation occurrence that this
notification is related to. Shall be present if there is a related
lifecycle operation occurrence.
$ref: "#/definitions/Link"
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
LccnSubscription:
description: >
......@@ -453,7 +453,7 @@ definitions:
in clause 4.5.3.4.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "#/definitions/SubscriptionAuthentication"
$ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
LcmOperationStateType:
description: >
......@@ -516,7 +516,7 @@ definitions:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "#/definitions/VnfInstanceSubscriptionFilter"
$ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
......@@ -553,19 +553,6 @@ definitions:
items:
$ref: "#/definitions/LcmOperationStateType"
Link:
description: >
This type represents a link to a resource.
type: object
required:
- href
properties:
href:
description: >
URI of the referenced resource.
type: string
format: url
ResourceHandle:
required:
- vimConnectionId
......@@ -703,80 +690,6 @@ definitions:
A Version.
type: string
SubscriptionAuthentication:
type: object
required:
- authType
properties:
authType:
description: >
Defines the type of Authentication / Authorization to use when
sending a notification.
Permitted values:
* BASIC: In every POST request that sends a notification, use
HTTP Basic authentication with the client credentials.
* OAUTH2_CLIENT_CREDENTIALS: In every POST request that sends a
notification, use an OAuth 2.0 Bearer token, obtained using the
client credentials grant type.
type: string
enum:
- BASIC
- OAUTH2_CLIENT_CREDENTIALS
paramsBasic:
description: >
Parameters for authentication/authorization using BASIC.
Shall be present if authType is "BASIC" and the contained
information has not been provisioned out of band.
Shall be absent otherwise.
type: object
properties:
userName:
description: >
Username to be used in HTTP Basic authentication. Shall be
present if it has not been provisioned out of band.
type: string
password:
description: >
Password to be used in HTTP Basic authentication. Shall be
present if it has not been provisioned out of band.
type: string
paramsOauth2ClientCredentials:
description: >
Parameters for authentication/authorization using
OAUTH2_CLIENT_CREDENTIALS.
Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the
contained information has not been provisioned out of band.
Shall be absent otherwise.
type: object
properties:
clientId:
description: >
Client identifier to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band.
The clientId and clientPassword passed in a subscription shall
not be the same as the clientId and clientPassword that are used
to obtain authorization for API requests. Client credentials may
differ between subscriptions. The value of clientPassword should
be generated by a random process.
type: string
clientPassword:
description: >
Client password to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band.
The clientId and clientPassword passed in a subscription shall
not be the same as the clientId and clientPassword that are used
to obtain authorization for API requests. Client credentials may
differ between subscriptions. The value of clientPassword should
be generated by a random process.
type: string
tokenEndpoint:
description: >
The token endpoint from which the access token can be obtained.
Shall be present if it has not been provisioned out of band.
$ref: "#/definitions/Version"
VimConnectionInfo:
type: object
required:
......
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
CreateThresholdRequest:
description: >
This type represents a request to create a threshold.
type: object
required:
- objectInstanceId
- criteria
properties:
objectInstanceId:
description: >
Identifier of the VNF instance associated with this threshold.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
criteria:
description: >
Criteria that define this threshold.
$ref: "#/definitions/ThresholdCriteria"
CreatePmJobRequest:
description: >
This type represents a request to create a PM job.
type: object
required:
- criteria
properties:
objectInstanceIds:
description: >
Identifiers of the VNF instances for which performance information
is requested to be collected.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
criteria:
description: >
Criteria of the collection of performance information.
$ref: "#/definitions/PmJobCriteria"
CrossingDirectionType:
type: string
enum:
- UP
- DOWN
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is
available.
The timing of sending this notification is determined by the capability
of the producing entity to evaluate the threshold crossing condition.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- objectInstanceId
- _links
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: "SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"PerformanceInformationAvailableNotification" for this notification
type.
type: string
enum:
- PerformanceInformationAvailableNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
objectInstanceId:
description: >
Identifier that identifies a VNF instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"