From a8c8cdc1b15c8904c6ffb2d281c51e4d7c29ae57 Mon Sep 17 00:00:00 2001 From: moscatelli Date: Wed, 8 May 2019 17:24:39 +0200 Subject: [PATCH] SOL002: VNF Lifecycle mgmt notification interface data types consolidation --- .../VNFLifecycleManagementNotification.yaml | 169 ++--------------- ...NFLifecycleManagementNotification_def.yaml | 177 ------------------ ...OL002SOL003VNFLifecycleManagement_def.yaml | 174 +++++++++++++++++ 3 files changed, 194 insertions(+), 326 deletions(-) delete mode 100644 src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index e33b99b3..cea4e038 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -34,172 +34,49 @@ produces: 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: description: > Notify - The POST method delivers a notification from the server to the client. parameters: - name: VnfLcmOperationOccurrenceNotification description: A notification about on-boarding of a VNF package. 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 - 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 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: + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" - name: VnfIdentifierCreationNotification description: > A notification about the creation of a VNF identifier and the related VNF instance resource. in: body - required: true + required: false schema: $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 description: > A notification about the deletion of a VNF identifier and the related VNF instance resource. in: body - required: true + required: false schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification" - name: Authorization @@ -216,12 +93,6 @@ paths: 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: > diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml deleted file mode 100644 index 8b148c66..00000000 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml +++ /dev/null @@ -1,177 +0,0 @@ -# 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" diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 8e682ed4..51f26768 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -600,6 +600,180 @@ definitions: URI of this resource. $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: description: > This type represents a subscription request related to notifications -- GitLab