Commit a8c8cdc1 authored by moscatelli's avatar moscatelli
Browse files

SOL002: VNF Lifecycle mgmt notification interface data types consolidation

parent c3f1cf98
Pipeline #899 passed with stage
in 0 seconds
...@@ -34,172 +34,49 @@ produces: ...@@ -34,172 +34,49 @@ produces:
paths: paths:
############################################################################### ###############################################################################
# Notification endpoint VnfLcmOperationOccurrenceNotification # # Notification endpoint #
############################################################################### ###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': '/URI-is-provided-by-the-client-when-creating-the-subscription':
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
post: post:
description: > description: >
Notify Notify
The POST method delivers a notification from the server to the client. The POST method delivers a notification from the server to the client.
parameters: parameters:
- name: VnfLcmOperationOccurrenceNotification - name: VnfLcmOperationOccurrenceNotification
description: A notification about on-boarding of a VNF package. description: A notification about on-boarding of a VNF package.
in: body in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification"
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false required: false
type: string schema:
- name: Content-Type $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification"
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
204:
description: >
No Content
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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
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 VnfIdentifierCreationNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification':
post:
description: >
Notify
The POST method delivers a notification from the server to the client.
parameters:
- name: VnfIdentifierCreationNotification - name: VnfIdentifierCreationNotification
description: > description: >
A notification about the creation of a VNF identifier and the A notification about the creation of a VNF identifier and the
related VNF instance resource. related VNF instance resource.
in: body in: body
required: true required: false
schema: schema:
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierCreationNotification" $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierCreationNotification"
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
204:
description: >
No Content
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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
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 VnfIdentifierDeletionNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification':
post:
description: >
Notify
The POST method delivers a notification from the server to the client.
parameters:
- name: VnfIdentifierDeletionNotification - name: VnfIdentifierDeletionNotification
description: > description: >
A notification about the deletion of a VNF identifier and the A notification about the deletion of a VNF identifier and the
related VNF instance resource. related VNF instance resource.
in: body in: body
required: true required: false
schema: schema:
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification" $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification"
- name: Authorization - name: Authorization
...@@ -216,12 +93,6 @@ paths: ...@@ -216,12 +93,6 @@ paths:
in: header in: header
required: true required: true
type: string type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses: responses:
204: 204:
description: > description: >
......
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
VnfLcmOperationOccurrenceNotification:
description: >
This type represents a VNF lifecycle management operation occurrence
notification, which informs the receiver of changes in the VNF
lifecycle caused by a VNF LCM operation occurrence. The support of the
notification is mandatory.
This notification shall be triggered by the VNFM when there is a change
in the VNF lifecycle caused by a VNF LCM operation occurrence,
including:
* Instantiation of the VNF
* Scaling of the VNF instance (including auto-scaling)
* Healing of the VNF instance (including auto-healing)
* Change of the state of the VNF instance (i.e. Operate VNF)
* Change of the deployment flavour of the VNF instance
* Change of the external connectivity of the VNF instance
* Termination of the VNF instance
* Modification of VNF instance information and/or VNF configurable
properties through the "PATCH" method on the "Individual VNF instance"
resource.
If this is the initial notification about the start of a VNF LCM
operation occurrence, it is assumed that the notification is sent by the
VNFM before any action (including sending the grant request) is taken as
part of the LCM operation. Due to possible race conditions, the "start"
notification, the grant request and the LCM operation acknowledgment can
arrive in any order at the NFVO, and the NFVO shall be able to handle
such a situation.
If this is a notification about a final or intermediate result state of
a VNF LCM operation occurrence, the notification shall be sent after
all related actions of the LCM operation that led to this state have
been executed. The new state shall be set in the VnfLcmOpOcc resource
before the notification about the state change is sent.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- notificationStatus
- operationState
- vnfInstanceId
- operation
- isAutomaticInvocation
- vnfLcmOpOccId
- _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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfLcmOperationOccurrenceNotification" for this notification type.
type: string
enum:
- VnfLcmOperationOccurrenceNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
notificationStatus:
description: >
Indicates whether this notification reports about the start of a
lifecycle operation or the result of a lifecycle operation.
Permitted values:
* START: Informs about the start of the VNF LCM operation
occurrence.
* RESULT: Informs about the final or intermediate result of the VNF
LCM operation occurrence.
type: string
enum:
- START
- RESULT
operationState:
description: >
The state of the VNF LCM operation occurrence.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType"
vnfInstanceId:
description: >
The identifier of the VNF instance affected.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
The lifecycle management operation.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM
(i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal).
Set to false otherwise.
type: boolean
vnfLcmOpOccId:
description: >
The identifier of the VNF lifecycle management operation occurrence
associated to the notification.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
affectedVnfcs:
description: >
Information about VNFC instances that were affected during the
lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any resource modification. Shall be
absent otherwise. This attribute contains information about the
cumulative changes to virtualised resources that were performed so
far by the VNF LCM operation occurrence and by any of the error
handling procedures for that operation occurrence.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc"
affectedVirtualLinks:
description: >
Information about VL instances that were affected during the
lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any resource modification. Shall be
absent otherwise. This attribute contains information about the
cumulative changes to virtualised resources that were performed so
far by the VNF LCM operation occurrence and by any of the error
handling procedures for that operation occurrence.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink"
affectedVirtualStorages:
description: >
Information about virtualised storage instances that were affected
during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any resource modification. Shall be
absent otherwise. This attribute contains information about the
cumulative changes to virtualised resources that were performed so
far by the VNF LCM operation occurrence and by any of the error
handling procedures for that operation occurrence.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage"
changedInfo:
description: >
Information about the changed VNF instance information, including
changed VNF configurable properties.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any changes to VNF instance information,
including VNF configurable properties.
Shall be absent otherwise.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications"
changedExtConnectivity:
description: >
Information about changed external connectivity, if this
notification represents the result of a lifecycle operation
occurrence. Shall be present if the "notificationStatus" is set to
"RESULT" and the "operation" is set to "CHANGE_EXT_CONN".
Shall be absent otherwise.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
error:
description: >
Details of the latest error, if one has occurred during executing
the LCM operation. Shall be present if the "operationState"
attribute is "FAILED_TEMP" or "FAILED", and shall be absent
otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
_links:
description: >
Links to resources related to this notification.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks"
...@@ -600,6 +600,180 @@ definitions: ...@@ -600,6 +600,180 @@ definitions:
URI of this resource. URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link" $ref: "SOL002SOL003_def.yaml#/definitions/Link"
VnfLcmOperationOccurrenceNotification:
description: >
This type represents a VNF lifecycle management operation occurrence
notification, which informs the receiver of changes in the VNF
lifecycle caused by a VNF LCM operation occurrence. The support of the
notification is mandatory.
This notification shall be triggered by the VNFM when there is a change
in the VNF lifecycle caused by a VNF LCM operation occurrence,
including:
* Instantiation of the VNF
* Scaling of the VNF instance (including auto-scaling)
* Healing of the VNF instance (including auto-healing)
* Change of the state of the VNF instance (i.e. Operate VNF)
* Change of the deployment flavour of the VNF instance
* Change of the external connectivity of the VNF instance
* Termination of the VNF instance
* Modification of VNF instance information and/or VNF configurable
properties through the "PATCH" method on the "Individual VNF instance"
resource.
If this is the initial notification about the start of a VNF LCM
operation occurrence, it is assumed that the notification is sent by the
VNFM before any action (including sending the grant request) is taken as
part of the LCM operation. Due to possible race conditions, the "start"
notification, the grant request and the LCM operation acknowledgment can
arrive in any order at the NFVO, and the NFVO shall be able to handle
such a situation.
If this is a notification about a final or intermediate result state of
a VNF LCM operation occurrence, the notification shall be sent after
all related actions of the LCM operation that led to this state have
been executed. The new state shall be set in the VnfLcmOpOcc resource
before the notification about the state change is sent.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- notificationStatus
- operationState
- vnfInstanceId
- operation
- isAutomaticInvocation
- vnfLcmOpOccId
- _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
"VnfLcmOperationOccurrenceNotification" for this notification type.
type: string
enum:
- VnfLcmOperationOccurrenceNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
notificationStatus:
description: >
Indicates whether this notification reports about the start of a
lifecycle operation or the result of a lifecycle operation.
Permitted values:
* START: Informs about the start of the VNF LCM operation
occurrence.
* RESULT: Informs about the final or intermediate result of the VNF
LCM operation occurrence.
type: string
enum:
- START
- RESULT
operationState:
description: >
The state of the VNF LCM operation occurrence.
$ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType"
vnfInstanceId:
description: >
The identifier of the VNF instance affected.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
The lifecycle management operation.
$ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM
(i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal).
Set to false otherwise.
type: boolean
vnfLcmOpOccId:
description: >
The identifier of the VNF lifecycle management operation occurrence
associated to the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
affectedVnfcs:
description: >
Information about VNFC instances that were affected during the
lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any resource modification. Shall be
absent otherwise. This attribute contains information about the
cumulative changes to virtualised resources that were performed so
far by the VNF LCM operation occurrence and by any of the error
handling procedures for that operation occurrence.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc"
affectedVirtualLinks:
description: >
Information about VL instances that were affected during the
lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any resource modification. Shall be
absent otherwise. This attribute contains information about the
cumulative changes to virtualised resources that were performed so
far by the VNF LCM operation occurrence and by any of the error
handling procedures for that operation occurrence.
type: array
items:
$ref: "#/definitions/AffectedVirtualLink"
affectedVirtualStorages:
description: >
Information about virtualised storage instances that were affected
during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any resource modification. Shall be
absent otherwise. This attribute contains information about the
cumulative changes to virtualised resources that were performed so
far by the VNF LCM operation occurrence and by any of the error
handling procedures for that operation occurrence.
type: array
items:
$ref: "#/definitions/AffectedVirtualStorage"
changedInfo:
description: >
Information about the changed VNF instance information, including
changed VNF configurable properties.
Shall be present if the "notificationStatus" is set to "RESULT" and
the operation has performed any changes to VNF instance information,
including VNF configurable properties.
Shall be absent otherwise.
$ref: "#/definitions/VnfInfoModifications"
changedExtConnectivity:
description: >
Information about changed external connectivity, if this
notification represents the result of a lifecycle operation
occurrence. Shall be present if the "notificationStatus" is set to
"RESULT" and the "operation" is set to "CHANGE_EXT_CONN".
Shall be absent otherwise.
type: array
items:
$ref: "#/definitions/ExtVirtualLinkInfo"
error:
description: >
Details of the latest error, if one has occurred during executing
the LCM operation. Shall be present if the "operationState"
attribute is "FAILED_TEMP" or "FAILED", and shall be absent
otherwise.
$ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails"
_links:
description: >
Links to resources related to this notification.
$ref: "#/definitions/LccnLinks"
LccnSubscriptionRequest: