From 32e01c123b042d6b0aaa4b688d0ec481637d1a41 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 23 Jan 2020 18:05:15 +0100 Subject: [PATCH 01/32] updated README - devel phase --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index f6e2219..98bf2b2 100644 --- a/Readme.md +++ b/Readme.md @@ -5,7 +5,7 @@ for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_ The APIs described in this repository are defined for the `Os-Ma-nfvo` reference point. -**IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.** +**IMPORTANT: These [OpenAPI](https://www.openapis.org/) specifications are in development phase. In case of discrepancies the published ETSI Group Specification takes precedence.** More information at [NFV Solutions wiki](https://nfvwiki.etsi.org/index.php?title=NFV_Solutions). -- GitLab From 4c47042970f5f5a394be55fdc9af756b203c9737 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 7 Feb 2020 12:57:49 +0100 Subject: [PATCH 02/32] solved bugs #182 #234 #235 --- .../NSDManagementNotification.yaml | 56 ------------------- .../SOL005NSLifecycleManagement_def.yaml | 5 +- 2 files changed, 3 insertions(+), 58 deletions(-) diff --git a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml index 1f7c0ed..d4a37ce 100644 --- a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml +++ b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml @@ -51,10 +51,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -122,10 +118,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, @@ -199,10 +191,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -270,10 +258,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, @@ -347,10 +331,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -418,10 +398,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, @@ -495,10 +471,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -566,10 +538,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, @@ -643,10 +611,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -714,10 +678,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, @@ -791,10 +751,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -862,10 +818,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, @@ -939,10 +891,6 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -1010,10 +958,6 @@ paths: get: summary: Test the notification endpoint description: > - This resource represents a notification endpoint. The server can use - this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index b6fc9ab..f324a2d 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -178,6 +178,7 @@ definitions: - nsdId - nsdInfoId - nsState + - _links properties: id: description: > @@ -3721,7 +3722,7 @@ definitions: required: - id - operationState - - stateEnteredTime + - statusEnteredTime - nsInstanceId - lcmOperationType - startTime @@ -3737,7 +3738,7 @@ definitions: description: > The state of the NS LCM operation. $ref: "#/definitions/NsLcmOperationStateType" - stateEnteredTime: + statusEnteredTime: description: > Date-time when the current state has been entered. type: string -- GitLab From 0a7088b9972fb4a21cc882a2c23d63f704d4edec Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:05:49 +0100 Subject: [PATCH 03/32] SOL005_002: API version updated in NSD Management and NS Performance Management interfaces --- src/SOL005/NSDManagement/NSDManagement.yaml | 6 +++--- .../NSDManagementNotification.yaml | 6 +++--- .../NSPerformanceManagement/NSPerformanceManagement.yaml | 6 +++--- .../NSPerformanceManagementNotification.yaml | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index a01994f..2ab7f64 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NSD Management Interface" description: > SOL005 - NSD Management Interface @@ -17,8 +17,8 @@ info: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /nsd/v1 diff --git a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml index d4a37ce..dff5e83 100644 --- a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml +++ b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL005 - NSD Management Notification interface description: > SOL005 - NSD Management Notification interface @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /callback/v1 diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index 7153881..4cc9f3c 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Performance Management Interface" description: > SOL005 - NS Performance Management Interface @@ -17,8 +17,8 @@ info: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /nspm/v1 diff --git a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml index 5f7ae0e..1e9b050 100644 --- a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Performance Management Notification interface" description: > SOL005 - NS Performance Management Notification interface @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /callback/v1 -- GitLab From d9857814528983a66181b4129e389af01b0c2fa4 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:26:47 +0100 Subject: [PATCH 04/32] SOL005_004: API version changed to v2 --- src/SOL005/NSDManagement/NSDManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 2ab7f64..aca133f 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -20,7 +20,7 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.7.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /nsd/v1 +basePath: /nsd/v2 schemes: - http -- GitLab From 70e905313335e9caa7c89f0204077b96e366fcae Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:32:17 +0100 Subject: [PATCH 05/32] SOL005_005: POST method description updated --- src/SOL005/NSDManagement/NSDManagement.yaml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index aca133f..f572268 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -90,14 +90,12 @@ paths: description: > 201 CREATED - An NS descriptor resource has been created - successfully, as a new NS descriptor resource. - The response body shall contain a representation - of the new NS descriptor resource, as defined in - clause 5.5.2.2. - The HTTP response shall include a "Location" - HTTP header that contains the resource URI of the - new NS descriptor resource. + Shall be returned when a new "Individual NS descriptor" resource + and the associated NS descriptor identifier has been created successfully. + The response body shall contain a representation of the created NS descriptor + resource, as defined in clause 5.5.2.2. + The HTTP response shall include a "Location" HTTP header that contains the + resource URI of the created NS descriptor resource. schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" headers: -- GitLab From 1b317b6813f82b0eb4351bff9b5391c29c8d8749 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:37:58 +0100 Subject: [PATCH 06/32] SOL005_006: GET method description updated --- src/SOL005/NSDManagement/NSDManagement.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index f572268..d2899ab 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -184,7 +184,9 @@ paths: The VNFM shall support this parameter. The following attributes shall be excluded from the NsdInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" - are provided: userDefinedData. + are provided: + - userDefinedData + - onboardingFailureDetails - name: nextpage_opaque_marker in: query description: > @@ -205,7 +207,8 @@ paths: description: > 200 OK - Information about zero or more NS descriptors. + Shall be returned when information about zero or + more NS descriptors has been queried successfully. The response body shall contain in an array the representations of zero or more NS descriptors, as defined in clause 5.5.2.2. -- GitLab From 038509b9fe4313157900b19175dbd43112f33682 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:38:21 +0100 Subject: [PATCH 07/32] SOL005_008: GET method description updated --- src/SOL005/NSDManagement/NSDManagement.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index d2899ab..c8c7853 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -309,7 +309,8 @@ paths: description: > 200 OK - Information about the individual NS descriptor. + Shall be returned when information about the individual + NS descriptor has been read successfully. The response body shall contain a representation of the individual NS descriptor, as defined in clause 5.5.2.2. -- GitLab From 73d4988a6c44aba2c950578016b07528825468a2 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:57:58 +0100 Subject: [PATCH 08/32] SOL005_009: PATCH method description updated --- src/SOL005/NSDManagement/NSDManagement.yaml | 31 +++++++++++---------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index c8c7853..84c6d69 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -374,7 +374,8 @@ paths: schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" description: > - Parameters for the modification of an individual NS descriptor resource. + Parameters for the modification of an individual NS descriptor resource, as defined in clause 5.5.2.1. + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. - name: Content-Type description: > The MIME type of the body of the request. @@ -387,7 +388,7 @@ paths: description: > 200 OK - The operation has been completed successfully. + Shall be returned when the operation has been accepted and completed successfully. The response body shall contain attribute modifications for an 'Individual NS Descriptor' resource (see clause 5.5.2.6). headers: @@ -425,19 +426,19 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. - Typically, this is due to an operational state - mismatch, i.e. enable an already enabled or - disable an already disabled individual NS - descriptor resource, or the "nsdOnboardingState" - is not ONBOARDED. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. +# description: > +# 409 CONFLICT +# +# Error: The operation cannot be executed currently, +# due to a conflict with the state of the resource. +# Typically, this is due to an operational state +# mismatch, i.e. enable an already enabled or +# disable an already disabled individual NS +# descriptor resource, or the "nsdOnboardingState" +# is not ONBOARDED. +# The response body shall contain a ProblemDetails +# structure, in which the "detail" attribute shall convey +# more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" 412: $ref: "../responses/SOL005_resp.yaml#/responses/412" -- GitLab From ae22e569489ab5d67d7f78e035342b6accb93497 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 11:58:10 +0100 Subject: [PATCH 09/32] SOL005_010: DELETE method description updated --- src/SOL005/NSDManagement/NSDManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 84c6d69..4bade22 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -475,7 +475,7 @@ paths: description: > 204 NO CONTENT - The operation has completed successfully. + Shall be returned when the operation has completed successfully. The response body shall be empty. headers: WWW-Authenticate: -- GitLab From ca9e481f29035f97116b21f9e2476c314cd8e47d Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 15:53:53 +0100 Subject: [PATCH 10/32] SOL005_011->033: API resources updated --- src/SOL005/NSDManagement/NSDManagement.yaml | 1136 +++++++++++++++---- 1 file changed, 890 insertions(+), 246 deletions(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 4bade22..cd54177 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -475,7 +475,7 @@ paths: description: > 204 NO CONTENT - Shall be returned when the operation has completed successfully. + Shall be returned when the operation has completed successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -505,19 +505,19 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. - Typically, this is due to the fact the NS descriptor - resource is in the enabled operational state (i.e. - operationalState = ENABLED) or there are running - NS instances using the concerned individual NS - descriptor resource (i.e. usageState = IN_USE). - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. +# description: > +# 409 CONFLICT +# +# Error: The operation cannot be executed currently, +# due to a conflict with the state of the resource. +# Typically, this is due to the fact the NS descriptor +# resource is in the enabled operational state (i.e. +# operationalState = ENABLED) or there are running +# NS instances using the concerned individual NS +# descriptor resource (i.e. usageState = IN_USE). +# The response body shall contain a ProblemDetails +# structure, in which the "detail" attribute shall convey +# more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" @@ -527,7 +527,7 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" ############################################################################### - # NSD Content # + # NSD Archive Content # ############################################################################### '/ns_descriptors/{nsdInfoId}/nsd_content': #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4 @@ -553,17 +553,20 @@ paths: get: summary: Fetch the content of a NSD. description: > - The GET method fetches the content of the NSD. - The NSD can be implemented as a single file or as a collection of multiple files. If the NSD is implemented in the form - of multiple files, a ZIP file embedding these files shall be returned. If the NSD is implemented as a single file, either - that file or a ZIP file embedding that file shall be returned. - The selection of the format is controlled by the "Accept" HTTP header passed in the GET request: - • If the "Accept" header contains only "text/plain" and the NSD is implemented as a single file, the file shall be - returned; otherwise, an error message shall be returned. - • If the "Accept" header contains only "application/zip", the single file or the multiple files that make up the - NSD shall be returned embedded in a ZIP file. - • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the - format to return for a single-file NSD; for a multi-file NSD, a ZIP file shall be returned. + The GET method fetches the content of the NSD archive. + The NSD archive is implemented as a single zip file. + The content of the NSD archive is provided as onboarded, + i.e. depending on the security option used, the CSAR wrapped + in a ZIP archive together with an external signature is returned, + as defined in clause 5.1 of ETSI GS NFV-SOL 007. + + NOTE: Information about the applicable security option can be + obtained by evaluating the "archiveSecurityOption" + attribute in the "nsdInfo" structure. + + This method shall follow the provisions specified in the T + ables 5.4.4.3.2-1 and 5.4.4.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -579,27 +582,21 @@ paths: required: false type: string description: > - "The request may contain a "Range" HTTP header to obtain single - range of bytes from the NSD file. This can be used to continue an aborted - transmission.If the NFVO does not support range requests, the NFVO - shall ignore the 'Range" header, process the GET request, and return - the whole NSD file with a 200 OK response (rather than returning a 4xx - error status code)." + The request may contain a "Range" HTTP header to obtain single + range of bytes from the NSD archive. + This can be used to continue an aborted transmission. + + If the Range header is present in the request and the NFVO does + not support responding to range requests with a 206 response, + it shall return a 200 OK response instead as defined below. responses: 200: description: > 200 OK - Shall be returned when the content of the NSD has - been read successfully. - The payload body shall contain a copy of the file - representing the NSD or a ZIP file that contains the - file or multiple files representing the NSD, as - specified above. - The "Content-Type" HTTP header shall be set - according to the format of the returned file, i.e. to - "text/plain" for a YAML file or to "application/zip" for - a ZIP file. + Shall be returned when the content of the NSD has been read successfully. + The payload body shall contain a copy of the ZIP file that contains the NSD file structure. + The "Content-Type" HTTP header shall be set to "application/zip". headers: Content-Type: description: The MIME type of the body of the response. @@ -621,18 +618,18 @@ paths: maximum: 1 minimum: 1 206: - description: > - 206 PARTIAL CONTENT - - On success, if the NFVO supports range requests, - a single consecutive byte range from the content of - the NSD file is returned. - The response body shall contain the requested part - of the NSD file. - The "Content-Range" HTTP header shall be - provided according to IETF RFC 7233. - The "Content-Type" HTTP header shall be set as - defined above for the "200 OK" response. +# description: > +# 206 PARTIAL CONTENT +# +# On success, if the NFVO supports range requests, +# a single consecutive byte range from the content of +# the NSD file is returned. +# The response body shall contain the requested part +# of the NSD file. +# The "Content-Range" HTTP header shall be +# provided according to IETF RFC 7233. +# The "Content-Type" HTTP header shall be set as +# defined above for the "200 OK" response. $ref: "../responses/SOL005_resp.yaml#/responses/206" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" @@ -645,40 +642,40 @@ paths: 405: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: - description: > - 406 NOT ACCEPTABLE - - If the "Accept" header does not contain at least one - name of a content type for which the NFVO can - provide a representation of the NSD, the NFVO - shall respond with this response code. - The "ProblemDetails" structure may be included - with the "detail" attribute providing more information - about the error. +# description: > +# 406 NOT ACCEPTABLE +# +# If the "Accept" header does not contain at least one +# name of a content type for which the NFVO can +# provide a representation of the NSD, the NFVO +# shall respond with this response code. +# The "ProblemDetails" structure may be included +# with the "detail" attribute providing more information +# about the error. $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the resource. - Typically, this is due to the fact - "nsdOnboardingState" has a value different from - ONBOARDED. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. +# description: > +# 409 CONFLICT +# +# Shall be returned upon the following error: The +# operation cannot be executed currently, due to a +# conflict with the state of the resource. +# Typically, this is due to the fact +# "nsdOnboardingState" has a value different from +# ONBOARDED. +# The response body shall contain a ProblemDetails +# structure, in which the "detail" attribute shall convey +# more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" 416: - description: > - 416 RANGE NOT SATISFIABLE - - The byte range passed in the "Range" header did - not match any available byte range in the NSD file - (e.g. "access after end of file"). - The response body may contain a ProblemDetails - structure. +# description: > +# 416 RANGE NOT SATISFIABLE +# +# The byte range passed in the "Range" header did +# not match any available byte range in the NSD file +# (e.g. "access after end of file"). +# The response body may contain a ProblemDetails +# structure. $ref: "../responses/SOL005_resp.yaml#/responses/416" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" @@ -690,42 +687,33 @@ paths: put: summary: Upload the content of a NSD. description: > - The PUT method is used to upload the content of a NSD. - The NSD to be uploaded can be implemented as a single file or as a collection of multiple files, as defined in - clause 5.4.4.3.2. If the NSD is implemented in the form of multiple files, a ZIP file embedding these files shall be - uploaded. If the NSD is implemented as a single file, either that file or a ZIP file embedding that file shall be uploaded. - ETSI - 47 ETSI GS NFV-SOL 005 V2.6.1 (2019-04) - The "Content-Type" HTTP header in the PUT request shall be set accordingly based on the format selection of the - NSD: - • If the NSD to be uploaded is a text file, the "Content-Type" header is set to "text/plain". - • If the NSD to be uploaded is a zip file, the "Content-Type" header is set to "application/zip". + The PUT method is used to upload the content of an NSD archive. + The NSD to be uploaded is implemented as a single ZIP file as defined in clause 5.4.4.3.2. + The "Content-Type" HTTP header in the PUT request shall be set to "application/zip". + This method shall follow the provisions specified in the Tables 5.4.4.3.3-1 and + 5.4.4.3.3-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept + - name: Content-Type description: > - Content-Types that are acceptable for the response. - The payload body contains a copy of the file representing the NSD - or a ZIP file that contains the file or multiple files representing the NSD. + The payload body contains a ZIP file that represents the NSD archive, as specified above. + The request shall set the "Content-Type" HTTP header to "application/zip". in: header required: true type: string enum: - - text/plain - application/zip responses: 202: description: > 202 ACCEPTED - The NSD content has been accepted for uploading, - but the processing has not been completed. It is - expected to take some time for processing - (asynchronous mode). + Shall be returned when the NSD archive has been accepted for uploading, + but the processing has not been completed. It is expected to take some + time for processing (asynchronous mode). The response body shall be empty. - The client can track the uploading progress by - receiving the "NsdOnBoardingNotification" and - "NsdOnBoardingFailureNotification" from the NFVO - or by reading the status of the individual NS descriptor + The API consumer can track the uploading progress by receiving the + "NsdOnBoardingNotification" and "NsdOnBoardingFailureNotification" + from the NFVO or by reading the status of the individual NS descriptor resource using the GET method. headers: Content-Type: @@ -782,17 +770,275 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: + # description: > + # 409 CONFLICT + # + # Error: The operation cannot be executed currently, + # due to a conflict with the state of the resource. + # Typically, this is due to the fact that the + # NsdOnboardingState has a value other than + # CREATED. + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/responses/504" + + ############################################################################### + # NSD # + ############################################################################### + '/ns_descriptors/{nsdInfoId}/nsd': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4a + parameters: + - name: nsdInfoId + in: path + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + + get: + description: > + The GET method reads the content of the NSD within an NSD archive. + The NSD can be implemented as a single file or as a collection of + multiple files. If the NSD is implemented in the form of multiple files, + a ZIP file embedding these files shall be returned. If the NSD is implemented + as a single file, either that file or a ZIP file embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header passed in the GET request: + • If the "Accept" header contains only "text/plain" and the NSD is implemented as a single file, + the file shall be returned; otherwise, an error message shall be returned. + • If the "Accept" header contains only "application/zip", the single file or + the multiple files that make up the NSD shall be returned embedded in a ZIP file. + • If the "Accept" header contains both "text/plain" and "application/zip", it is up + to the NFVO to choose the format to return for a single-file NSD; for a multi-file NSD, + a ZIP file shall be returned. + The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 007 + where only the YAML files representing the NSD, and information necessary to navigate + the ZIP file and to identify the file that is the entry point for parsing the NSD and + (if requested) further security information are included. This means that the content + of the ZIP archive shall contain the following files from the NSD archive: + • TOSCA.meta (if available in the NSD archive); + • the main service template (either as referenced from TOSCA.meta or available as a + file with the extension ".yml" or ".yaml" from the root of the archive); + • every component of the NSD referenced (recursively) from the main service template; + • the related security information, if the "include_signatures" URI parameter is provided, as follows: + - the manifest file; + - the singleton certificate file in the root of the NSD archive (if available in the NSD archive); + - the signing certificates of the individual files included in the ZIP archive + (if available in the NSD archive); + - the signatures of the individual files (if available in the NSD archive). + This method shall follow the provisions specified in the Tables 5.4.4a.3.2-1 and 5.4.4a.3.2-2 for + URI query parameters, request and response data structures, and response codes. + parameters: + - name: include_signatures + in: query + required: false + type: string + description: > + If this parameter is provided, the NFVO shall include in the ZIP + file the security information as specified above. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + - name: Accept + in: header + required: true + type: string + enum: + - text/plain + - application/zip + description: > + The request shall contain the appropriate entries in the "Accept" + HTTP header as defined above. + responses: + 200: + description: > + 200 OK + + Shall be returned when the content of the NSD has been read successfully. + The payload body shall contain a copy of the file representing the NSD or + a ZIP file that contains the file or multiple files representing the NSD, + as specified above. + The "Content-Type" HTTP header shall be set according to the format of + the returned file. It shall be set to "text/plain" for a YAML file. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/responses/504" + + ############################################################################### + # NSD Archive Manifest # + ############################################################################### + '/ns_descriptors/{nsdInfoId}/manifest': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4b + parameters: + - name: nsdInfoId + description: > + Identifier of the individual NS descriptor. + This identifier can be retrieved from the resource referenced by + the "Location" HTTP header in the response to a POST request creating + a new NS descriptor resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + + get: + summary: Fetch the content of the manifest in an NSD archive. + description: > + The GET method reads the content of the manifest file within an NSD archive. + This method shall follow the provisions specified in the Tables 5.4.4b.3.2-1 + and 5.4.4b.3.2-2 for URI query parameters, request and response data structures, + and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: include_signatures + in: query + required: false + type: string description: > - 409 CONFLICT + If this parameter is provided, the NFVO shall return the manifest and + related security information (signature and certificate) either in a + single text file if the signature and certificate are included in the + manifest file, or in a zip file containing the manifest and the certificate + file, if this is provided as a separate file in the NSD archive. + If this parameter is not given, the NFVO shall provide only a copy of the + manifest file, as onboarded. If the security information is included in the + onboarded manifest, it shall also be included in the returned copy. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + responses: + 200: + description: > + 200 OK + + Shall be returned when the content of the manifest file has been read successfully. - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. - Typically, this is due to the fact that the - NsdOnboardingState has a value other than - CREATED. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. + If the "include_signatures" URI query parameter was absent in the request, or if the + manifest file has all security-related information embedded (i.e. there is no separate + certificate file), the payload body shall contain a copy of the manifest file of the + NSD archive, and the "Content-Type" HTTP header shall be set to "text/plain". + If the "include_signatures" URI query parameter was present in the related request and + the manifest file does not have all the security-related information embedded (i.e. there + is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip" + and the payload body shall contain a ZIP archive which includes: + - a copy of the manifest file of the NSD archive; + - a copy of the related individual certificate file. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 409: +# description: > +# 409 CONFLICT +# +# Shall be returned upon the following error: The +# operation cannot be executed currently, due to a +# conflict with the state of the resource. +# Typically, this is due to the fact +# "nsdOnboardingState" has a value different from +# ONBOARDED. +# The response body shall contain a ProblemDetails +# structure, in which the "detail" attribute shall convey +# more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" @@ -852,14 +1098,13 @@ paths: description: > 201 CREATED - A PNF descriptor resource has been created - successfully, as a new PNF descriptor resource. - The response body shall contain a representation of - the new PNF descriptor resource, as defined in - clause 5.5.2.5. - The HTTP response shall include a "Location" - HTTP header that contains the resource URI of the - new PNF descriptor resource. + Shall be returned when a new "Individual PNF descriptor" + resource and the associated PNF descriptor identifier + has been created successfully. + The response body shall contain a representation of the + created PNF descriptor resource, as defined in clause 5.5.2.5. + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created PNF descriptor resource. schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" headers: @@ -913,7 +1158,8 @@ paths: required: false type: string description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + Attribute-based filtering expression according to clause 5.2 + of ETSI GS NFV-SOL 013. The NFVO shall support receiving this filtering parameter as part of the URI query string. The OSS/BSS may supply this parameter. All attribute names that appear in the PnfdInfo and in data types @@ -923,55 +1169,57 @@ paths: required: false type: string description: > - Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. - The NFVO shall support this parameter. + Include all complex attributes in the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter. - name: fields in: query required: false type: string description: > - Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for - details. The NFVO should support this parameter. + Complex attributes to be included into the response. See clause 5.3 of + ETSI GS NFV-SOL 013 for details. + The NFVO should support this parameter. - name: exclude_fields in: query required: false type: string description: > - Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for - details. The NFVO should support this parameter. + Complex attributes to be excluded from the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. + The NFVO should support this parameter. - name: exclude_default in: query required: false type: string description: > - Indicates to exclude the following complex attributes from the response. See - clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter. - The following attributes shall be excluded from the PnfdInfo structure in the - response body if this parameter is provided, or none of the parameters + Indicates to exclude the following complex attributes from the response. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support + this parameter. + The following attributes shall be excluded from the PnfdInfo structure in + the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - userDefinedData. + - userDefinedData + - onboardingFailureDetails - name: nextpage_opaque_marker in: query type: string required: false description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource. + Marker to obtain the next page of a paged response. Shall be supported by + the NFVO if the NFVO supports alternative 2 (paging) according to clause + 5.4.2.1 of ETSI GS NFV SOL 013 for this resource. responses: 200: description: > 200 OK - Information about zero or more PNF descriptors. - The response body shall contain in an array the - representations of zero or more PNF descriptors, as - defined in clause 5.5.2.5. - If the NFVO 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. + Shall be returned when information about zero or more PNF descriptors has + been queried successfully. + The response body shall contain in an array the representations of zero or + more PNF descriptors, as defined in clause 5.5.2.5. + If the NFVO 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: Content-Type: description: The MIME type of the body of the response. @@ -1071,10 +1319,10 @@ paths: description: > 200 OK - Information about the individual PNFD descriptor. - The response body shall contain a representation of - the individual PNF descriptor, as defined in - clause 5.5.2.5. + Shall be returned when information about the individual PNFD + descriptor has been read successfully. + The response body shall contain a representation of the + individual PNF descriptor, as defined in clause 5.5.2.5. headers: Content-Type: description: The MIME type of the body of the response. @@ -1142,16 +1390,19 @@ paths: schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" description: > - Parameters for the modification of an individual PNF descriptor resource, as defined in clause 5.5.2.4. + Parameters for the modification of an individual + PNF descriptor resource, as defined in clause 5.5.2.4. + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. responses: 200: description: > 200 OK - The operation has been completed successfully. - The response body shall contain attribute - modifications for an 'Individual PNF Descriptor' - resource (see clause 5.5.2.4). + Shall be returned when the operation has been accepted + and completed successfully. + The response body shall contain attribute modifications + for an 'Individual PNF Descriptor' resource (see clause 5.5.2.4). schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" headers: @@ -1200,17 +1451,24 @@ paths: summary: Delete an individual PNF descriptor resource. description: > The DELETE method deletes an individual PNF descriptor resource. - An individual PNF descriptor resource can only be deleted when there is no NS instance using it or there is NSD - referencing it. - To delete all PNFD versions identified by a particular value of the "pnfdInvariantId" attribute, the procedure is to first - use the GET method with filter "pnfdInvariantId" towards the PNF descriptors resource to find all versions of the - PNFD. Then, the client uses the DELETE method described in this clause to delete each PNFD version individually. + An individual PNF descriptor resource can only be deleted when t + here is no NS instance using it or there is NSD referencing it. + To delete all PNFD versions identified by a particular value of + the "pnfdInvariantId" attribute, the procedure is to first use t + he GET method with filter "pnfdInvariantId" towards the PNF + descriptors resource to find all versions of the PNFD. Then, + he API consumer uses the DELETE method described in this clause + to delete each PNFD version individually. + This method shall follow the provisions specified in the Tables + 5.4.6.3.5-1 and 5.4.6.3.5-2 for URI query parameters, request + and response data structures, and response codes. responses: 204: description: > 204 NO CONTENT - The operation has completed successfully. + Shall be returned when the operation + has completed successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -1247,7 +1505,7 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" ############################################################################### - # PNFD Content # + # PNFD Archive Content # ############################################################################### '/pnf_descriptors/{pnfdInfoId}/pnfd_content': #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7 @@ -1255,6 +1513,10 @@ paths: - name: pnfdInfoId description: > Identifier of the individual PNF descriptor. + This identifier can be retrieved from the resource referenced + by the "Location" HTTP header in the response to a POST request + creating a new PNF descriptor resource. It can also be retrieved + from the "id" attribute in the payload body of that response. in: path required: true type: string @@ -1275,10 +1537,18 @@ paths: get: summary: Fetch the content of a PNFD. description: > - The GET method fetches the content of the PNFD. - This method shall follow the provisions specified in the - Table 5.4.7.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The GET method fetches the content of the PNFD archive. + The content of the PNFD archive is provided as onboarded, + i.e. depending on the security option used, the CSAR or + the CSAR wrapped in a ZIP archive together with an external + signature is returned, as defined in clause 5.1 of ETSI GS NFV-SOL 004. + + NOTE: Information about the applicable security option can be obtained + by evaluating the "archiveSecurityOption" attribute in the "pnfdInfo" structure. + + This method shall follow the provisions specified in the Tables 5.4.7.3.2-1 + and 5.4.7.3.2-2 for URI query parameters, request and response data structures, + and response codes. parameters: - name: Accept description: > @@ -1288,17 +1558,27 @@ paths: type: string enum: - text/plain + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain + single range of bytes from the PNFD archive. This can be + used to continue an aborted transmission. + If the NFVO does not support range requests, the NFVO + shall ignore the "Range" header, process the GET request, + and return the whole PNFD archive with a 200 OK response + (rather than returning a 4xx error status code). + in: header + required: false + type: string responses: 200: description: > 200 OK - Shall be returned when the content of the PNFD has + Shall be returned when the content of the PNFD archive has been read successfully. - The payload body shall contain a copy of the file - representing the PNFD. - The "Content-Type" HTTP header shall be set to - "text/plain". + The payload body shall contain a copy of the PNFD archive + The "Content-Type" HTTP header shall be set to "application/zip". headers: Content-Type: description: The MIME type of the body of the response. @@ -1319,6 +1599,43 @@ paths: type: string maximum: 1 minimum: 1 + 206: + description: > + 206 PARTIAL CONTENT + + If the NFVO supports range requests, this response shall be returned + when a single consecutive byte range from the content of the PNFD archive + has been read successfully according to the request. + The response body shall contain the requested part of the PNFD archive. + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. + headers: + Content-Type: + description: > + The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Content-Range: + description: > + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" 401: @@ -1332,18 +1649,20 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the resource. - Typically, this is due to the fact pnfdOnboardingState - has a value different from ONBOARDED. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. +# description: > +# 409 CONFLICT +# +# Shall be returned upon the following error: The +# operation cannot be executed currently, due to a +# conflict with the state of the resource. +# Typically, this is due to the fact pnfdOnboardingState +# has a value different from ONBOARDED. +# The response body shall contain a ProblemDetails +# structure, in which the "detail" attribute shall convey +# more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: @@ -1354,7 +1673,7 @@ paths: put: summary: Upload the content of a PNFD. description: > - The PUT method is used to upload the content of a PNFD. + The PUT method is used to upload the content of a PNFD archive. This resource represents the content of the individual PNF descriptor, i.e. PNFD content. The client can use this resource to upload and download the content of the PNFD. parameters: @@ -1366,12 +1685,47 @@ paths: type: string enum: - text/plain + - name: Content-type + description: > + The request shall set the "Content-Type" HTTP header to "application/zip". + in: header + type: string + enum: + - application/zip responses: + 202: + description: > + 202 ACCEPTED + + Shall be returned when the PNFD archive has been accepted for uploading, + but the processing has not been completed. It is expected to take some + time for processing (asynchronous mode). + The response body shall be empty. + The API consumer can track the uploading progress by receiving the + "PnfdOnBoardingNotification" and "PnfdOnBoardingFailureNotification" + from the NFVO or by reading the status of the individual PNF descriptor + resource using the GET method. + headers: + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 204: description: > 204 NO CONTENT - The PNFD content successfully uploaded and validated. + Shall be returned when the PNFD archive content has been + uploaded and validated successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -1401,22 +1755,301 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: +# description: > +# 409 CONFLICT +# +# Error: The operation cannot be executed currently, +# due to a conflict with the state of the resource. +# Typically, this is due to the fact that the +# PnfdOnboardingState has a value other than +# CREATED. +# The response body shall contain a ProblemDetails +# structure, in which the "detail" attribute shall convey +# more information about the error. + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + + ############################################################################### + # PNFD # + ############################################################################### + '/pnf_descriptors/{pnfdInfoId}/pnfd': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7a + parameters: + - name: pnfdInfoId + description: > + Identifier of the individual PNF descriptor. + This identifier can be retrieved from the resource referenced + by the "Location" HTTP header in the response to a POST request + creating a new PNF descriptor resource. It can also be retrieved + from the "id" attribute in the payload body of that response. + in: path + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + + get: + description: > + The GET method reads the content of the PNFD within a PNFD archive. + The PNFD can be implemented as a single file or as a collection of + multiple files. If the PNFD is implemented in the form of multiple + files, a ZIP file embedding these files shall be returned. If the + PNFD is implemented as a single file, either that file or a ZIP file + embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header + passed in the GET request: + • If the "Accept" header contains only "text/plain" and the PNFD is + implemented as a single file, the file shall be returned; otherwise, + an error message shall be returned. + • If the "Accept" header contains only "application/zip", the single + file or the multiple files that make up the PNFD shall be returned + embedded in a ZIP file. + • If the "Accept" header contains both "text/plain" and "application/zip", + it is up to the NFVO to choose the format to return for a single-file PNFD; + for a multi-file PNFD, a ZIP file shall be returned. + The default format of the ZIP file shall be the one specified in ETSI GS + NFV-SOL 004 where only the YAML files representing the PNFD, and information + necessary to navigate the ZIP file and to identify the file that is the entry + point for parsing the PNFD and (if requested) further security information + are included. This means that the content of the ZIP archive shall contain + the following files from the PNFD archive: + • TOSCA.meta (if available in the PNFD archive); + • the main service template (either as referenced from TOSCA.meta or + available as a file with the extension ".yml" or ".yaml" from the + root of the archive); + • every component of the PNFD referenced (recursively) from the main + service template; + • the related security information, if the "include_signatures" URI + parameter is provided, as follows: + - the manifest file; + - the singleton certificate file in the root of the PNFD archive + (if available in the PNFD archive); + - the signing certificates of the individual files included in the + ZIP archive (if available in the PNFD archive); + - the signatures of the individual files (if available in the PNFD archive). + This method shall follow the provisions specified in the Tables 5.4.7a.3.2-1 and + 5.4.7a.3.2-2 for URI query parameters, request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain + single range of bytes from the PNFD archive. This can be + used to continue an aborted transmission. + If the NFVO does not support range requests, the NFVO + shall ignore the "Range" header, process the GET request, + and return the whole PNFD archive with a 200 OK response + (rather than returning a 4xx error status code). + in: header + required: false + type: string + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall include in the + ZIP file the security information as specified above. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + type: string + responses: + 200: description: > - 409 CONFLICT + 200 OK + + Shall be returned when the content of the PNFD has been read successfully. + The payload body shall contain a copy of the file representing the PNFD + or a ZIP file that contains the file or multiple files representing the + PNFD, as specified above. + The "Content-Type" HTTP header shall be set according to the format of + the returned file. It shall be set to "text/plain" for a YAML file. + headers: + Content-Type: + type: string + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/responses/504" - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. - Typically, this is due to the fact that the - PnfdOnboardingState has a value other than - CREATED. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. + ############################################################################### + # PNFD Archive Manifest # + ############################################################################### + '/pnf_descriptors/{pnfdInfoId}/manifest': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7b + parameters: + - name: pnfdInfoId + description: > + Identifier of the individual PNF descriptor. + This identifier can be retrieved from the resource referenced + by the "Location" HTTP header in the response to a POST request + creating a new PNF descriptor resource. It can also be retrieved + from the "id" attribute in the payload body of that response. + in: path + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + + get: + description: > + The GET method reads the content of the manifest file within a PNFD archive. + This method shall follow the provisions specified in the Tables 5.4.7b.3.2-1 + and 5.4.7b.3.2-2 for URI query parameters, request and response data structures, + and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall return the manifest + and related security information (signature and certificate) either + in a single text file if the signature and certificate are included + in the manifest file, or in a zip file containing the manifest and + the certificate file, if this is provided as a separate file in the + PNFD archive. + If this parameter is not given, the NFVO shall provide only a copy + of the manifest file, as onboarded. If the security information is + included in the onboarded manifest, it shall also be included in + the returned copy. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + type: string + responses: + 200: + description: > + Shall be returned when the content of the manifest file has been + read successfully. + If the "include_signatures" URI query parameter was absent in the + request, or if the manifest file has all security-related information + embedded (i.e. there is no separate certificate file), the payload + body shall contain a copy of the manifest file of the PNFD archive, + and the "Content-Type" HTTP header shall be set to "text/plain". + If the "include_signatures" URI query parameter was present in the + related request and the manifest file does not have all the + security-related information embedded (i.e. there is a separate certificate file), + the "Content-Type" HTTP header shall be set to "application/zip" and + the payload body shall contain a ZIP archive which includes: + - a copy of the manifest file of the PNFD archive; + - a copy of the related individual certificate file. + headers: + Content-Type: + type: string + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + enum: + - text/plain + - application/zip + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: $ref: "../responses/SOL005_resp.yaml#/responses/409" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/responses/504" ############################################################################### # Subscriptions # @@ -1442,14 +2075,19 @@ paths: summary: Subscribe to NSD and PNFD change notifications. description: > The POST method creates a new subscription. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2. - Creation of two subscription resources with the same callbackURI and the same filter can result in performance - degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. - Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the - same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide - to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing - the existing subscription resource with the same filter and callbackUri). + This method shall support the URI query parameters, request and + response data structures, and response codes, as specified in + the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2. + Creation of two subscription resources with the same callback URI + and the same filter can result in performance degradation and will + provide duplicates of notifications to the OSS, and might make + sense only in very rare use cases. Consequently, the NFVO may + either allow creating a subscription resource if another subscription + resource with the same filter and callback URI already exists (in which + case it shall return the "201 Created" response code), or may decide to + not create a duplicate subscription resource (in which case it shall + return a "303 See Other" response code referencing the existing + subscription resource with the same filter and callbackUricallback URI). parameters: - name: Accept description: > @@ -1477,13 +2115,11 @@ paths: description: > 201 CREATED - Shall be returned when the subscription has been - created successfully. - The response body shall contain a representation - of the created subscription resource. - The HTTP response shall include a "Location:" - HTTP header that points to the created - subscription resource. + Shall be returned when the subscription has been created successfully. + A representation of the created "Individual subscription" resource shall + be returned in the response body, as defined in clause 5.5.2.8. + The HTTP response shall include a "Location:" HTTP header that points + to the created "Individual subscription" resource. schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" headers: @@ -1508,17 +2144,17 @@ paths: maximum: 1 minimum: 1 303: - description: > - 303 SEE OTHER - - Shall be returned when a subscription with the - same callbackURI and the same filter already - exits and the policy of the NFVO is to not create - redundant subscriptions. - The HTTP response shall include a "Location" - HTTP header that contains the resource URI of - the existing subscription resource. - The response body shall be empty. +# description: > +# 303 SEE OTHER +# +# Shall be returned when a subscription with the +# same callbackURI and the same filter already +# exits and the policy of the NFVO is to not create +# redundant subscriptions. +# The HTTP response shall include a "Location" +# HTTP header that contains the resource URI of +# the existing subscription resource. +# The response body shall be empty. $ref: "../responses/SOL005_resp.yaml#/responses/303" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" @@ -1532,6 +2168,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: @@ -1542,17 +2180,21 @@ paths: get: summary: Query multiple subscriptions. description: > - The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used - e.g. for resynchronization after error situations. + TThe GET method queries the list of active subscriptions of the + functional block that invokes the method. It can be used e.g. + for resynchronization after error situations. + This method shall support the URI query parameters, request and + response data structures, and response codes, as specified in + the Tables 5.4.8.3.2-1 and 5.4.8.3.2-2. parameters: - name: filter in: query required: false type: string description: > - Attribute filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + AAttribute filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. + the OSS/BSS may supply this parameter. All attribute names that appear in the NsdmSubscription and in data types referenced from it shall be supported by the NFVO in the filter expression. - name: nextpage_opaque_marker @@ -1560,9 +2202,9 @@ paths: required: false type: string description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource. + Marker to obtain the next page of a paged response. Shall be supported by + the NFVO if the NFVO supports alternative 2 (paging) according to clause + 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - name: Accept description: > Content-Types that are acceptable for the response. @@ -1575,19 +2217,16 @@ paths: description: > 200 OK - The list of subscriptions has been queried - successfully. - The response body shall contain in an array the - representations of all active subscriptions of the - functional block that invokes the method, i.e. zero or - more representations of NSD management - subscriptions as defined in clause 5.5.2.8. - If the NFVO 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 NFVSOL - 013. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active + subscriptions of the functional block that invokes the method, i.e. zero or more + representations of NSD management subscriptions as defined in clause 5.5.2.8. + 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 NFVO 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: Content-Type: description: The MIME type of the body of the response. @@ -1651,7 +2290,12 @@ paths: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.9 parameters: - name: subscriptionId - description: Identifier of this subscription. + description: > + Identifier of this subscription. + This identifier can be retrieved from the resource referenced + by the "Location" HTTP header in the response to a POST request + creating a new subscription resource. It can also be retrieved + from the "id" attribute in the payload body of that response. in: path required: true type: string @@ -1695,9 +2339,8 @@ paths: description: > 200 OK - The operation has completed successfully. - The response body shall contain a representation of - the subscription resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the subscription resource. schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" headers: @@ -1769,7 +2412,8 @@ paths: description: > 204 NO CONTENT - The subscription resource has been deleted successfully. + Shall be returned when the "Individual subscription" resource + has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: -- GitLab From 6ff1630661a3d04c67e83b9d73251d02a9da738e Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 16:44:44 +0100 Subject: [PATCH 11/32] SOL003_34/35: NSD Management notification endpoints updated --- .../NSDManagementNotification.yaml | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml index dff5e83..8c83624 100644 --- a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml +++ b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml @@ -17,7 +17,7 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.7.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /callback/v1 +basePath: /callback/v2 schemes: - http @@ -51,7 +51,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -118,8 +118,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -191,7 +191,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -258,8 +258,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -331,7 +331,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -398,8 +398,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -471,7 +471,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -538,8 +538,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -611,7 +611,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -678,8 +678,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -751,7 +751,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -818,8 +818,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -891,7 +891,7 @@ paths: post: summary: Notify about NSD and PNFD changes description: > - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. @@ -958,8 +958,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: -- GitLab From 2b9fb4b24139baf1f5f6b4ae4132960b41456def Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 11 Feb 2020 17:54:28 +0100 Subject: [PATCH 12/32] SOL005_36->42: NSD Management datatypes updated --- .../SOL005NSDescriptorManagement_def.yaml | 119 ++++++++++++++++-- 1 file changed, 111 insertions(+), 8 deletions(-) diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml index 191d297..7daa308 100644 --- a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -91,6 +91,28 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + archiveSecurityOption: + description: > + Signals the security option used by the NSD archive as defined + in clause 5.1 of ETSI GS NFV SOL 007. + Valid values: OPTION_1, OPTION_2 + type: string + enum: + - OPTION_1 + - OPTION_2 + signingCertificate: + description: > + The singleton signing certificate if it is included as a file in the NSD archive. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" + artifacts: + description: > + Information about NSD archive artifacts contained in the NSD archive. + This attribute shall not be present before the NSD archive content + is on-boarded. Otherwise, this attribute shall be present if the NSD + archive contains artifacts. + type: array + items: + $ref: "#/definitions/NsdArchiveArtifactInfo" nsdOnboardingState: description: > On boarding state of the individual NS descriptor resource. @@ -101,8 +123,8 @@ definitions: clause 6.3 of ETSI GS NFV-SOL 013 for the details of "ProblemDetails" structure. It shall be present when the "nsdOnboardingState" - attribute is CREATED and the uploading or - processing fails in NFVO. + attribute is "ERROR", i.e. the uploading or processing has failed in NFVO, + unless it has been requested to be excluded via an attribute selector. $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" nsdOperationalState: description: > @@ -200,6 +222,28 @@ definitions: manner. This attribute is invariant across versions of PNFD. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + archiveSecurityOption: + description: > + Signals the security option used by the PNFD archive as defined + in clause 5.1 of ETSI GS NFV SOL 004. + Valid values: OPTION_1, OPTION_2 + type: string + enum: + - OPTION_1 + - OPTION_2 + signingCertificate: + description: > + The singleton signing certificate if it is included as a file in the PNFD archive. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" + artifacts: + description: > + Information about PNFD archive artifacts contained in the PNFD archive. + This attribute shall not be present before the PNFD archive content is + on-boarded. Otherwise, this attribute shall be present if the PNFD archive + contains artifacts. + type: array + items: + $ref: "#/definitions/PnfdArchiveArtifactInfo" pnfdOnboardingState: description: > On-boarding state of the individual PNF descriptor resource. @@ -209,8 +253,8 @@ definitions: Failure details of current on-boarding procedure. See clause 6.3 of ETSI GS NFV-SOL 013 for the details of "ProblemDetails" structure. It shall be present when the - pnfdOnboardingState attribute is CREATED - and the uploading or processing fails in the NFVO. + pnfdOnboardingState attribute is "ERROR", i.e. the uploading or processing has failed + in the NFVO, unless it has been requested to be excluded via an attribute selector. $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" pnfdUsageState: description: > @@ -455,6 +499,61 @@ definitions: items: $ref: "#/definitions/PnfdUsageStateType" + NsdArchiveArtifactInfo: + type: object + description: > + This type represents an artifact contained in an NSD archive. + It shall comply with provisions defined in Table 5.5.3.5-1. + required: + - artifactPath + - checksum + properties: + artifactPath: + description: > + Path in the NSD archive, which identifies the artifact and + also allows to access a copy of the artifact. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" + checksum: + description: > + Checksum of the artifact file. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + metadata: + description: > + The metadata of the artifact that are available in the NSD Archive, + such as Content type, size, creation date, etc. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + PnfdArchiveArtifactInfo: + type: object + description: > + This type represents an artifact contained in a PNFD archive. + It shall comply with provisions defined in Table 5.5.3.6-1. + required: + - artifactPath + - checksum + properties: + artifactPath: + description: > + Path in the PNFD archive, which identifies the artifact and + also allows to access a copy of the artifact. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" + checksum: + description: > + Checksum of the artifact file. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + nonManoArtifactSetId: + description: > + Non-MANO artifact set identifier of the non-MANO artifact set + to which the artifact belongs, as defined in clause 4.3.7 of + ETSI GS NFV-SOL 004. Shall be provided if the artifact is + a non-MANO artifact, and shall be omitted otherwise. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" + metadata: + description: > + The metadata of the artifact that are available in the PNFD Archive, + such as Content type, size, creation date, etc. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + NsdOperationalStateType: type: string description: > @@ -484,15 +583,17 @@ definitions: The enumeration NsdOnboardingStateType shall comply with the provisions defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the on-boarding state of the NSD. - CREATED = The NSD information object is created. + CREATED = The NSD information object has been created. UPLOADING = The associated NSD content is being uploaded. PROCESSING = The associated NSD content is being processed, e.g. validation. - ONBOARDED = The associated NSD content is on-boarded. + ONBOARDED = The associated NSD content has been on-boarded. + ERROR = There was an error during upload or processing of the NSD content. enum: - CREATED - UPLOADING - PROCESSING - ONBOARDED + - ERROR PnfdOnboardingStateType: type: string @@ -500,15 +601,17 @@ definitions: The enumeration PnfdOnboardingStateType shall comply with the provisions defined in Table 5.5.4.6-1 of GS-NFV SOL005. It indicates the on-boarding state of the individual PNF descriptor resource. - CREATED = The PNF descriptor resource is created. + CREATED = The PNF descriptor resource has been created. UPLOADING = The associated PNFD content is being uploaded. PROCESSING = The associated PNFD content is being processed, e.g. validation. - ONBOARDED = The associated PNFD content is on-boarded. + ONBOARDED = The associated PNFD content has been on-boarded. + ERROR = There was an error during upload or processing of the associated PNFD content. enum: - CREATED - UPLOADING - PROCESSING - ONBOARDING + - ERROR PnfdUsageStateType: type: string -- GitLab From 0e26129a95d5d4fd137c3d9505cd3d7cee3df70f Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 12 Feb 2020 15:07:13 +0100 Subject: [PATCH 13/32] SOL005_109->143: NS Performance Management Interface updated --- .../NSPerformanceManagement.yaml | 815 ++++++++++-------- .../SOL005NSPerformanceManagement_def.yaml | 382 +++++--- .../NSPerformanceManagementNotification.yaml | 16 +- ...PerformanceManagementNotification_def.yaml | 66 +- 4 files changed, 798 insertions(+), 481 deletions(-) diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index 4cc9f3c..7952ded 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -20,7 +20,7 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.7.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /nspm/v1 +basePath: /nspm/v2 schemes: - http @@ -67,8 +67,8 @@ paths: Tables 7.4.2.3.1-1 and 7.4.2.3.1-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, a new - "Individual PM job" resource shall exist as defined in - clause 7.4.3. + "Individual PM job" resource exist as defined in + clause 7.4.3 shall have been created. parameters: - name: CreatePmJobRequest in: body @@ -96,11 +96,11 @@ paths: description: > 201 CREATED - Shall be returned when the PM job has been created successfully. + Shall be returned when the "Individual PM job" has been created successfully. The response body shall contain a representation of the created PM job resource, as defined in clause 7.5.2.7. The HTTP response shall include a "Location" HTTP - header that points to the created PM job resource. + header that points to the created "Individual PM job" resource. schema: $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" headers: @@ -144,7 +144,7 @@ paths: get: summary: Query PM jobs. description: > - The client can use this method to retrieve information about PM jobs. + The API consumer can use this method to retrieve information about PM jobs. parameters: - name: filter in: query @@ -308,7 +308,7 @@ paths: get: summary: Read a single PM job. description: > - The client can use this method for reading an individual PM job. + The API consumer can use this method for reading an individual PM job. parameters: - name: Accept description: > @@ -325,7 +325,7 @@ paths: Shall be returned when information about an individual PM job has been queried successfully. The response body shall contain a representation of - the PM job resource, as defined in clause 7.5.2.7. + the "Individual PM job resource", as defined in clause 7.5.2.7. schema: $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" headers: @@ -365,6 +365,71 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" + patch: + summary: Modify a PM job. + description: > + This method allows to modify an "individual PM job" resource. + This method shall follow the provisions specified in the + Tables 7.4.3.3.4-1 and 7.4.3.3.4-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: pmJobModifications + in: body + required: true + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJobModifications" + - name: Content-type + description: > + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. + in: header + required: true + type: string + enum: + - application/merge-patch+json + responses: + 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: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJobModifications" + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 412: + $ref: "../responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + delete: summary: Delete a PM job. description: > @@ -448,7 +513,7 @@ paths: get: summary: Read an individual performance report. description: > - The client can use this method for reading an individual performance + The API consumer can use this method for reading an individual performance report. parameters: - name: Accept @@ -465,8 +530,8 @@ paths: Shall be returned when information of an individual performance report has been read successfully. - The response body shall contain a representation of the performance - report resource, as defined in clause 7.5.2.10. + The response body shall contain a representation of the "Individual performance + report" resource, as defined in clause 7.5.2.10. schema: $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PerformanceReport" headers: @@ -529,15 +594,16 @@ paths: post: summary: Create a threshold. description: > - The POST method can be used by the client to create a threshold. + The POST method can be used by the API consumer to create + a threshold. This method shall follow the provisions specified in the table 7.4.5.3.1-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, a new - "Individual threshold" resource shall exist as defined - in clause 7.4.6. + "Individual threshold" resource as defined + in clause 7.4.6 shall have been created. parameters: - name: CreateThresholdRequest in: body @@ -545,7 +611,7 @@ paths: schema: $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest" description: > - Request parameters to create a threshold resource. + Request parameters to create a new "Individual threshold" resource. - name: Accept description: > Content-Types that are acceptable for the response. @@ -567,7 +633,7 @@ paths: Shall be returned when a threshold has been created successfully. The response body shall contain a representation of - the created threshold resource, as defined in clause 7.5.2.9. + the created "Individual threshold" resource, as defined in clause 7.5.2.9. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created threshold resource. @@ -614,7 +680,7 @@ paths: get: summary: Query thresholds. description: > - The client can use this method to query information about thresholds. + The API consumer can use this method to query information about thresholds. parameters: - name: filter in: query @@ -737,7 +803,8 @@ paths: get: summary: Query a single threshold. description: > - The client can use this method for reading an individual threshold. + The API consumer can use this method for reading an individual + threshold. This method shall follow the provisions specified in the Tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -797,229 +864,33 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" - delete: - summary: Delete a threshold. - description: > - This method allows to delete a threshold. - - As the result of successfully executing this method, the - "Individual threshold" resource shall not exist any longer. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - responses: - 204: - description: > - 204 NO CONTENT - - Shall be returned when the threshold has been deleted successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - 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. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - ############################################################################### - # Subscriptions # - ############################################################################### - '/subscriptions': - #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7 - parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - post: - summary: Subscribe to PM notifications. + patch: + summary: Modify a Threshold description: > - The POST method creates a new subscription. - This method shall follow the provisions specified in the Tables 7.4.7.3.1-1 and 7.4.7.3.1-2 for URI query parameters, - request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual subscription" resource shall exist as defined - in clause 7.4.8. This method shall not trigger any notification. - Creation of two subscription resources with the same callbackURI and the same filter can result in performance - degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. - Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the - same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide - to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing - the existing subscription resource with the same filter and callbackUri) + This method allows to modify an "Individual threshold" resource. + This method shall follow the provisions specified in the Tables + 7.4.6.3.4-1 and 7.4.6.3.4-2 for URI query parameters, request + and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - 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: body + - name: thresholdModifications in: body required: true schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" - description: > - Details of the subscription to be created. - responses: - 201: - description: > - 201 CREATED - - Shall be returned when the subscription has been created successfully. - A representation of the created subscription resource - shall be returned in the response body, as defined in clause 7.5.2.3. - The HTTP response shall include a "Location" HTTP - header that contains the resource URI of the created subscription resource. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - 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. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 303: - $ref: "../responses/SOL005_resp.yaml#/responses/303" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - get: - summary: Query PM related subscriptions. - description: > - The client can use this method to query the list of active subscriptions to Performance management notifications - subscribed by the client. - This method shall follow the provisions specified in the Tables 7.4.7.3.2-1 and 7.4.7.3.2-2 for URI query parameters, - request and response data structures, and response codes. - parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the PmSubscription and in data types referenced from it - shall be supported by the NFVO in the filter expression. - - name: nextpage_opaque_marker - in: query - required: false - type: string - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource. - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/ThresholdModifications" + - name: Content-type in: header required: true type: string + enum: + - application/merge-patch+json responses: 200: description: > 200 OK - Shall be returned when the list of subscriptions has - been queried successfully. - The response body shall contain the representations of - all active subscriptions of the functional block that - invokes the method, as defined in clause 7.5.2.3. - 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 NFVO 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. - + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "ThresholdModifications". headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 WWW-Authenticate: type: string description: > @@ -1034,108 +905,8 @@ paths: type: string maximum: 1 minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 schema: - type: array - items: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - ############################################################################### - # Individual subscription # - ############################################################################### - '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8 - parameters: - - name: subscriptionId - description: > - Identifier of the subscription. - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the - payload body of that response. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - 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 - - get: - summary: Query a single PM related subscription. - description: > - The client can use this method for reading an individual subscription about Performance management notifications - subscribed by the client. - This method shall follow the provisions specified in the Tables 7.4.8.3.2-1 and 7.4.8.3.2-2 for URI query parameters, - request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - responses: - 200: - description: > - 200 OK - - Shall be returned when the subscription has been read successfully. - The response body shall contain a representation of - the subscription resource, as defined in clause 7.5.2.3. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - 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. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/ThresholdModifications" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" 401: @@ -1148,30 +919,25 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 412: + $ref: "../responses/SOL005_resp.yaml#/responses/412" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: - summary: Terminate a subscription. + summary: Delete a Threshold. description: > - This method terminates an individual subscription. - This method shall follow the provisions specified in the - Tables 7.4.8.3.5-1 and 7.4.8.3.5-2 for URI query parameters, - request and response data structures, and response codes. + This method allows to delete a threshold. + As the result of successfully executing this method, the - "Individual subscription" resource shall not exist any longer. - This means that no notifications for that subscription shall - be sent to the formerly-subscribed API consumer. - NOTE: Due to race conditions, some notifications might still be - received by the formerly-subscribed API consumer for a - certain time period after the deletion. + "Individual threshold" resource shall not exist any longer. parameters: - name: Accept description: > Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. + Reference: IETF RFC 7231 in: header required: true type: string @@ -1180,8 +946,7 @@ paths: description: > 204 NO CONTENT - Shall be returned when the subscription resource has been - deleted successfully. + Shall be returned when the threshold has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -1213,4 +978,368 @@ paths: 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + $ref: "../responses/SOL005_resp.yaml#/responses/503" + + ############################################################################### + # Subscriptions # + ############################################################################### +# '/subscriptions': +# #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7 +# parameters: +# - name: Authorization +# description: > +# The authorization token for the request. +# Reference: IETF RFC 7235. +# in: header +# required: false +# type: string +# - name: Version +# description: > +# Version of the API requested to use when responding to this request. +# in: header +# required: true +# type: string +# +# post: +# summary: Subscribe to PM notifications. +# description: > +# The POST method creates a new subscription. +# This method shall follow the provisions specified in the Tables 7.4.7.3.1-1 and 7.4.7.3.1-2 for URI query parameters, +# request and response data structures, and response codes. +# As the result of successfully executing this method, a new "Individual subscription" resource shall exist as defined +# in clause 7.4.8. This method shall not trigger any notification. +# Creation of two subscription resources with the same callbackURI and the same filter can result in performance +# degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. +# Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the +# same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide +# to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing +# the existing subscription resource with the same filter and callbackUri) +# parameters: +# - name: Accept +# description: > +# Content-Types that are acceptable for the response. +# Reference: IETF RFC 7231. +# in: header +# required: true +# 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: body +# in: body +# required: true +# schema: +# $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" +# description: > +# Details of the subscription to be created. +# responses: +# 201: +# description: > +# 201 CREATED +# +# Shall be returned when the subscription has been created successfully. +# A representation of the created subscription resource +# shall be returned in the response body, as defined in clause 7.5.2.3. +# The HTTP response shall include a "Location" HTTP +# header that contains the resource URI of the created subscription resource. +# schema: +# $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" +# headers: +# Content-Type: +# type: string +# description: > +# The MIME type of the body of the response.This header +# field shall be present if the response has a non-empty message +# body. +# maximum: 1 +# minimum: 1 +# WWW-Authenticate: +# type: string +# 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. +# maximum: 1 +# minimum: 0 +# Version: +# description: > +# Version of the API used in the response. +# type: string +# maximum: 1 +# minimum: 1 +# 303: +# $ref: "../responses/SOL005_resp.yaml#/responses/303" +# 400: +# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# 401: +# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# 403: +# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# 404: +# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# 405: +# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# 406: +# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# 500: +# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# 503: +# $ref: "../responses/SOL005_resp.yaml#/responses/503" +# +# get: +# summary: Query PM related subscriptions. +# description: > +# The client can use this method to query the list of active subscriptions to Performance management notifications +# subscribed by the client. +# This method shall follow the provisions specified in the Tables 7.4.7.3.2-1 and 7.4.7.3.2-2 for URI query parameters, +# request and response data structures, and response codes. +# parameters: +# - name: filter +# in: query +# required: false +# type: string +# description: > +# Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. +# The NFVO shall support receiving this parameter as part of the URI query string. +# The OSS/BSS may supply this parameter. +# All attribute names that appear in the PmSubscription and in data types referenced from it +# shall be supported by the NFVO in the filter expression. +# - name: nextpage_opaque_marker +# in: query +# required: false +# type: string +# description: > +# Marker to obtain the next page of a paged response. Shall be supported by the NFVO +# if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of +# ETSI GS NFV-SOL 013 for this resource. +# - name: Accept +# description: > +# Content-Types that are acceptable for the response. +# Reference: IETF RFC 7231. +# in: header +# required: true +# type: string +# responses: +# 200: +# description: > +# 200 OK +# +# Shall be returned when the list of subscriptions has +# been queried successfully. +# The response body shall contain the representations of +# all active subscriptions of the functional block that +# invokes the method, as defined in clause 7.5.2.3. +# 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 NFVO 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: +# Content-Type: +# description: The MIME type of the body of the response. +# type: string +# maximum: 1 +# minimum: 1 +# WWW-Authenticate: +# type: string +# 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. +# maximum: 1 +# minimum: 0 +# Version: +# description: > +# Version of the API used in the response. +# type: string +# maximum: 1 +# minimum: 1 +# Link: +# description: > +# Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. +# type: string +# maximum: 1 +# minimum: 0 +# schema: +# type: array +# items: +# $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" +# 400: +# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# 401: +# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# 403: +# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# 404: +# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# 405: +# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# 406: +# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# 500: +# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# 503: +# $ref: "../responses/SOL005_resp.yaml#/responses/503" + + ############################################################################### + # Individual subscription # + ############################################################################### +# '/subscriptions/{subscriptionId}': +# #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8 +# parameters: +# - name: subscriptionId +# description: > +# Identifier of the subscription. +# This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response +# to a POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the +# payload body of that response. +# in: path +# type: string +# required: true +# - name: Authorization +# description: > +# The authorization token for the request. +# Reference: IETF RFC 7235 +# 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 +# +# get: +# summary: Query a single PM related subscription. +# description: > +# The client can use this method for reading an individual subscription about Performance management notifications +# subscribed by the client. +# This method shall follow the provisions specified in the Tables 7.4.8.3.2-1 and 7.4.8.3.2-2 for URI query parameters, +# request and response data structures, and response codes. +# parameters: +# - name: Accept +# description: > +# Content-Types that are acceptable for the response. +# Reference: IETF RFC 7231 +# in: header +# required: true +# type: string +# responses: +# 200: +# description: > +# 200 OK +# +# Shall be returned when the subscription has been read successfully. +# The response body shall contain a representation of +# the subscription resource, as defined in clause 7.5.2.3. +# schema: +# $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" +# headers: +# Content-Type: +# type: string +# description: > +# The MIME type of the body of the response.This header +# field shall be present if the response has a non-empty message +# body. +# WWW-Authenticate: +# type: string +# 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. +# maximum: 1 +# minimum: 0 +# Version: +# description: > +# Version of the API used in the response. +# type: string +# maximum: 1 +# minimum: 1 +# 400: +# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# 401: +# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# 403: +# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# 404: +# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# 405: +# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# 406: +# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# 500: +# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# 503: +# $ref: "../responses/SOL005_resp.yaml#/responses/503" +# +# delete: +# summary: Terminate a subscription. +# description: > +# This method terminates an individual subscription. +# This method shall follow the provisions specified in the +# Tables 7.4.8.3.5-1 and 7.4.8.3.5-2 for URI query parameters, +# request and response data structures, and response codes. +# As the result of successfully executing this method, the +# "Individual subscription" resource shall not exist any longer. +# This means that no notifications for that subscription shall +# be sent to the formerly-subscribed API consumer. +# NOTE: Due to race conditions, some notifications might still be +# received by the formerly-subscribed API consumer for a +# certain time period after the deletion. +# parameters: +# - name: Accept +# description: > +# Content-Types that are acceptable for the response. +# Reference: IETF RFC 7231. +# in: header +# required: true +# type: string +# responses: +# 204: +# description: > +# 204 NO CONTENT +# +# Shall be returned when the subscription resource has been +# deleted successfully. +# The response body shall be empty. +# headers: +# WWW-Authenticate: +# type: string +# 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. +# maximum: 1 +# minimum: 0 +# Version: +# description: > +# Version of the API used in the response. +# type: string +# maximum: 1 +# minimum: 1 +# 400: +# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# 401: +# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# 403: +# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# 404: +# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# 405: +# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# 406: +# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# 500: +# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# 503: +# $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml index 6ad0a3e..897a1de 100644 --- a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml @@ -2,68 +2,68 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - PmSubscriptionRequest: - description: > - This type represents a subscription request. - type: object - required: - - callbackUri - 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: "#/definitions/PmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../../definitions/SOL005_def.yaml#/definitions/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: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" - - PmSubscription: - description: > - This type represents a subscription. - type: object - required: - - id - - callbackUri - - _links - properties: - id: - description: > - Identifier that identifies the subscription. - $ref: "../../definitions/SOL005_def.yaml#/definitions/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: "#/definitions/PmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" +# PmSubscriptionRequest: +# description: > +# This type represents a subscription request. +# type: object +# required: +# - callbackUri +# 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: "#/definitions/PmNotificationsFilter" +# callbackUri: +# description: > +# The URI of the endpoint to send the notification to. +# $ref: "../../definitions/SOL005_def.yaml#/definitions/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: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" +# +# PmSubscription: +# description: > +# This type represents a subscription. +# type: object +# required: +# - id +# - callbackUri +# - _links +# properties: +# id: +# description: > +# Identifier that identifies the subscription. +# $ref: "../../definitions/SOL005_def.yaml#/definitions/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: "#/definitions/PmNotificationsFilter" +# callbackUri: +# description: > +# The URI of the endpoint to send the notification to. +# $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" +# _links: +# description: > +# Links to resources related to this resource. +# type: object +# required: +# - self +# properties: +# self: +# description: > +# URI of this resource. +# $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" CreatePmJobRequest: description: > @@ -71,9 +71,17 @@ definitions: It shall comply with the provisions defined in Table 7.5.2.6-1. type: object required: + - objectType - objectInstanceIds - criteria + - callbackUri properties: + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" objectInstanceIds: description: > Identifiers of the NS instances for which @@ -81,10 +89,36 @@ definitions: type: "array" items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + 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 6.2 of ETSI GS NFV-IFA 027 + 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 6.2 of + ETSI GS NFV IFA 027 for the related measured object type, measurements + will be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" criteria: description: > Criteria of the collection of performance information. $ref: "#/definitions/PmJobCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to configure the use of Authorization + when sending notifications corresponding to this PM job, as + defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the API consumer requires + authorization of notifications. + $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" PmJob: description: > @@ -92,13 +126,21 @@ definitions: type: object required: - id + - objectType - objectInstanceIds - criteria + - callbackUri properties: id: description: > Identifier of this PM job. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" objectInstanceIds: description: > Identifiers of the NS instances for which @@ -106,10 +148,28 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + 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 6.2 of ETSI GS NFV-IFA 027 + 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 6.2 of + ETSI GS NFV IFA 027 for the related measured object type, measurements + will be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" criteria: description: > Criteria of the collection of performance information. $ref: "#/definitions/PmJobCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" reports: description: > Information about available reports collected by this PM job. @@ -148,9 +208,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" objects: description: > - Links to resources representing the NS + Links to resources representing the measured object instances for which performance information is - collected. Shall be present if the NS instance + collected. Shall be present if the measured object instance information is accessible as a resource. type: array items: @@ -161,17 +221,46 @@ definitions: This type represents a request to create a threshold. type: object required: + - objectType - objectInstanceId - criteria properties: + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" objectInstanceId: description: > Identifier of the NS instance associated with this threshold. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + 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 6.2 of ETSI GS NFV-IFA 027 + 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 6.2 of + ETSI GS NFV IFA 027 for the related measured object type, measurements + will be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" criteria: description: > Criteria that define this threshold. $ref: "#/definitions/ThresholdCriteria" + authentication: + description: > + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this threshold, as defined in + clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the API consumer requires + authorization of notifications. + $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" Threshold: description: > @@ -179,22 +268,46 @@ definitions: type: object required: - id + - objectType - objectInstanceId - criteria + - callbackUri - _links properties: id: description: > Identifier of this threshold resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.3 of ETSI GS NFV IFA 027. objectInstanceId: description: > Identifier of the NS instance associated with the threshold. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with the threshold. + May be present if a sub-object is defined in clause 6.2 + of ETSI GS NFV-IFA 027 for the related measurement type. + If this attribute is absent and a sub-object is defined + n clause 6.2 of ETSI GS NFV-IFA 027 for the related measured + object type, measurements will be taken for all sub-object + instances of the measured object instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" criteria: description: > Criteria that define this threshold. $ref: "#/definitions/ThresholdCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" _links: description: > Links for this resource. @@ -240,22 +353,41 @@ definitions: properties: objectType: description: > - Defines the object type for which performance - information is reported (i.e. NS type). The string value - shall be set to the nsdId of the NS instance to which the - performance information relates. - type: string + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" objectInstanceId: description: > - The object instance for which the performance metric is - reported. - The object instances for this information element will be - NS instances. + Identifier of the measured object instance for which + the performance metric is reported. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + 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 6.2 of + ETSI GS NFV-IFA 027 for the related measured object type. + + The sub-object allows to structure the measured object but is + not to be confused with sub-counters which allow to structure + the measurement value. + + EXAMPLE: + Measured object: VnfInstanceXYZ + Sub-object: VnfcInstance1 + Measurement: vCPU_utilization + Sub-counters: vCPU utilization of each of the vCPUs of VnfcInstance1 + (vCPU utilization.vCPU1, vCPU_utilization.vCPU2, etc.). + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" performanceMetric: description: > - Name of the metric collected. - type: string + Name of the metric collected. This attribute shall contain + the related "Measurement Name" value as defined in clause + 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" performanceValues: description: > List of performance values with associated timestamp. @@ -272,41 +404,68 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" value: description: > - The type of the "performanceValue" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, - arrays or structures / Objects)) is outside the scope of the present document. + Value of the metric collected. The type of this attribute shall + correspond to the related "Measurement Unit" as defined in clause + 7.3 of ETSI GS NFV-IFA 027. type: object + context: + description: > + Measurement context information related to the measured value. + The set of applicable keys is defined per measurement in the + related "Measurement Context" in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" - PmNotificationsFilter: + ThresholdModifications: description: > - This type represents a filter that can be used to subscribe for - notifications related to performance management events. It - shall comply with the provisions defined in Table 7.5.3.2-1. - At a particular nesting level in the filter structure, the following applies: - All attributes shall match in order for the filter - to match (logical "and" between different filter attributes). - If an attribute is an array, the attribute shall match if at least - one of the values in the array matches (logical "or" between the values of one filter attribute). + This type represents modifications to a threshold. + It shall comply with the provisions defined in Table 7.5.2.11-1. type: object properties: - nsInstanceSubscriptionFilter: + callbackUri: description: > - Filter criteria to select NS instances about which to notify. - $ref: "../../definitions/SOL005_def.yaml#/definitions/NsInstanceSubscriptionFilter" - notificationTypes: + New value of the "callbackUri" attribute. The value "null" is not permitted. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + authentication: description: > - Match particular notification types. - Permitted values: - - ThresholdCrossedNotification - - PerformanceInformationAvailableNotification - The permitted values of the "notificationTypes" attribute are - spelled exactly as the names of the notification types to facilitate - automated code generation systems. - type: array - items: - type: string - enum: - - ThresholdCrossedNotification - - PerformanceInformationAvailableNotification + 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 JSON Merge PATCH (see IETF RFC 7396). + This attribute shall not be present in response bodies. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" + +# PmNotificationsFilter: +# description: > +# This type represents a filter that can be used to subscribe for +# notifications related to performance management events. It +# shall comply with the provisions defined in Table 7.5.3.2-1. +# At a particular nesting level in the filter structure, the following applies: +# All attributes shall match in order for the filter +# to match (logical "and" between different filter attributes). +# If an attribute is an array, the attribute shall match if at least +# one of the values in the array matches (logical "or" between the values of one filter attribute). +# type: object +# properties: +# nsInstanceSubscriptionFilter: +# description: > +# Filter criteria to select NS instances about which to notify. +# $ref: "../../definitions/SOL005_def.yaml#/definitions/NsInstanceSubscriptionFilter" +# notificationTypes: +# description: > +# Match particular notification types. +# Permitted values: +# - ThresholdCrossedNotification +# - PerformanceInformationAvailableNotification +# The permitted values of the "notificationTypes" attribute are +# spelled exactly as the names of the notification types to facilitate +# automated code generation systems. +# type: array +# items: +# type: string +# enum: +# - ThresholdCrossedNotification +# - PerformanceInformationAvailableNotification PmJobCriteria: description: > @@ -320,9 +479,10 @@ definitions: performanceMetric: description: > This defines the types of performance metrics - for the specified object instances. At least one - of the two attributes (performance metric or - group) shall be present. + for the specified object instances. Valid values are specified + as "Measurement Name" values in clause 7.3 of ETSI GS NFV-IFA 027. + At least one of the two attributes (performance metric or group) + shall be present. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" @@ -331,9 +491,10 @@ definitions: 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. At least one of the two - attributes (performance metric or group) shall - be present. + individual metrics. Valid values are specified as + "Measurement Group" values in clause 7.3 of ETSI + GS NFV-IFA 027. At least one of the two attributes + (performance metric or group) shall be present. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" @@ -384,7 +545,8 @@ definitions: performanceMetric: description: > Defines the performance metric associated with the - threshold, as specified in ETSI GS NFV-IFA 027). + threshold. Valid values are specified as "Measurement Name" + values in clause 7.2 of ETSI GS NFV IFA 027. type: string thresholdType: description: > diff --git a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml index 1e9b050..469ba34 100644 --- a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -17,7 +17,7 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.7.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /callback/v1 +basePath: /callback/v2 schemes: - http @@ -54,7 +54,7 @@ paths: description: > The POST method delivers a notification regarding a performance management event from the API producer to an API consumer. The API consumer shall have previously - created an "individual subscription resource" with a matching filter. + created an "Individual PM job resource" or "Individual threshold resource". This method shall follow the provisions specified in the Tables 7.4.9.3.1-1 and 7.4.9.3.1-2 for URI query parameters, request and response data strctures, and response codes. @@ -121,8 +121,9 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during - subscription. + The GET method allows the API producer to test the notification + endpoint that is provided by the API consumer, e.g. during + creation of the PM job or threshold resource. This method shall follow the provisions specified in the Tables 7.4.9.3.2-1 and 7.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -198,7 +199,7 @@ paths: description: > The POST method delivers a notification regarding a performance management event from the API producer to an API consumer. The API consumer shall have previously - created an "individual subscription resource" with a matching filter. + created an "Individual PM job resource" or "Individual threshold resource". This method shall follow the provisions specified in the Tables 7.4.9.3.1-1 and 7.4.9.3.1-2 for URI query parameters, request and response data strctures, and response codes. @@ -265,8 +266,9 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during - subscription. + The GET method allows the API producer to test the notification + endpoint that is provided by the API consumer, e.g. during + creation of the PM job or threshold resource. This method shall follow the provisions specified in the Tables 7.4.9.3.2-1 and 7.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml index cf2f10a..67c276e 100644 --- a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml @@ -6,13 +6,15 @@ definitions: description: > This notification informs the receiver that performance information is available. The notification shall be triggered by the NFVO when new performance information - collected by a PM job is available. + collected by a PM job is available. + The periodicity of triggering this notification is influenced by the "reportingPeriod" + attribute in the "PmJobCriteria" data structure as defined in clause 7.5.3.3. type: object required: - id - notificationType - - subscriptionId - timeStamp + - objectType - objectInstanceId - _links properties: @@ -30,31 +32,40 @@ definitions: "PerformanceInformationAvailableNotification" for this notification type. type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" timeStamp: description: > Date and time of the generation of the notification. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement is + defined in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" objectInstanceId: description: > Identifier that identifies a NS instance. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which the measurements have been taken. + Shall be present if the related PM job has been set up to measure + only a subset of all sub-object instances of the measured object + instance and a sub-object is defined in clause 6.2 of ETSI GS + NFV-IFA 027 for the related measured object type. + Shall be absent otherwise. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" _links: description: > Links to resources related to this notification. type: object required: - - subscription - pmJob - performanceReport properties: - subscription: - description: > - Link to the related subscription. - $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink" objectInstance: description: > Link to the resource representing the NS @@ -87,10 +98,10 @@ definitions: required: - id - notificationType - - subscriptionId - timeStamp - thresholdId - crossingDirection + - objectType - objectInstanceId - performanceMetric - performanceValue @@ -109,10 +120,6 @@ definitions: Shall be set to "ThresholdCrossedNotification " for this notification type. type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" timeStamp: description: > Date and time of the generation of the notification. @@ -125,10 +132,26 @@ definitions: description: > An indication of whether the threshold was crossed in upward or downward direction. $ref: "#/definitions/CrossingDirectionType" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/String" objectInstanceId: description: > Identifier that identifies a NS instance. $ref: "../../definitions/SOL005_def.yaml#/definitions/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 6.2 of ETSI GS NFV IFA 027 for the related measured + object type. + The sub-object allows to structure the measured object but is + not to be confused with sub-counters which allow to structure + the measurement. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" performanceMetric: description: > Performance metric associated with the threshold. @@ -141,19 +164,20 @@ definitions: The type of this attribute shall correspond to the related "Measurement Unit" as defined in clause 7.2 of ETSI GS NFV-IFA 027. type: object + context: + description: > + Measurement context information related to the measured value. + The set of applicable keys is defined per measurement in the + related "Measurement Context" in clause 7.3 of ETSI GS NFV-IFA 027. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" _links: description: > Links to resources related to this notification. type: object required: - - subscription - objectInstance - threshold properties: - subscription: - description: > - Link to the related subscription. - $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink" objectInstance: description: > Link to the resource representing the NS -- GitLab From 9a2eb3a44691e568f2a58e043bfab102f7256f63 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 12 Feb 2020 15:41:00 +0100 Subject: [PATCH 14/32] SOL005: fix in PmJobModifications --- .../SOL005NSPerformanceManagement_def.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml index 897a1de..83ec79c 100644 --- a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml @@ -415,6 +415,26 @@ definitions: related "Measurement Context" in clause 7.3 of ETSI GS NFV-IFA 027. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + PmJobModifications: + description: > + This type represents modifications to a PM job. + It shall comply with the provisions defined in Table 7.5.2.12-1. + type: object + properties: + callbackUri: + description: > + New value of the "callbackUri" attribute. The value "null" is not permitted. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: "../../definitions/SOL005_def.yaml#/definitions/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 JSON Merge PATCH (see IETF RFC 7396). + This attribute shall not be present in response bodies. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" + ThresholdModifications: description: > This type represents modifications to a threshold. -- GitLab From 11893c37707929f8f7157a7b94ec4515f528ffbd Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Wed, 26 Feb 2020 11:06:15 +0100 Subject: [PATCH 15/32] SOL005_43 API version updated --- src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index cfbc3ee..ffe30f8 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -1,6 +1,6 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Lifecycle Management Interface" description: > SOL005 - NS Lifecycle Management Interface -- GitLab From 237d83e7e6e853ce8b7c1487e5b4766a25012344 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Fri, 28 Feb 2020 11:05:07 +0100 Subject: [PATCH 16/32] SOL005_46 & SOL005_47 Updated --- .../NSLifecycleManagement.yaml | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index ffe30f8..95fa653 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -55,6 +55,10 @@ paths: summary: Create a NS instance resource. description: > The POST method creates a new NS instance resource. + As the result of successfully executing this method, a new "Individual NS instance" resource as defined in clause 6.4.3 + shall have been created, and the value of the "instantiationState" attribute in the representation of that resource shall be + "NOT_INSTANTIATED". A notification of type NsIdentifierCreationNotification shall be triggered as part of + successfully executing this method as defined in clause 6.5.2.6. parameters: - name: Accept description: > @@ -82,10 +86,12 @@ paths: description: > 201 Created - A NS Instance identifier has been created - successfully. + Shall be returned when a new "Individual NS + instance" resource and the associated NS instance + identifier has been created successfully. The response body shall contain a representation of - the created NS instance, as defined in clause 6.5.2.8. + the created NS instance, as defined in + clause 6.5.2.10. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created NS instance. @@ -211,16 +217,24 @@ paths: description: > 200 OK - Information about zero or more NS instances has - been queried successfully. + Shall be returned when information about zero or + more NS instances has been queried successfully. The response body shall contain in an array the representations of zero or more NS instances, as defined in clause 6.5.2.8. + 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 [16], respectively. If the NFVO supports alternative 2 (paging) - according to clause 4.7.2.1 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. + according to clause 5.4.2.1 of ETSI + GS NFV-SOL 013 [16] 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 [16]. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 565a519cc4bade0d9fd9a4eeb5b761533b111bb9 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Fri, 28 Feb 2020 11:19:23 +0100 Subject: [PATCH 17/32] SOL005_49 and SOL005_50 Updated --- .../NSLifecycleManagement.yaml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 95fa653..31b3051 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -340,8 +340,10 @@ paths: description: > 200 OK - Information about an individual NS instance has been queried successfully. - The response body shall contain a representation of the NS instance. + Shall be returned when information about an + individual NS instance has been read successfully. + The response body shall contain a representation of + the NS instance, as defined in clause 6.5.2.10. schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" headers: @@ -393,13 +395,17 @@ paths: Delete NS Identifier This method deletes an individual NS instance resource. + As the result of successfully executing this method, the "Individual NS instance" resource shall not exist any longer. + A notification of type "NsIdentifierDeletionNotification" shall be triggered as part of successfully executing this method + as defined in clause 6.5.2.7. responses: 204: description: > 204 No Content - The NS instance resource and the associated NS - identifier were deleted successfully. + Shall be returned when the "Individual NS instance" + resource and the associated NS identifier have been + deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -432,8 +438,9 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource is in INSTANTIATED state. The response body shall contain a ProblemDetails -- GitLab From a5c7ba1550586ae2f3f9605b5bf19470adf8c675 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Fri, 28 Feb 2020 12:20:28 +0100 Subject: [PATCH 18/32] SOL005_52,54,56,58,60,62,64,66,68,70,72,74,76,77,79,80,81 & 82 Updated --- .../NSLifecycleManagement.yaml | 438 +++++++++++------- .../NSLifecycleManagementNotification.yaml | 45 +- 2 files changed, 284 insertions(+), 199 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 31b3051..c1a8ba0 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -15,7 +15,7 @@ info: contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 + description: ETSI GS NFV-SOL 005 V2.7.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf basePath: /nslcm/v1 schemes: @@ -36,7 +36,7 @@ paths: # NSInstances # ############################################################################### '/ns_instances': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.2 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.2 parameters: - name: Authorization description: > @@ -294,7 +294,7 @@ paths: # Individual NS instance # ############################################################################### '/ns_instances/{nsInstanceId}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.3 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.3 parameters: - name: nsInstanceId description: > @@ -460,7 +460,7 @@ paths: # Instantiate NS task # ############################################################################### '/ns_instances/{nsInstanceId}/instantiate': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.4 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.4 parameters: - name: nsInstanceId description: > @@ -472,6 +472,9 @@ paths: summary: Instantiate a NS. description: > The POST method requests to instantiate a NS instance resource. + The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. + In addition, once the NFVO has successfully completed the underlying NS LCM operation occurrence, it shall set the + "nsState" attribute to the value "INSTANTIATED" in the representation of the "Individual NS instance" resource. parameters: - name: Accept description: > @@ -506,18 +509,20 @@ paths: schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest" description: > - Parameters for the instantiate NS operation, as defined in clause 6.5.2.10. + Parameters for the instantiate NS operation, as defined in + clause 6.5.2.11. responses: 202: description: > 202 ACCEPTED - The request has been accepted for processing, but - the processing has not been completed. + Shall be returned when the request has been + accepted for processing, but the processing has not + been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created - "NS LCM operation occurrence" resource + "Individual NS LCM operation occurrence" resource corresponding to the operation. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: @@ -536,8 +541,9 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource is in the INSTANTIATED state, or that another lifecycle management operation is ongoing. @@ -558,7 +564,7 @@ paths: # Scale NS task # ############################################################################### '/ns_instances/{nsInstanceId}/scale': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.5 parameters: - name: nsInstanceId description: > @@ -570,6 +576,10 @@ paths: summary: Scale a NS instance. description: > The POST method requests to scale a NS instance resource. + The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. + In addition, once the NFVO has successfully completed the underlying NS LCM operation occurrence, it shall reflect + the result of scaling the NS instance by updating the "nsScaleStatus" attribute in the representation of the "Individual + NS instance" resource. parameters: - name: Accept description: > @@ -604,19 +614,21 @@ paths: schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest" description: > - Parameters for the scale NS operation, as defined in clause 6.5.2.13. + Parameters for the scale NS operation, as defined in + clause 6.5.2.14. responses: 202: description: > 202 ACCEPTED - The request has been accepted for processing, but - the processing has not been completed. + Shall be returned when the request has been + accepted for processing, but the processing has not + been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created - "NS lifecycle operation occurrence" resource - corresponding to the operation. + "Individual NS lifecycle operation occurrence" + resource corresponding to the operation. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" @@ -634,8 +646,9 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. @@ -654,7 +667,7 @@ paths: # Update NS task # ############################################################################### '/ns_instances/{nsInstanceId}/update': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.6 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.6 parameters: - name: nsInstanceId description: > @@ -665,8 +678,7 @@ paths: post: summary: Updates a NS instance. description: > - Scale NS instance. - The POST method requests to scale a NS instance resource. + The POST method updates an NS instance. parameters: - name: Accept description: > @@ -701,19 +713,20 @@ paths: schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest" description: > - Parameters for the update NS operation, as defined in clause 6.5.2.11. + Parameters for the update NS operation, as defined in clause 6.5.2.12. responses: 202: description: > 202 ACCEPTED - The request has been accepted for processing, but - the processing has not been completed. + Shall be returned when the request has been + accepted for processing, but the processing has not + been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created - "NS lifecycle operation occurrence" resource - corresponding to the operation. + "Individual NS lifecycle operation occurrence" + resource corresponding to the operation. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" @@ -731,8 +744,9 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. @@ -751,7 +765,7 @@ paths: # Heal NS task # ############################################################################### '/ns_instances/{nsInstanceId}/heal': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.7 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.7 parameters: - name: nsInstanceId description: > @@ -762,10 +776,10 @@ paths: post: summary: Heal a NS instance. description: > - The POST method requests to heal a NS instance resource. - This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and - 6.4.7.3.1-2 for URI query parameters, + The POST method requests to heal an NS instance. + This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and 6.4.7.3.1-2 for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. parameters: - name: Accept description: > @@ -800,19 +814,20 @@ paths: schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/HealNsRequest" description: > - Parameters for the heal NS operation, as defined in clause 6.5.2.12. + Parameters for the heal NS operation, as defined in clause 6.5.2.13. responses: 202: description: > 202 ACCEPTED - The request has been accepted for processing, but - the processing has not been completed. + Shall be returned when the request has been + accepted for processing, but the processing has not + been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created - "NS lifecycle operation occurrence" resource - corresponding to the operation. + "Individual NS lifecycle operation occurrence" + resource corresponding to the operation. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" @@ -830,8 +845,9 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. @@ -850,7 +866,7 @@ paths: # Terminate NS task # ############################################################################### '/ns_instances/{nsInstanceId}/terminate': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.8 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.8 parameters: - name: nsInstanceId description: > @@ -862,13 +878,14 @@ paths: summary: Terminate a NS instance. description: > Terminate NS task. - The POST method terminates a NS instance. This method can only be - used with a NS instance in the INSTANTIATED - state. Terminating a NS instance does not delete the NS instance identifier, - but rather transitions the NS into the NOT_INSTANTIATED state. - This method shall support the URI query parameters, request and - response data structures, and response codes, as - specified in the Tables 6.4.8.3.1-1 and 6.8.8.3.1-2. + The POST method terminates an NS instance. + This method shall follow the provisions specified in the Tables 6.4.8.3.1-1 and 6.4.8.3.1-2 for URI query parameters, + request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. + In addition, once the NFVO has successfully completed the underlying NS LCM operation occurrence, it shall set the + "nsState" attribute in the representation of the "Individual NS instance" resource to the value "NOT_INSTANTIATED". + This method can only be used with an NS instance in the INSTANTIATED state. Terminating an NS instance does not + delete the NS instance identifier, but rather transitions the NS into the NOT_INSTANTIATED state. parameters: - name: Accept description: > @@ -903,7 +920,7 @@ paths: schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest" description: > - The terminate NS request parameters, as defined in clause 6.5.2.14. + The terminate NS request parameters, as defined in clause 6.5.2.15. responses: 202: description: > @@ -933,8 +950,9 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. @@ -953,22 +971,27 @@ paths: # NS LCM operation occurrences # ############################################################################### '/ns_lcm_op_occs': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.9 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.9 get: summary: Query multiple NS LCM operation occurrences. description: > Get Operation Status. - The client can use this method to query status information about multiple NS lifecycle management operation - occurrences. - This method shall follow the provisions specified in the Tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, - request and response data structures, and response codes. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the NS instance + resource is in NOT_INSTANTIATED state, or that + another lifecycle management operation is ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error parameters: - name: filter in: query required: false type: string description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013[16]. The NFVO shall support receiving this parameter as part of the URI query string. The OSS/BSS may supply this parameter. All attribute names that appear in the NsLcmOpOcc and in data types referenced @@ -1033,20 +1056,24 @@ paths: description: > 200 OK - Status information for zero or more NS lifecycle management operation - occurrences has been queried successfully. - The response body shall contain in an array the representations of - zero or more NS instances, as defined in clause 6.5.2.3. - - If the "filter" URI parameter or one of the "all_fields", "fields", - "exclude_fields" or "exclude_default" URI parameters was supplied in - the request and is supported, 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 NFVO 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. + Shall be returned when status information for zero or + more NS lifecycle management operation occurrences + has been queried successfully. + The response body shall contain in an array the status + information about zero or more NS lifecycle operation + occurrences, as defined in clause 6.5.2.3. + If the "filter" URI parameter or one of the "all_fields", + "fields", "exclude_fields" or "exclude_default" URI + parameters was supplied in the request and is + supported, 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 [16], respectively. + If the NFVO supports alternative 2 (paging) according + to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] 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 [16]. headers: Content-Type: description: The MIME type of the body of the response. @@ -1102,7 +1129,7 @@ paths: # Individual NS lifecycle operation occurrence # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.10 parameters: - name: nsLcmOpOccId description: > @@ -1113,7 +1140,7 @@ paths: get: summary: Read an individual NS LCM operation occurrence resource. description: > - The client can use this method to retrieve status information about + The API consumer can use this method to retrieve status information about a NS lifecycle management operation occurrence by reading an individual "NS LCM operation occurrence" resource. This method shall follow the provisions specified in the @@ -1152,10 +1179,12 @@ paths: description: > 200 OK - Information about a NS LCM operation occurrence has been - queried successfully. - The response body shall contain status information about a NS - lifecycle management operation occurrence (see clause 6.5.2.3). + Shall be returned when information about an NS + LCM operation occurrence has been read + successfully. + The response body shall contain status information + about an NS lifecycle management operation + occurrence (see clause 6.5.2.3). schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" headers: @@ -1205,7 +1234,7 @@ paths: # Retry operation task # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.11 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.11 parameters: - name: nsLcmOpOccId description: > @@ -1245,8 +1274,9 @@ paths: description: > 202 ACCEPTED - The request has been accepted for processing, but - processing has not been completed. + Shall be returned when the request has been + accepted for processing, but processing has not been + completed. The response shall have an empty payload body. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: @@ -1259,17 +1289,18 @@ paths: description: > 404 NOT FOUND - Error: The API producer did not find a current - representation for the target resource or is not willing - to disclose that one exists. + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. The general cause for this error and its handling is - specified in clause 6.4 of ETSI GS NFV-SOL 013, + specified in clause 6.4 of ETSI GS NFV-SOL 013 [16], including rules for the presence of the response body. - Specifically in case of this task resource, the reason - can also be that the task is not supported for the NS - LCM operation occurrence represented by the parent - resource, and that the task resource consequently - does not exist. + Specifically in case of this task resource, the response + code 404 shall also be returned if the task is not + supported for the NS LCM operation occurrence + represented by the parent resource, which means that + the task resource consequently does not exist. In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about @@ -1283,9 +1314,10 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the NS LCM - operation occurrence resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the NS LCM operation + occurrence resource. Typically, this is due to the fact that the NS LCM operation occurrence is not in FAILED_TEMP state, or another error handling action is starting, such as @@ -1305,7 +1337,7 @@ paths: # Rollback a NS lifecycle management operation occurrence. # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.12 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.12 parameters: - name: nsLcmOpOccId description: > @@ -1343,8 +1375,9 @@ paths: responses: 202: description: > - The request has been accepted for processing, but - processing has not been completed. + Shall be returned when the request has been + accepted for processing, but processing has not + been completed. The response shall have an empty payload body. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: @@ -1357,17 +1390,19 @@ paths: description: > 404 NOT FOUND - Error: The API producer did not find a current - representation for the target resource or is not willing - to disclose that one exists. + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. The general cause for this error and its handling is - specified in clause 6.4 of ETSI GS NFV-SOL 013 - [16], including rules for the presence of the response - body. - Specifically, in case of this task resource, the reason - can also be that the task is not supported for the NS - LCM operation occurrence represented by the parent - resource, and that the task resource consequently + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [16], including rules for the + presence of the response body. + Specifically, in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the NS LCM operation + occurrence represented by the parent resource, + which means that the task resource consequently does not exist. In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the @@ -1382,9 +1417,10 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the NS LCM - operation occurrence resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the NS LCM operation + occurrence resource. Typically, this is due to the fact that the NS LCM operation occurrence is not in FAILED_TEMP state, or another error handling action is starting, such as @@ -1404,11 +1440,15 @@ paths: # Continue a NS lifecycle management operation occurrence. # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.13 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.13 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence to be continued. + + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request triggering an NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. in: path required: true type: string @@ -1438,8 +1478,9 @@ paths: description: > 202 ACCEPTED - The request has been accepted for processing, but - processing has not been completed. + Shall be returned when the request has been + accepted for processing, but processing has not + been completed. The response shall have an empty payload body. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: @@ -1452,17 +1493,19 @@ paths: description: > 404 NOT FOUND - Error: The API producer did not find a current - representation for the target resource or is not willing - to disclose that one exists. + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. The general cause for this error and its handling is - specified in clause 6.4 of ETSI GS NFV-SOL 013 - [16], including rules for the presence of the response - body. - Specifically, in case of this task resource, the reason - can also be that the task is not supported for the NS - LCM operation occurrence represented by the parent - resource, and that the task resource consequently + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [16], including rules for the + presence of the response body. + Specifically, in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the NS LCM operation + occurrence represented by the parent resource, + which means that the task resource consequently does not exist. In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the @@ -1477,9 +1520,10 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the NS LCM - operation occurrence resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the NS LCM operation + occurrence resource. Typically, this is due to the fact that the NS LCM operation occurrence is not in FAILED_TEMP state, or another error handling action is starting, such as @@ -1499,7 +1543,7 @@ paths: # Fail operation task # ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.14 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.14 parameters: - name: nsLcmOpOccId description: > @@ -1545,10 +1589,11 @@ paths: description: > 200 OK - The state of the NS lifecycle management operation - occurrence was changed successfully. - The response shall include a representation of the NS - lifecycle management operation occurrence resource. + Shall be returned when the state of the NS lifecycle + management operation occurrence has been changed + successfully. + The response shall include a representation of the + "Individual NS lifecycle management operation occurrence" resource. schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" headers: @@ -1584,17 +1629,18 @@ paths: description: > 404 NOT FOUND - Error: The API producer did not find a current - representation for the target resource or is not willing - to disclose that one exists. + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. The general cause for this error and its handling is - specified in clause 6.4 of ETSI GS NFV-SOL 013, + specified in clause 6.4 of ETSI GS NFV-SOL 013 [16], including rules for the presence of the response body. - Specifically in case of this task resource, the reason - can also be that the task is not supported for the NS - LCM operation occurrence represented by the parent - resource, and that the task resource consequently - does not exist. + Specifically in case of this task resource, the response + code 404 shall also be returned if the task is not + supported for the NS LCM operation occurrence + represented by the parent resource, which means that + the task resource consequently does not exist. In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about @@ -1608,9 +1654,10 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the NS LCM - operation occurrence resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the NS LCM operation + occurrence resource. Typically, this is due to the fact that the NS LCM operation occurrence is not in FAILED_TEMP state, or another error handling action is starting, such as retry @@ -1630,7 +1677,7 @@ paths: # Cancel operation task # ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.15 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.15 parameters: - name: nsLcmOpOccId description: > @@ -1645,13 +1692,22 @@ paths: post: summary: Cancel a NS lifecycle management operation occurrence. description: > - The POST method initiates canceling an ongoing NS lifecycle - management operation while it is being executed or - rolled back, i.e. the related "NS LCM operation occurrence" is - either in "PROCESSING" or "ROLLING_BACK" state. - This method shall follow the provisions specified in the - Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query parameters, - request and response data structures, and response codes. + The POST method initiates cancelling an ongoing NS lifecycle management operation while it is being executed or + rolled back, i.e. the related "NS LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. + This method shall follow the provisions specified in the Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Before returning the "202 Accepted" response, the NFVO shall update the "isCancelPending" and "cancelMode" + attributes in the representation of the parent resource according to the provisions in clause 6.5.2.3. + In case of success of processing the asynchronous request: + 1) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state, the "operationState" + attribute in the representation of the parent resource shall be changed to "FAILED_TEMP". + In both cases, the NFVO shall update the "isCancelPending" and "cancelMode" attributes in the representation of the + parent resource according to the provisions in clause 6.5.2.3 to reflect the new status, and the applicable "result" + notification according to clause 6.6.2.2 shall be emitted to indicate that the execution of the underlying NS LCM + operation occurrence has temporarily failed. + Due to race conditions, the processing of the actual operation that is to be cancelled may eventually still succeed, in + which case the "operationState" attribute in the representation of the parent resource shall represent the result of that + operation, rather than the result of the cancellation. parameters: - name: Accept description: > @@ -1694,8 +1750,9 @@ paths: description: > 202 ACCEPTED - The request has been accepted for processing, but - processing has not been completed. + Shall be returned when the request has been + accepted for processing, but processing has not been + completed. The response shall have an empty entity body. $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: @@ -1708,17 +1765,18 @@ paths: description: > 404 NOT FOUND - Error: The API producer did not find a current - representation for the target resource or is not willing - to disclose that one exists. + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. The general cause for this error and its handling is - specified in clause 6.4 of ETSI GS NFV-SOL 013, + specified in clause 6.4 of ETSI GS NFV-SOL 013 [16], including rules for the presence of the response body. - Specifically, in case of this task resource, the reason - can also be that the task is not supported for the NS - LCM operation occurrence represented by the parent - resource, and that the task resource consequently - does not exist. + Specifically, in case of this task resource, the + response code 404 shall also be returned if the task is + not supported for the NS LCM operation occurrence + represented by the parent resource, which means that + the task resource consequently does not exist. In this case, the response body shall be present, and shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about @@ -1732,9 +1790,10 @@ paths: description: > 409 CONFLICT - Error: The operation cannot be executed currently, - due to a conflict with the state of the NS LCM - operation occurrence resource. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the NS LCM operation + occurrence resource. Typically, this is due to the fact that the operation occurrence is not in STARTING, PROCESSING or ROLLING_BACK state. @@ -1807,11 +1866,13 @@ paths: description: > 201 Created - The subscription has been created successfully. - The response body shall contain a representation of - the created subscription resource. + Shall be returned when the subscription has been + created successfully. + The response body shall contain a representation + of the created "Individual subscription" resource. The HTTP response shall include a "Location:" - HTTP header that points to the created subscription resource. + HTTP header that points to the created + "Individual subscription" resource. schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" headers: @@ -1839,12 +1900,13 @@ paths: description: > 303 SEE OTHER - A subscription with the same callbackURI and the - same filter already exits and the policy of the - NFVO is to not create redundant subscriptions. + Shall be returned if a subscription with the same + callback URI and the same filter already exits and + the policy of the NFVO is to not create redundant + subscriptions. The HTTP response shall include a "Location" HTTP header that contains the resource URI of - the existing subscription resource. + the existing "Individual subscription" resource. The response body shall be empty. $ref: "../responses/SOL005_resp.yaml#/responses/303" 400: @@ -1859,6 +1921,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: @@ -1905,12 +1969,22 @@ paths: description: > 200 OK - The list of subscriptions has been queried successfully. - The response body shall contain the representations of all active - subscriptions of the functional block that invokes the method. - If the NFVO 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. + Shall be returned when the list of subscriptions has + been queried successfully. + The response body shall contain in an array the + representations of all active subscriptions of the + functional block that invokes the method, i.e. zero or + more representations of lifecycle change notification + subscriptions as defined in clause 6.5.2.4. + 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 [16]. + If the NFVO supports alternative 2 (paging) according + to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] 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 [16]. headers: Content-Type: type: string @@ -2005,9 +2079,10 @@ paths: description: > 200 OK - The operation has completed successfully. + Shall be returned when information about an individual + subscription has been read successfully. The response body shall contain a representation of - the subscription resource. + the "Individual subscription" resource. schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" headers: @@ -2055,12 +2130,17 @@ paths: The DELETE method terminates an individual subscription. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2. + As the result of successfully executing this method, the "Individual subscription" resource shall not exist any longer. + This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed API + consumer for a certain time period after the deletion. responses: 204: description: > 204 NO CONTENT - The subscription resource has been deleted successfully. + Shall be returned when the "Individual subscription" + resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index 35c4b73..75f7a08 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -35,9 +35,10 @@ paths: post: summary: Notify about NS lifecycle change description: > - The POST method delivers a notification from the server to the client. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: NsLcmOperationOccurrenceNotification description: > @@ -116,10 +117,11 @@ paths: summary: Test the notification endpoint. description: > Query NS Instances. - - The GET method queries information about multiple NS instances. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. + during subscription. + This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and 6.4.18.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -183,10 +185,10 @@ paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification': post: summary: Notify about NS lifecycle change - description: > - The POST method delivers a notification from the server to the client. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: NsIdentifierCreationNotification description: > @@ -266,9 +268,10 @@ paths: description: > Query NS Instances. - The GET method queries information about multiple NS instances. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. + during subscription. + This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and 6.4.18.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -333,9 +336,10 @@ paths: post: summary: Notify about NS lifecycle change description: > - The POST method delivers a notification from the server to the client. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. + This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: NsIdentifierDeletionNotification @@ -416,9 +420,10 @@ paths: description: > Query NS Instances. - The GET method queries information about multiple NS instances. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. + during subscription. + This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and 6.4.18.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > -- GitLab From 6e601481529628439f8b80c022e0c3bb553bc0db Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Fri, 28 Feb 2020 13:09:14 +0100 Subject: [PATCH 19/32] SOL005_144 & SOL005_166 API version Updated --- src/SOL005/NSFaultManagement/NSFaultManagement.yaml | 2 +- src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 11159ca..4fdb074 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Fault Management Interface" description: > SOL005 - NS Fault Management Interface diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 4e19c10..9d4114e 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL005 - VNF Package Management Interface description: > SOL005 - VNF Package Management Interface @@ -19,7 +19,7 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.6.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf -basePath: /vnfpkgm/v1 +basePath: /vnfpkgm/v2 schemes: - https consumes: -- GitLab From b3245ab9c1ce7f88e3f5c05805443adcfe7c3326 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Fri, 28 Feb 2020 14:12:24 +0100 Subject: [PATCH 20/32] SOL005_146,148,149,151,152,154.155,157 & 158 Updated --- .../NSFaultManagement/NSFaultManagement.yaml | 74 +++++++++++++------ .../NSFaultManagementNotification.yaml | 73 ++++++++++++++++-- 2 files changed, 119 insertions(+), 28 deletions(-) diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 4fdb074..e40d2c1 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -37,7 +37,7 @@ paths: # Alarms # ############################################################################### '/alarms': - #ETSI GS NFV-SOL 005 V2.6.1 location: 8.4.2 + #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.2 parameters: - name: Authorization description: > @@ -57,7 +57,9 @@ paths: description: > Get Alarm List. - The client can use this method to retrieve information about the alarm list. + The API consumer can use this method to retrieve information about the alarm list. + This method shall follow the provisions specified in the Tables 8.4.2.3.2-1 and 8.4.2.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: filter in: query @@ -155,7 +157,7 @@ paths: # Individual alarm # ############################################################################### '/alarms/{alarmId}': - #ETSI GS NFV-SOL 005 V2.6.1 location: 8.4.3 + #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.3 parameters: - name: alarmId description: > @@ -183,7 +185,9 @@ paths: get: summary: Read individual alarm. description: > - The client can use this method to read an individual alarm. + The API consumer can use this method to read an individual alarm. + This method shall follow the provisions specified in the Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -250,6 +254,8 @@ paths: Acknowledge Alarm This method modifies an individual alarm resource. + This method shall follow the provisions specified in the Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: body in: body @@ -282,7 +288,7 @@ paths: Shall be returned when the request has been accepted and completed. The response body shall contain attribute modifications for an 'Individual alarm' - resource (see clause 8.5.2.4). + resource (see clause 8.5.2.8). headers: Content-Type: description: The MIME type of the body of the response. @@ -318,6 +324,20 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the "Individual alarm" + resource. + Typically, this is due to the fact that the alarm is + already in the state that is requested to be set (such + as trying to acknowledge an already-acknowledged + alarm). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" 412: $ref: "../responses/SOL005_resp.yaml#/responses/412" @@ -424,6 +444,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: @@ -433,13 +455,10 @@ paths: description: > Query Subscription Information - The client can use this method to retrieve the list of active subscriptions - for alarms related to a NS subscribed by the client. - It can be used e.g. for resynchronization after error situations. - - This method shall follow the provisions specified in the Tables 8.4.4.3.2-1 and 8.4.4.3.2-2 - for URI query parameters, request and response data structures, and response codes. - Table 8.4.4.3.2-1: URI query parameters supported. + The API consumer can use this method to retrieve the list of active subscriptions for alarms related to an NS subscribed + by the API consumer. It can be used e.g. for resynchronization after error situations. + This method shall follow the provisions specified in the Tables 8.4.4.3.2-1 and 8.4.4.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: filter in: query @@ -477,15 +496,23 @@ paths: description: > 200 OK - The list of subscriptions has been queried successfully. - The response body shall contain in an array the representations of all active subscriptions of the - functional block that invokes the method, i.e. zero or more representations of FM subscriptions, as + Shall be returned when the list of subscriptions has + been queried successfully. + The response body shall contain in an array the + representations of all active subscriptions of the + functional block that invokes the method, i.e. zero or + more representations of FM subscriptions, as defined in clause 8.5.2.3. - 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 NFVO 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. + 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 [16]. + If the NFVO supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI + GS NFV-SOL 013 [16] 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 [16]. headers: Content-Type: description: The MIME type of the body of the response. @@ -567,9 +594,10 @@ paths: description: > Query Subscription Information - The client can use this method for reading an individual subscription for alarms related to NSs subscribed - by the client. This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 - for URI query parameters, request and response data structures, and response codes + The API consumer can use this method for reading an individual subscription for alarms related to NSs subscribed by + the API consumer. + This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > diff --git a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml index 1a314b5..833c398 100644 --- a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -40,7 +40,7 @@ paths: parameters: - name: alarmNotification description: > - Information of a NS alarm. + Information of an NS alarm. in: body required: true schema: @@ -104,9 +104,73 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" + get: + summary: Test the notification endpoint. + description: > + The GET method allows the server to test the notification endpoint that is provided by + the API consumer, e.g. during subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + 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 + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': - #ETSI GS NFV-SOL 005 V2.6.1 location: 8.4.6 + #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.6 post: summary: Notify about NS alarms description: > @@ -114,7 +178,7 @@ paths: parameters: - name: alarmClearedNotification description: > - Information of the clearance of a NS alarm. + Information of the clearance of an NS alarm. in: body required: true schema: @@ -315,12 +379,11 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" - get: summary: Test the notification endpoint. description: > The GET method allows the server to test the notification endpoint that is provided by - the client, e.g. during subscription. + the API consumer, e.g. during subscription. parameters: - name: Accept description: > -- GitLab From 06e5d40b789d5e9c2436c65927b5ab08833ce232 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Mon, 2 Mar 2020 09:59:43 +0100 Subject: [PATCH 21/32] SOL005_168,169,171.172,173,175,176,177,179,180,181,183,185,187,189,190 & 191 Updated --- .../VNFPackageManagement.yaml | 931 ++++++++++++++---- .../VNFPackageManagementNotification.yaml | 8 +- 2 files changed, 764 insertions(+), 175 deletions(-) diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 9d4114e..117dce5 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -37,7 +37,7 @@ paths: # VNF Packages # ############################################################################### '/vnf_packages': - #ETSI GS NFV-SOL 005 V2.6.1 location: 9.4.2 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.2 parameters: - name: Authorization description: > @@ -52,6 +52,92 @@ paths: in: header required: true type: string + post: + summary: Create a new individual VNF package resource. + description: > + The POST method creates a new individual VNF package resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + 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: body + in: body + required: true + schema: + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" + description: > + IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2 + responses: + 201: + description: > + 201 Created + + Shall be returned when an "Individual VNF + package" resource has been created successfully. + The response body shall contain a representation of + the new individual VNF package resource, as + defined in clause 9.5.2.5. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + individual VNF package resource. + schema: + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + headers: + Content-Type: + type: string + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message + body. + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/responses/504" get: summary: Query VNF packages information. description: > @@ -106,6 +192,7 @@ paths: - additionalArtifacts - userDefinedData - checksum + - onboardingFailureDetails - name: nextpage_opaque_marker in: query required: false @@ -181,10 +268,35 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" - post: - summary: Create a new individual VNF package resource. + ############################################################################### + # Individual VNF Package # + ############################################################################### + '/vnf_packages/{vnfPkgId}': + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.3 + parameters: + - name: vnfPkgId + description: > + Identifier of the VNF package. The identifier is allocated by the NFVO. + in: path + type: string + required: true + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + get: + summary: Read information about an individual VNF package. description: > - The POST method creates a new individual VNF package resource. + The GET method reads the information of a VNF package. parameters: - name: Accept description: > @@ -193,6 +305,69 @@ paths: in: header required: true type: string + responses: + 200: + description: > + 200 OK + + Shall be returned when information of the VNF package has been read successfully. + The response body shall contain the VNF package info representation defined in clause 9.5.2.5. + schema: + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + headers: + Content-Type: + type: string + description: > + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + patch: + summary: Update information about an individual VNF package. + description: > + "The PATCH method updates the information of a VNF package." + + "This method shall follow the provisions specified in the + Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters, + request and response data structures, and response codes." + parameters: + - name: body + in: body + required: true + schema: + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" + description: > + Parameters for VNF package information modifications. - name: Content-Type description: > The MIME type of the body of the request. @@ -200,34 +375,173 @@ paths: in: header required: true type: string - - name: body - in: body - required: true + responses: + 200: + description: > + 200 OK + + Shall be returned when the operation has been completed successfully. + The response body shall contain attribute modifications for an "Individual VNF package" resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" + properties: + VnfPkgInfoModifications: + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Delete an individual VNF package. + description: > + The DELETE method deletes an individual VNF Package resource. + responses: + 204: description: > - IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2 + 204 No Content + + The VNF package has been deleted successfully. + The response body shall be empty. + headers: + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + + ############################################################################### + # VNFD in an individual VNF package # + ############################################################################### + '/vnf_packages/{vnfPkgId}/vnfd': + #ETSI GS NFV-SOL 005 V2.6.1 location: 9.4.4 + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + - name: vnfPkgId + description: > + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. + in: path + type: string + required: true + get: + summary: Read VNFD of an on-boarded VNF package. + description: > + The GET method reads the content of the VNFD within a VNF package. + + The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the files + representing the VNFD and information necessary to navigate the ZIP file and to identify the file that is the entry point + for parsing the VNFD and (if requested) further security information are included. This means that the structure of the + ZIP archive shall correspond to the directory structure used in the VNF package and that the archive shall contain the + following files from the package: + • TOSCA.meta (if available in the package). + • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta or available as a file with + the extension ".yml" or ".yaml" from the root of the archive). + Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file. + • The related security information, if the "include_signatures" URI parameter is provided, as follows: + - the manifest file; + - the singleton certificate file in the root of the VNF package (if available in the package); + - the signing certificates of the individual files included in the ZIP archive (if available in the package); + - the signatures of the individual files (if available in the package). + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: include_signatures + in: query + required: false + type: string + description: > + If this parameter is provided, the NFVO shall include in the ZIP archive the + security information as specified above. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. responses: - 201: + 200: description: > - 201 Created + 200 OK - An individual VNF package resource has been created successfully. - The response body shall contain a representation of - the new individual VNF package resource, as defined - in clause 9.5.2.4. - The HTTP response shall include a "Location" HTTP - header that contains the resource URI of the individual - VNF package resource. - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + Shall be returned when the content of the VNFD has been read successfully. + The payload body shall contain a copy of the file representing the VNFD or a ZIP file that + contains the file or multiple files representing the VNFD, as specified above. + The "Content-Type" HTTP header shall be set according to the format of the returned file, + i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. headers: Content-Type: + description: The MIME type of the body of the response. type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. maximum: 1 minimum: 1 WWW-Authenticate: @@ -244,18 +558,33 @@ paths: type: string maximum: 1 minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + ############################################################################### - # Individual VNF Package # + # Access Configuration for external artifacts # ############################################################################### - '/vnf_packages/{vnfPkgId}': - #ETSI GS NFV-SOL 005 V2.6.1 location: 9.4.3 + '/vnf_packages/{vnfPkgId}/ext_artifacts_access': + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4a parameters: - - name: vnfPkgId - description: > - Identifier of the VNF package. The identifier is allocated by the NFVO. - in: path - type: string - required: true - name: Authorization description: > The authorization token for the request. @@ -269,15 +598,25 @@ paths: in: header required: true type: string + - name: vnfPkgId + description: > + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new Individual VNF package resource. + in: path + required: true + type: string get: - summary: Read information about an individual VNF package. + summary: Get the content of external VNF package artifacts. description: > - The GET method reads the information of a VNF package. + The GET method reads the access configuration information that is used by the NFVO to get the content of external + VNF package artifacts. + This method shall follow the provisions specified in the Tables 9.4.4a.3.2-1 and 9.4.4a.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 in: header required: true type: string @@ -286,16 +625,16 @@ paths: description: > 200 OK - Shall be returned when information of the VNF package has been read successfully. - The response body shall contain the VNF package info representation defined in clause 9.5.2.5. - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + Shall be returned when the access configuration + information has been read successfully. + If no information has been provided previously, an + empty array shall be returned. headers: Content-Type: + description: The MIME type of the body of the response. type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. + maximum: 1 + minimum: 1 WWW-Authenticate: type: string description: > @@ -310,45 +649,12 @@ paths: type: string maximum: 1 minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + schema: + properties: + ExternalArtifactsAccessConfig : + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" 416: $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - delete: - summary: Delete an individual VNF package. - description: > - The DELETE method deletes an individual VNF Package resource. - responses: - 204: - description: > - 204 No Content - - The VNF package has been deleted successfully. - The response body shall be empty. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" 401: @@ -361,29 +667,30 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" - - patch: - summary: Update information about an individual VNF package. + put: + summary: Download the content of external VNF package artifacts. description: > - "The PATCH method updates the information of a VNF package." - - "This method shall follow the provisions specified in the - Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters, - request and response data structures, and response codes." + The PUT method provides the access configuration information for the NFVO to download the content of external VNF + package artifacts. + As precondition for invoking this method, the individual VNF package resource shall have been created, and the value + of "onboardingState" attribute shall equal to "CREATED" or "ERROR". + The resource representation in the payload body of the PUT request shall replace the current state of the resource. + This method shall follow the provisions specified in the Tables 9.4.4a.3.3-1 and 9.4.4a.3.3-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: body in: body + description: > + The payload body contains the access configuration information + based on which the NFVO can obtain the external VNF package + artifact files. required: true schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" - description: > - Parameters for VNF package information modifications. + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" - name: Content-Type description: > The MIME type of the body of the request. @@ -396,8 +703,15 @@ paths: description: > 200 OK - Shall be returned when the operation has been completed successfully. - The response body shall contain attribute modifications for an "Individual VNF package" resource. + Shall be returned when the attribute + "onboardingState" = "CREATED" or when the + attribute "onboardingState" = "ERROR" and the + VNF package has not been uploaded + successfully previously, to indicate that the + access configuration information has been stored + successfully by the NFVO. + The response body shall contain a representation + of the state of the resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -420,10 +734,10 @@ paths: minimum: 1 schema: properties: - VnfPkgInfoModifications: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" + ExternalArtifactsAccessConfig: + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" + 202: + $ref: "../responses/SOL005_resp.yaml#/responses/202" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" 401: @@ -436,18 +750,20 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" 416: $ref: "../responses/SOL005_resp.yaml#/responses/416" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" - + ############################################################################### - # VNFD in an individual VNF package # + # Manifest in an individual VNF package # ############################################################################### - '/vnf_packages/{vnfPkgId}/vnfd': - #ETSI GS NFV-SOL 005 V2.6.1 location: 9.4.4 + '/vnf_packages/{vnfPkgId}/manifest': + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4b parameters: - name: Authorization description: > @@ -465,29 +781,14 @@ paths: - name: vnfPkgId description: > Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. in: path type: string required: true get: - summary: Read VNFD of an on-boarded VNF package. description: > - The GET method reads the content of the VNFD within a VNF package. - - The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the - form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file, - either that file or a ZIP file embedding that file shall be returned. - The selection of the format is controlled by the "Accept" HTTP header passed in the GET request. - • If the "Accept" header contains only "text/plain" and the VNFD is implemented as a single file, the file shall - be returned; otherwise, an error message shall be returned. - • If the "Accept" header contains only "application/zip", the single file or the multiple files that make up the - VNFD shall be returned embedded in a ZIP file. - • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the - format to return for a single-file VNFD; for a multi-file VNFD, a ZIP file shall be returned. - The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the YAML files - representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point - for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included. - This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The GET method reads the content of the manifest within a VNF package. parameters: - name: Accept description: > @@ -498,16 +799,39 @@ paths: enum: - text/plain - application/zip + - name: include_signatures + in: query + required: false + type: string + description: > + If this parameter is provided, the NFVO shall return the manifest and related security + information (such as certificate) in a ZIP archive. + If this parameter is not given, the NFVO shall provide only a copy of the manifest + file. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. responses: 200: description: > 200 OK - Shall be returned when the content of the VNFD has been read successfully. - The payload body shall contain a copy of the file representing the VNFD or a ZIP file that - contains the file or multiple files representing the VNFD, as specified above. - The "Content-Type" HTTP header shall be set according to the format of the returned file, - i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. + Shall be returned when the content of the manifest has + been read successfully. + If the "include_signatures" URI query parameter was + absent in the request, or if the manifest file has all + security-related information embedded (i.e. there is no + separate certificate file), the payload body shall contain a + copy of the manifest file of the VNF package, and + the "Content-Type" HTTP header shall be set to + "text/plain". + If the "include_signatures" URI query parameter was + present in the related request and the manifest file does + not have all the security-related information embedded + (i.e. there is a separate certificate file), the "Content-Type" + HTTP header shall be set to "application/zip and the + payload body shall contain a ZIP archive which includes: + - a copy of the manifest file of the VNF package + - a copy of the related individual certificate file. headers: Content-Type: description: The MIME type of the body of the response. @@ -577,7 +901,13 @@ paths: get: summary: Fetch an on-boarded VNF package. description: > - The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the + NFVO. + The content of the package is provided as onboarded, i.e. depending on the security option used, the CSAR or the + CSAR wrapped in a ZIP archive together with an external signature is returned, as defined in clause 5.1 of ETSI + GS NFV-SOL 004 [5]. + NOTE: Information about the applicable security option can be obtained by evaluating the + "packageSecurityOption" attribute in the "VnfPkgInfo" structure. This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -651,7 +981,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" - put: summary: Upload a VNF package by providing the content of the VNF package. description: > @@ -659,6 +988,13 @@ paths: This method shall follow the provisions specified in the Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters, request and response data structures, and response codes. + Upon start of the upload of the package, the NFVO shall set the "onboardingState" attribute in the "VnfPkgInfo" + structure to "UPLOADING". Upon successful upload of the package, if the package references external artifacts, the + NFVO shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to + "PROCESSING" and shall process the package, which shall include checking package consistency. Upon successful + processing, the NFVO shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during uploading + the package, downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" + attribute to "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". consumes: - multipart/form-data parameters: @@ -683,11 +1019,11 @@ paths: description: > 202 Accepted - The VNF package has been accepted for uploading, but the processing has not been completed. - It is expected to take some time for processing. - The response body shall be empty. - The client can track the uploading progress by receiving the "VnfPackageOnBoardingNotification" - from the NFVO or by reading the status of the individual VNF package resource using the GET method. + Shall be returned when the VNF package has been + accepted for uploading, but the processing has not + been completed. It is expected to take some time + for processing. + The response body shall be empty. See note. headers: Version: description: > @@ -714,19 +1050,227 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" + ############################################################################### + # VNF package artifact # + ############################################################################### + '/vnf_packages/{vnfPkgId}/artifacts': + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.5a + parameters: + - name: vnfPkgId + description: > + Identifier of the on-boarded VNF package. + The identifier is allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. + in: path + type: string + required: true + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + get: + summary: Fetch set of VNF package artifacts. + description: > + The GET method shall return an archive that contains a set of artifacts according to the provisions for + inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. + The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: + • Artifacts that are software images shall be excluded from the archive. + • Artifacts that are external to the VNF package shall be excluded from the archive. + • All additional artifacts included in the VNF package that are MANO artifacts shall be included in the archive, + unless the URI query parameter "exclude_all_mano_artifacts" has been provided, in which case such artifacts + shall be excluded. + • All additional artifacts included in the VNF package that are non-MANO artifacts shall be included in the + archive, unless: + - the URI query parameter "exclude_all_non_mano_artifacts" has been provided, in which case such + artifacts shall be excluded; + - the URI query parameter "select_non_mano_artifact_sets" has been provided and is supported by the + NFVO, in which case only those non-MANO artifacts shall be included whose non-MANO artifact set + identifier matches one of the values of the query parameter. + Package metadata such as manifest file or VNFD shall not be included in the archive. + This method shall follow the provisions specified in the Tables 9.4.5a.3.2-1 and 9.4.5a.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - application/zip + - name: Range + in: header + required: false + type: string + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the archive containing the artifacts. This can + be used to continue an aborted transmission. + If the "Range" header is present in the request and the NFVO + does not support responding to range requests with a 206 + response, it shall return a 200 OK response instead as defined + below. + - name: include_signatures + in: query + required: false + type: string + description: > + If this parameter is provided, the NFVO shall include in the ZIP + archive the individual signatures and, if provided, related + certificates for the included artifacts, in the format in which they + are provided in the VNF package. + If this parameter is not given, the NFVO shall only provide copies + of the artifact files. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + - name: exclude_all_mano_artifacts + in: query + required: false + type: string + description: > + Flag (i.e. parameter without value) that instructs the NFVO to + exclude the set of additional MANO artifacts (i.e. those that are + not images) from the response payload body. + The NFVO shall support this parameter. The VNFM may supply + this parameter. + - name: exclude_all_non_mano_artifacts + in: query + required: false + type: string + description: > + Flag (i.e. parameter without value) that instructs the NFVO to + exclude the set of non-MANO artifacts from the response payload + body. + The NFVO shall support this parameter. The VNFM may supply + this parameter. + - name: select_non_mano_artifact_sets + in: query + required: false + type: string + description: > + Comma-separated list of non-MANO artifact set identifiers for + which the artifacts are to be included in the response body. + The NFVO should support this parameter. If the NFVO does not + support this parameter, it shall ignore it, i.e. provide a response as + if no parameter was provided. The VNFM may supply this + parameter. + responses: + 200: + description: > + 200 OK + Shall be returned when the whole content of the + archive containing the artifact files has been read + successfully. + The payload body shall be a ZIP archive containing + the requested set of artifacts selected according to the + provisions specified above in this clause, and, if the + flag "include_signatures" was provided in the related + request, the applicable signature files and, if available, + the separate certificate files from the VNF package. + The "Content-Type" HTTP header shall be set to + "application/zip". + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 206: + description: > + 206 Partial Content. + + If the NFVO supports range requests, this response + shall be returned when a single consecutive byte + range from the content of the archive that would have + been returned in a "200 OK" response has been read + successfully according to the request. + The response body shall contain the requested part of + the archive. + The "Content-Type" HTTP header shall be set to + "application/zip". + The "Content-Range" HTTP header shall be provided + according to IETF RFC 7233 [10]. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + type: string + 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. + maximum: 1 + minimum: 0 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "../responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "../responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "../responses/SOL005_resp.yaml#/responses/409" + 416: + $ref: "../responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Upload VNF package from URI task # ############################################################################### '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': - #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.6 post: summary: Upload a VNF package by providing the address information of the VNF package. description: > The POST method provides the information for the NFVO to get the content of a VNF package. - This method shall follow the provisions specified in the - Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters, - request and response data structures, and response codes. + This method shall follow the provisions specified in the Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Upon start of obtaining the package, the NFVO shall set the "onboardingState" attribute in the "VnfPkgInfo" structure + to "UPLOADING". Upon successfully obtaining the package, if the package references external artifacts, the NFVO + shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to "PROCESSING" and + shall process the package, which shall include checking package consistency. Upon successful processing, the NFVO + shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during obtaining the package, + downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" attribute to + "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". parameters: - name: Accept description: > @@ -800,7 +1344,7 @@ paths: # Individual VNF package artifact # ############################################################################### '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.7 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.7 parameters: - name: vnfPkgId description: > @@ -813,11 +1357,14 @@ paths: required: true - name: artifactPath description: > - Sequence of one or path segments representing the path of the artifact within the VNF package, - relative to the root of the package. - This identifier can be retrieved from the "artifactPath" attribute of the applicable - "additionalArtifacts" entry in the body of the response to a GET request querying the - "Individual VNF package" or the "VNF packages" resource. + For an artifact contained as a file in the VNF package, this variable shall contain a sequence of + one or path segments representing the path of the artifact within the VNF package, relative to + the root of the package. See note 3. + EXAMPLE: foo/bar/m%40ster.sh + For an external artifact represented as a URI in the VNF package manifest, this variable shall + contain a sequence of one or more path segments as synthesized by the NFVO (see + clause 9.5.3.3), representing this artifact. + See note 2 and note 3 in: path type: string required: true @@ -857,16 +1404,44 @@ paths: whole file with a 200 OK response instead. in: header type: string + - name: include_signatures + in: query + required: false + type: string + description: > + If this parameter is provided, the NFVO shall return the artifact and related + security information (such as signature and optional certificate) in a ZIP archive. + If this parameter is not given, the NFVO shall provide only a copy of the artifact + file. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. responses: 200: description: > 200 OK - Shall be returned when the whole content of the artifact file has been read successfully. - The payload body shall contain a copy of the artifact file from the VNF package, - as defined by ETSI GS NFV-SOL 004. - The "Content-Type" HTTP header shall be set according to the content - type of the artifact file. If the content type cannot be determined, the header shall - be set to the value "application/octet-stream. + Shall be returned when the whole content of the + artifact file has been read successfully. + If the "include_signatures" request URI parameter + was not provided in the related request, the payload + body shall contain a copy of the artifact file from the + VNF package, as defined by ETSI + GS NFV-SOL 004 [5], and the "Content-Type" + HTTP header shall be set according to the content + type of the artifact file. If the artifact is encrypted, + the header shall be set to the value + "application/cms" (IETF RFC 7193 [17]). If the + content type cannot be determined, the header shall + be set to the value "application/octet-stream". + If the "include_signatures" request URI parameter + was provided in the related request, the "ContentType" HTTP header shall be set to "application/zip" + and the payload body shall contain a ZIP archive + which includes: + - a copy of the artifact file from the VNF + package, as defined by ETSI + GS NFV-SOL 004 [5]; + - the related security information (individual + signature file and optional related + individual certificate file). headers: Content-Type: description: The MIME type of the body of the response. @@ -891,13 +1466,21 @@ paths: description: > Partial Content. - If the NFVO supports range requests, this response shall be returned when a single consecutive byte - range from the content of the artifact file has been read successfully according to the request. - The response body shall contain the requested part of the artifact file from the VNF package, as defined - by ETSI GS NFV-SOL 004. - The "Content-Type" HTTP header shall be set according to the content type of the artifact file. - If the content type cannot be determined, the header shall be set to the value "application/octet-stream". - The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + If the NFVO supports range requests and the + "include_signatures" request URI parameter was + not present in the related request, this response + shall be returned when a single consecutive byte + range from the content of the artifact file has been + read successfully according to the request. + The response body shall contain the requested part + of the artifact file from the VNF package, as defined + by ETSI GS NFV-SOL 004 [5]. + The "Content-Type" HTTP header shall be set + according to the content type of the artifact file. If + the content type cannot be determined, the header + shall be set to the value "application/octet-stream". + The "Content-Range" HTTP header shall be + provided according to IETF RFC 7233 [10]. headers: Content-Range: type: string @@ -941,7 +1524,7 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.8 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.8 parameters: - name: Authorization description: > @@ -992,17 +1575,19 @@ paths: schema: $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest" description: > - Representation of the created subscription resource. - The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + Details of the subscription to be created. responses: 201: description: > 201 Created - Shall be returned when the subscription has been created successfully. - The response body shall contain a representation of the created subscription resource. - The HTTP response shall include a "Location" HTTP header that points to the created subscription resource. + Shall be returned when the subscription has been + created successfully. + The response body shall contain a representation + of the created "Individual subscription" resource. + The HTTP response shall include a "Location" + HTTP header that points to the created + subscription resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1024,9 +1609,7 @@ paths: maximum: 1 minimum: 1 schema: - type: array - items: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" 303: $ref: "../responses/SOL005_resp.yaml#/responses/303" 400: @@ -1043,6 +1626,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/406" 416: $ref: "../responses/SOL005_resp.yaml#/responses/416" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: @@ -1052,8 +1637,7 @@ paths: description: > The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations. - This method shall follow the provisions specified in the - Tables 9.4.7.8.2-1 and 9.4.8.3.2-2 for URI query parameters, + This method shall follow the provisions specified in the Tables 9.4.8.3.2-1 and 9.4.8.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: filter @@ -1184,8 +1768,10 @@ paths: description: > 200 OK - Shall be returned when information about an individual subscription has been read successfully. - The response body shall contain a representation of the subscription resource. + Shall be returned when information about an + individual subscription has been read successfully. + The response body shall contain a representation of + the "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1240,7 +1826,10 @@ paths: description: > No Content - Shall be returned when the subscription resource washas been deleted successfully. + Shall be returned when information about an + individual subscription has been read successfully. + The response body shall contain a representation of + the "Individual subscription" resource. headers: WWW-Authenticate: type: string diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 5054757..3568fe3 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -102,8 +102,8 @@ paths: get: summary: Test the notification endpoint. description: > - The GET method allows the server to test the notification endpoint that is provided by - the client, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. + during subscription. parameters: - name: Accept description: > @@ -243,8 +243,8 @@ paths: get: summary: Test the notification endpoint description: > - The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during - subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. + during subscription. parameters: - name: Accept description: > -- GitLab From 7d77cf2235538508f9753c57449374777a5d9f75 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Mon, 2 Mar 2020 11:00:39 +0100 Subject: [PATCH 22/32] SOL005_196 added --- .../VNFPackageManagement.yaml | 2 +- .../SOL005VNFPackageManagement_def.yaml | 99 ++++++++++++++++++- 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 117dce5..e9da66d 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -651,7 +651,7 @@ paths: minimum: 1 schema: properties: - ExternalArtifactsAccessConfig : + ExternalArtifactsAccessConfig: $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" 416: $ref: "../responses/SOL005_resp.yaml#/responses/416" diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 1831006..0563b69 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -537,4 +537,101 @@ definitions: - PKG_DELETE: The VNF package has been deleted. enum: - OP_STATE_CHANGE - - PKG_DELETE \ No newline at end of file + - PKG_DELETE + + ExternalArtifactsAccessConfig: + description: > + This type represents the access configuration information for downloading external VNF package artifacts. The NFVO + can obtain the external VNF package artifact file through the information provided in this structure, together with + information provided in the manifest / VNFD. The data structure shall comply with the provisions defined in + Table 9.5.2.10-1. If the data structure is part of a response body, security-sensitive attributes shall be excluded as + specified in Table 9.5.2.10-1. + type: object + properties: + artifact: + description: > + Access configuration information for an external artefact. + type: object + required: + - artifactUri + properties: + artifactUri: + description: > + The artifactUri attribute as defined in the + VNF package manifest that identifies the + external artifact for which the access + configuration information is provided, and + that provides the default download location + for this artifact. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + overrideUri: + description: > + The Uri from which the external artifact can + be downloaded. If this attribute is present, + the NFVO shall download from this + address. If this attribute is not present, the + NFVO shall download from the address + provided in "artifactUri" + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + authType: + description: > + Defines the type of authentication / + authorization for downloading the VNF + package. + Permitted values: + - BASIC: Only the "username" and + "password" attributes shall be + present. + - OAUTH2_CLIENT_CREDENTIAL + S: Only the + "paramsOauth2ClientCredentials" + attribute shall be present. + This attribute shall not be present if no + credentials are provided for the artifact. + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + username: + description: > + User name to be used for authentication. + type: string + password: + description: > + Password to be used for authentication. + Shall not be present in response bodies. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization + using OAUTH2_CLIENT_CREDENTIALS. + type: object + required: + - clientId + - clientPassword + - tokenEndpoint + properties: + clientId: + description: > + Client identifier to be used in the access + token request of the OAuth 2.0 client + credentials grant type. + type: string + clientPassword: + description: > + Client password to be used in the access + token request of the OAuth 2.0 client + credentials grant type. Shall not be present + in response bodies. + type: string + tokenEndpoint: + description: > + Client password to be used in the access + token request of the OAuth 2.0 client + credentials grant type. Shall not be present + in response bodies. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + + + + \ No newline at end of file -- GitLab From a2aa22fabbad671eb9e07af1d1ee813e147f9a76 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Mon, 2 Mar 2020 12:53:27 +0100 Subject: [PATCH 23/32] SOL005_192,193,194,195,197,198,199,200 & 201 --- .../SOL005VNFPackageManagement_def.yaml | 207 ++++++++++++++++-- ...5VNFPackageManagementNotification_def.yaml | 28 ++- 2 files changed, 209 insertions(+), 26 deletions(-) diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 0563b69..22cdea7 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -3,9 +3,12 @@ definitions: type: object required: - id + - packageSecurityOption - onboardingState - operationalState - usageState + - vnfmInfo + - _links properties: id: description: > @@ -45,12 +48,36 @@ definitions: present after the VNF package content has been on-boarded and absent otherwise. $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" + compatibleSpecificationVersions: + description: > + Indicates which versions of the ETSI + GS NFV-SOL 004 [5] specification the + package complies to, as defined in the + manifest of the package. Each entry shall + be formatted as defined in clause 4.3.2 of + ETSI GS NFV-SOL 004 [5]. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" checksum: description: > Checksum of the on-boarded VNF package. It shall be present after the VNF package content has been on-boarded and absent otherwise. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + packageSecurityOption: + description: > + Signals the security option used by the + package as defined in clause 5.1 of ETSI + GS NFV-SOL 004 [5]. + Valid values: OPTION_1, OPTION_2 + type: string + enum: + - OPTION_1 + - OPTION_2 + signingCertificate: + description: > + The singleton signing certificate if it is + included as a file in the VNF package. + type: string softwareImages: description: > Information about VNF package artifacts that are software images. @@ -83,10 +110,31 @@ definitions: description: > Usage state of the VNF package. $ref: "#/definitions/PackageUsageStateType" + vnfmInfo: + description: > + Specifies VNFMs compatible with the VNF. + This information is copied from the VNFD. + See note 4. + type: array + items: + type: string userDefinedData: description: > Usage state of the VNF package. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + onboardingFailureDetails: + description: > + Failure details of current onboarding + procedure. See clause 6.3 of ETSI + GS NFV-SOL 013 [16] for the details of + "ProblemDetails" structure. + If "onboardingState" is "ERROR", this + attribute shall be present and contain error + information (such as failed onboarding or + processing operation, affected artifact, + etc.), unless it has been requested to be + excluded via an attribute selector. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" _links: type: object description: > @@ -94,6 +142,7 @@ definitions: required: - self - packageContent + - vnfd properties: self: description: > @@ -113,21 +162,71 @@ definitions: This type represents an artifact other than a software image which is contained in a VNF package. It shall comply with provisions defined in Table 9.5.3.3-1. required: - - artifactPath + - isEncrypted - checksum type: object properties: artifactPath: description: > - Path in the VNF package, which identifies the artifact and also allows to access a copy of the artifact. - The value of this attribute shall start with the name of the first segment in the path, - i.e. it shall not be prefixed by path separator characters such as "." and "/". - EXAMPLE: foo/bar/run.sh + Path which identifies the artifact and also allows to + access a copy of the artifact. + For an artifact contained as a file in the VNF package, + this attribute shall be present, and the value of this + attribute shall start with the name of the first segment in + the path in the package, i.e. it shall not be prefixed by + path separator characters such as "." and "/". + EXAMPLE: foo/bar/m@ster + For an external artifact represented as a URI in the VNF + descriptor, this attribute shall be present if the artifact has + been downloaded by the NFVO and shall be absent + otherwise. If present, it shall contain the artifactPath + under which the artifact can be obtained using the + "Individual artifact in a VNF package" resource defined in + clause 9.4.7. It is the responsibility of the NFVO to + synthesize this path in a manner that avoids any collision + of the synthesized artifact path with the paths and names + of artifacts included in the package. $ref: "../../definitions/SOL005_def.yaml#/definitions/String" + artifactURI: + description: > + URI of the artifact as defined in the VNF package + manifest. Shall be present if the artifact is external to the + package and shall be absent otherwise. + EXAMPLE: https://example.com/m%40ster.sh + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" checksum: description: > Checksum of the artifact file. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + artifactClassification: + description: > + Marks specific types of artifacts as defined in the VNF + package. If none of the specific classes listed below + applies, the attribute shall not be present. + Valid values: + - HISTORY: a history artifact as per clause 4.3.3 + in ETSI GS NFV-SOL 004 [5] + - TESTING: a testing artifact as per clause 4.3.4 + in ETSI GS NFV-SOL 004 [5] + - LICENSE: a license artifact as per clause 4.3.5 + in ETSI GS NFV-SOL 004 [5] + type: string + enum: + - HISTORY + - TESTING + - LICENSE + isEncrypted: + description: > + Reflects whether the artifact is encrypted (true) or not (false). + type: boolean + nonManoArtifactSetId: + description: > + Non-MANO artifact set identifier of the non-MANO artifact + set to which the artifact belongs, as defined in + clause 4.3.7 of ETSI GS NFV-SOL 004 [5]. Shall be + provided if the artifact is a non-MANO artifact, and shall + be omitted otherwise. + type: string metadata: description: > The metadata of the artifact that are available in the @@ -162,6 +261,7 @@ definitions: - provider - version - checksum + - isEncrypted - containerFormat - diskFormat - createdAt @@ -192,6 +292,10 @@ definitions: description: > Checksum of the software image file. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the image is encrypted (true) or not (false). + type: boolean containerFormat: description: > Container format indicates whether the software image @@ -302,12 +406,14 @@ definitions: - UPLOADING: The associated VNF package content is being uploaded. - PROCESSING: The associated VNF package content is being processed, e.g. validation. - ONBOARDED: The associated VNF package content is successfully on-boarded. + - ERROR: There was an error during upload of the VNF package content or external artifacts, or during VNF package processing. type: string enum: - CREATED - UPLOADING - PROCESSING - ONBOARDED + - ERROR PackageUsageStateType: type: "string" description: > @@ -343,13 +449,78 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" UploadVnfPkgFromUriRequest: - type: "object" - properties: - userDefinedData: - $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" description: > - "The payload body contains the address information based on - which the NFVO can obtain the content of the VNF package" + This type represents the request parameters for uploading the content of a VNF package. The NFVO can obtain the + VNF package content through the information provided in the request parameters. It shall comply with the provisions + defined in Table 9.5.2.4-1. + type: object + required: + - addressInformation + properties: + addressInformation: + description: > + Address information of the VNF package + content. The NFVO can use this address to + obtain the VNF package + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + authType: + description: > + Defines the type of authentication / + authorization for downloading the VNF + package. + Permitted values: + - BASIC: Only the "username" and + "password" attributes shall be + present. + - OAUTH2_CLIENT_CREDENTIAL + S: Only the + "paramsOauth2ClientCredentials" + attribute shall be present. + This attribute shall not be present if no + credentials are provided for the artifact. + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + username: + description: > + User name to be used for authentication. + type: string + password: + description: > + Password to be used for authentication. + Shall not be present in response bodies. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization + using OAuth 2.0. + type: object + required: + - clientId + - clientPassword + - tokenEndpoint + properties: + clientId: + description: > + Client identifier to be used in the access + token request of the OAuth 2.0 client + credentials grant type. + type: string + clientPassword: + description: > + Client password to be used in the access + token request of the OAuth 2.0 client + credentials grant type. Shall not be present + in response bodies. + type: string + tokenEndpoint: + description: > + Client password to be used in the access + token request of the OAuth 2.0 client + credentials grant type. Shall not be present + in response bodies. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" PkgmSubscription: description: > @@ -487,7 +658,6 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" - vnfdId: description: > Match VNF packages with a VNFD identifier @@ -527,6 +697,13 @@ definitions: type: array items: $ref: "#/definitions/PackageUsageStateType" + vnfmInfo: + description: > + Match strings that specify VNFMs compatible with the VNF. See Table 9.5.2.5-1. + type: array + items: + type: string + PackageChangeType: type: string @@ -630,8 +807,4 @@ definitions: token request of the OAuth 2.0 client credentials grant type. Shall not be present in response bodies. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" - - - - \ No newline at end of file + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml index ef9a9cf..11c6f48 100644 --- a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml +++ b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml @@ -16,6 +16,7 @@ definitions: - timeStamp - vnfPkgId - vnfdId + - vnfmInfo - _links properties: id: @@ -52,6 +53,14 @@ definitions: unique way. It is copied from the VNFD of the on-boarded VNF package. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfmInfo: + description: > + Specifies VNFMs compatible with the VNF. This + information is copied from the VNFD. + See Table 9.5.2.5-1. + type: array + items: + type: string _links: description: > Links to resources related to this notification. @@ -59,15 +68,16 @@ definitions: VnfPackageChangeNotification: description: > - This type represents a VNF package management notification, which informs the receiver of a change of - the status in an on-boarded VNF package. Only changes in the "operationalState" attribute of an on-boarded - VNF package and the deletion of the VNF package will be reported. Change in the "usageState" and "onboardingState" - attributes are not reported. The notification shall comply with the provisions defined in Table 9.5.2.9-1. - The support of this notification is mandatory. The notification shall be triggered by the NFVO when there is - a change in the status of an onboarded VNF package, as follows. - - The "operationalState" attribute of a VNF package has changed, and the "onboardingState" attribute of the - package has the value "ONBOARDED". - - The on-boarded VNF package has been deleted. + This type represents a VNF package management notification, which informs the receiver of a change of the status in an + on-boarded VNF package. Only changes in the "operationalState" attribute of an on-boarded VNF package and the + deletion of the VNF package will be reported. Change in the "usageState" and "onboardingState" attributes are not + reported. The notification shall comply with the provisions defined in Table 9.5.2.9-1. The support of this notification is + mandatory. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF + package, as follows. + • The "operationalState" attribute of a VNF package has changed, and the "onboardingState" attribute of the + package has the value "ONBOARDED". + • The on-boarded VNF package has been deleted, and the "onboardingState" attribute of the deleted package + had the value "ONBOARDED". type: object required: - id -- GitLab From 20bd10c9c05a6542f14abc35ddd6272bc7b40b11 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Tue, 3 Mar 2020 07:20:32 +0100 Subject: [PATCH 24/32] SOL005_159, 160, 161, 162, 163, 164 & 165 --- .../SOL005NSFaultManagement_def.yaml | 25 +++++++++++------ ...L005NSFaultManagementNotification_def.yaml | 28 ++++++++----------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml index af6df5d..d1619f2 100644 --- a/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml +++ b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml @@ -10,7 +10,6 @@ definitions: - id - managedObjectId - alarmRaisedTime - - rootCauseFaultyComponent - ackState - perceivedSeverity - eventTime @@ -35,19 +34,27 @@ definitions: description: > The virtualised resources that are causing the NS fault. It shall be present when the faulty component - is "NS Virtual Link" or "VNF". + is "NS Virtual Link" (see clause 8.5.3.4). $ref: "#/definitions/FaultyResourceInfo" alarmRaisedTime: description: > - Alarm identifier. + Time stamp indicating when the alarm is raised by the managed object. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" alarmChangedTime: description: > - The time stamp indicating when the alarm was cleared. + Time stamp indicating when the alarm was last + changed. It shall be present if the alarm has been updated. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" alarmClearedTime: description: > - Links to resources related to this notification. + Time stamp indicating when the alarm was cleared. + It shall be present if the alarm has been cleared. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + alarmAcknowledgedTime: + description: > + Time stamp indicating when the alarm was + acknowledged. It shall be present if the alarm has + been acknowledged. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" ackState: description: > @@ -129,9 +136,11 @@ definitions: New value of the "ackState" attribute in "Alarm". Permitted values: - ACKNOWLEDGED + - UNACKNOWLEDGED type: string enum: - ACKNOWLEDGED + - UNACKNOWLEDGED EventType: description: > The enumeration EventType represents those types of events that trigger @@ -268,8 +277,7 @@ definitions: callbackUri: description: > The URI of the endpoint to send the notification to. - type: string - format: url + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" _links: description: > Links for this resource. @@ -300,8 +308,7 @@ definitions: callbackUri: description: > The URI of the endpoint to send the notification to. - type: string - format: url + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" authentication: description: > Authentication parameters to configure the use of Authorization when sending notifications diff --git a/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml b/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml index bdeec9a..b01a5af 100644 --- a/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml +++ b/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml @@ -3,7 +3,11 @@ definitions: AlarmNotification: description: > - This type represents an alarm notification about NS faults. + This type represents an alarm notification about NS faults. It shall comply with the provisions defined in + Table 8.5.2.5-1. + This notification shall be triggered by the NFVO when: + • An alarm has been created. + • An alarm has been updated, e.g. the severity of the alarm has changed. type: object required: - id @@ -39,31 +43,23 @@ definitions: Information about an alarm including AlarmId, affected NS identifier, and FaultDetails. $ref: "../../NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" - alarmClearedTime: - description: > - The time stamp indicating when the alarm was cleared. _links: description: > Links to resources related to this notification. type: object required: - subscription - - alarm properties: subscription: description: > Link to the related subscription. $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink" - alarm: - description: > - Link to the resource that represents the related alarm. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" AlarmClearedNotification: description: > - This type represents an alarm cleared notification about VNF faults. - The notification shall be triggered by the VNFM when an alarm has been - cleared. + This type represents an alarm cleared notification about NS faults. It shall comply with the provisions defined in + Table 8.5.2.6-1. + The notification shall be triggered by the NFVO when an alarm has been cleared. type: object required: - id @@ -121,11 +117,9 @@ definitions: AlarmListRebuiltNotification: description: > - This type represents a notification that the alarm list has been - rebuilt, e.g. if the VNFM detects its storage holding the alarm - list is corrupted. - The notification shall be triggered by the VNFM when the alarm list has - been rebuilt. + This type represents a notification that the alarm list has been rebuilt, e.g. if the NFVO detects its storage holding the + alarm list is corrupted. It shall comply with the provisions defined in Table 8.5.2.7-1. + The notification shall be triggered by the NFVO when the alarm list has been rebuilt. type: object required: - id -- GitLab From fd6d1825efb59deb84fba0d84d8c5939d58f2572 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Tue, 3 Mar 2020 09:09:50 +0100 Subject: [PATCH 25/32] SOL005_83,84,85,86,87,88,89,90,91,92,93 & 94 --- .../SOL005NSLifecycleManagement_def.yaml | 29 ++-- ...NSLifecycleManagementNotification_def.yaml | 128 ++++++++++++++++++ 2 files changed, 142 insertions(+), 15 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index f324a2d..467f39a 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -4,21 +4,19 @@ definitions: HealNsRequest: description: > - This operation supports the healing of an NS instance, - either by healing the complete NS instance or by healing one of - more of the VNF instances that are part of this NS. - It shall comply with the provisions defined in Table 6.5.2.13-1. + This type represents request parameters for the "Heal NS" operation. This operation supports the healing of an NS + instance, either by healing the complete NS instance or by healing one of more of the VNF instances that are part of this + NS. It shall comply with the provisions defined in Table 6.5.2.13-1. + Either the parameter healNsData or the parameter healVnfData, but not both shall be provided. type: object properties: healNsData: description: > - Indicates the reason why a healing procedure is required. + Provides the information needed to heal an NS. See note $ref: "#/definitions/HealNsData" healVnfData: description: > - Additional parameters passed by the NFVO as input to the healing - process, specific to the VNF being healed, as declared in the VNFD - as part of "HealVnfOpConfig". + Provides the information needed to heal a VNF. See note. type: array items: $ref: "#/definitions/HealVnfData" @@ -1928,6 +1926,7 @@ definitions: ScaleNsRequest: description: > This type represents a request for the scale NS operation. + Either the parameter scaleNsData or the parameter scaleVnfData, but not both shall be provided type: object required: - scaleType @@ -1984,7 +1983,8 @@ definitions: properties of VNF instance(s) * CHANGE_EXTERNAL_VNF_CONNECTIVITY: Changing the external connectivity of VNF - instance(s)ADD_SAP: Adding SAP(s) + instance(s) + * ADD_SAP: Adding SAP(s) * REMOVE_SAP: Removing SAP(s) * ADD_NESTED_NS: Adding existing NS instance(s) as nested NS(s) @@ -2011,6 +2011,7 @@ definitions: - OPERATE_VNF - MODIFY_VNF_INFORMATION - CHANGE_EXTERNAL_VNF_CONNECTIVITY + - ADD SAP - REMOVE_SAP - ADD_NESTED_NS - REMOVE_NESTED_NS @@ -3703,7 +3704,7 @@ definitions: ------|------------ START | The impact on the NS component is identified. COMPLETED | The impact on the NS component stops and related lifecycle operation completes successfully. - PARTIALLY_COMPLETED | The impact on the NS component stops and related lifecycle operation partially completes. Inconsistency state may exist on the NS component. + PARTIALLY_COMPLETED | The impact on the NS component stops and related lifecycle operation partially completes. Inconsistency state may exist on the NS component. FAILED | The impact on the NS component stops and related lifecycle operation fails. Inconsistency state may exist for the NS component. ROLLED_BACK | The impact on the NS component stops and related lifecycle operation is rolled back. type: string @@ -3741,8 +3742,7 @@ definitions: statusEnteredTime: description: > Date-time when the current state has been entered. - type: string - format: date-time + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > Identifier of the NS instance to which the operation applies. @@ -3755,8 +3755,7 @@ definitions: startTime: description: > Date-time of the start of the operation. - type: string - format: date-time + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" isAutomaticInvocation: description: > Set to true if this NS LCM operation occurrence has @@ -3839,7 +3838,7 @@ definitions: represents the result of a lifecycle operation. type: array items: - $ref: "#/definitions/AffectedVl" + $ref: "#/definitions/AffectedVirtualLink" affectedVnffgs: description: > Information about the VNFFG instances that were diff --git a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml index e99beb6..cbfc6a7 100644 --- a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml @@ -7,6 +7,8 @@ definitions: - id - nsInstanceId - nsLcmOpOccId + - operation + - notificationType - subscriptionId - timestamp - notificationStatus @@ -131,9 +133,20 @@ definitions: NsIdentifierCreationNotification: type: object required: + - id + - notificationType - subscriptionId + - timestamp - nsInstanceId + - _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/SOL005_def.yaml#/definitions/Identifier" notificationType: description: > Discriminator for the different notification types. @@ -160,9 +173,20 @@ definitions: NsIdentifierDeletionNotification: type: object required: + - id + - notificationType - subscriptionId + - timestamp - nsInstanceId + - _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/SOL005_def.yaml#/definitions/Identifier" notificationType: description: > Discriminator for the different notification types. @@ -181,6 +205,110 @@ definitions: description: > The created NS instance identifier $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnLinks" + + NsChangeNotification: + description: > + This type represents an NS change notification, which informs the receiver of changes on the NS instance caused by the + LCM operation occurrence, which directly or indirectly impacts its NS component and is triggered without any context + of this NS instance. + This notification is different from the NsLcmOperationOccurenceNotification (see clause 6.5.2.5), which is triggered by + the NS LCM operation occurrence on the NS instance itself. It shall comply with the provisions defined in + Table 6.5.2.8-1. The support of the notification is mandatory. + The trigger conditions include: + 1) NS LCM operation occurrence which directly or indirectly impacts the NS component (start and result). + If this is a notification about the start of an LCM operation occurrence impacting the NS component, the notification + shall be sent as soon as the impact on the NS component is identified. + If this is a notification about a final result state of an NS LCM operation occurrence impacting the NS component, the + notification shall be sent after the impact on the NS component has been executed. + type: object + required: + - id + - nsInstanceId + - nsComponentType + - nsComponentId + - lcmOpOccIdImpactingNsComponent + - lcmOpNameImpactingNsComponent + - lcmOpOccStatusImpactingNsCompon + - notificationType + - subscriptionId + - timestamp + - _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/SOL005_def.yaml#/definitions/Identifier" + nsInstanceId: + description: > + The identifier of the NS instance affected. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + nsComponentType: + description: > + Indicates the impacted NS component type. + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsComponentType" + nsComponentId: + description: > + The identifier of the impacted NS component. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + lcmOpOccIdImpactingNsComponent: + description: > + The identifier of the lifecycle operation + occurrence which is associated to the + notification and impacts the NS + component directly or indirectly. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + lcmOpNameImpactingNsComponent: + description: > + Indicates the name of the lifecycle + operation occurrence which is + associated to the notification and + impacts the NS component directly or + indirectly. + $ref: "#/definitions/LcmOpNameForChangeNotificationType" + lcmOpOccStatusImpactingNsComponent: + description: > + Indicates this status of the lifecycle + operation occurrence which is + associated to the notification and + impacts the NS component directly or + indirectly. + $ref: "#/definitions/LcmOpOccStatusForChangeNotificationType" + notificationType: + description: > + Discriminator for the different + notification types. Shall be set to + "NsChangeNotification" for this + notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + timestamp: + description: > + Date-time of the generation of the + notification. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + error: + description: > + Details of the latest error, if one has + occurred during executing the LCM + operation (see clause 6.3 of ETSI + GS NFV-SOL 013 [16]). Shall be + present if + lcmOpOccStatusImpactingNsCompon + ent is "PARTIALLY_COMPLETED" or + "FAILED", and shall be absent + otherwise. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" _links: description: > Links to resources related to this notification. -- GitLab From 46be60965f3096d3cfea42694f8aac0d847ed11e Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Tue, 3 Mar 2020 10:59:04 +0100 Subject: [PATCH 26/32] SOL005_95,96,97,98,99,100,101,102,103,104,105,106,107,108 & 109 Updated --- .../SOL005NSLifecycleManagement_def.yaml | 109 ++++++++++++++---- 1 file changed, 87 insertions(+), 22 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index 467f39a..30f35a3 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -338,6 +338,9 @@ definitions: VnfInstance: description: > This type represents a VNF instance. + Clause B.3.2 of ETSI GS NFV-SOL 003 [4] provides examples illustrating the relationship among the + different run-time information elements (CP, VL and link ports) used to represent the connectivity of a + VNF. type: object required: - id @@ -448,6 +451,7 @@ definitions: required: - flavourId - vnfState + - extCpInfo properties: flavourId: description: > @@ -464,6 +468,15 @@ definitions: type: array items: $ref: "#/definitions/VnfScaleInfo" + maxScaleLevels: + description: > + Maximum allowed scale levels of the VNF, one + entry per aspect. + This attribute shall be present if the VNF + supports scaling. + type: array + items: + $ref: "#/definitions/VnfScaleInfo" extCpInfo: description: > Information about the external CPs exposed by the VNF instance. @@ -521,17 +534,24 @@ definitions: $ref: "#/definitions/VirtualStorageResourceInfo" metadata: description: > - Additional VNF-specific attributes that provide metadata - describing the VNF instance. - - These attributes represent values that are stored persistently in the VnfInstance - structure for consumption by functional blocks that invoke the VNF lifecycle management interface. - They are not consumed by the VNFM, or the lifecycle management scripts. - Modifying the values of these attributes has no effect on the VNF instance, it only affects - the information represented in the VnfInstance structure. - Metadata that are writeable are declared in the VNFD . - These attributes can be modified with the PATCH method. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + Additional VNF-specific attributes that provide + metadata describing the VNF instance. + Metadata that are writeable are declared in the + VNFD (see note 2). + These attributes represent values that are + stored persistently in the VnfInstance structure + for consumption by functional blocks that + invoke the VNF lifecycle management + interface. They are not consumed by the + VNFM, or the lifecycle management scripts. + Modifying the values of these attributes has no + effect on the VNF instance, it only affects the + information represented in the VnfInstance + structure. + Metadata that are writeable are declared in the + VNFD (see note 2). + These attributes can be modified with the + PATCH method $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" extensions: description: > @@ -1115,9 +1135,6 @@ definitions: required: - macAddress - ipAddresses - - subnetId - - addresses - - addressRange properties: macAddress: description: > @@ -1788,10 +1805,36 @@ definitions: Identifier of (reference to) a vnfProfile to which the additional parameters apply. $ref: "#/definitions/IdentifierInNsd" + vnfInstanceName: + description: > + Human-readable name of the VNF instance to be created. + type: string + vnfInstanceDescription: + description: > + Human-readable description of the VNF instance to be created. + type: string + vnfConfigurableProperties: + description: > + Values for the "vnfConfigurableProperties" input + parameter of the Instantiate VNF operation defined in + ETSI GS NFV-SOL 003 [4]. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Values for the "metadata" input parameter of the Create + VNF Identifier operation defined in ETSI + GS NFV-SOL 003 [4]. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Values for the "extensions" attribute of the Instantiate + VNF operation defined in ETSI GS NFV-SOL 003 [4]. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" additionalParams: description: > - Additional parameters that are applied for the VNF - instance to be created. + Additional input parameters for the instantiation process, + specific to the VNF being instantiated, as declared in the + VNFD as part of "InstantiateVnfOpConfig". $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" LocationConstraints: @@ -2236,6 +2279,12 @@ definitions: Localization language of the VNF to be instantiated. The value shall comply with the format defined in IETF RFC 5646. type: string + vnfConfigurableProperties: + description: > + Values for the "vnfConfigurableProperties" input + parameter of the Instantiate VNF operation + defined in ETSI GS NFV-SOL 003 [4]. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" additionalParams: description: > Additional input parameters for the instantiation process, @@ -2251,6 +2300,13 @@ definitions: This attribute provides values for the "extensions" input parameter of the Instantiate VNF operation. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + locationConstraints: + description: > + Defines the location constraints for the VNF to be + instantiated as part of the NS Update. + An example can be a constraint for the VNF to be + in a specific geographic location. + $ref: "#/definitions/VnfLocationConstraint" ChangeVnfFlavourData: description: > @@ -2325,6 +2381,12 @@ definitions: taken out of service during graceful stop, before stopping the VNF. type: integer + additionalParam: + description: > + Additional parameters passed by the OSS/BSS as input + to the Operate VNF operation, specific to the VNF being + operated. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" OperationalStates: description: > @@ -2405,13 +2467,13 @@ definitions: type: object required: - vnfInstanceId - - extVirtualLink + - extVirtualLinks properties: vnfInstanceId: description: > Identifier of the VNF instance. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" - extVirtualLink: + extVirtualLinks: description: > Information about external VLs to change (e.g. connect the VNF to). type: array @@ -2673,7 +2735,7 @@ definitions: properties: newNsFlavourId: description: > - Identifier of an existing VNFFG to be updated for the NS Instance. + Identifier of the new NS DF to apply to this NS instance. $ref: "#/definitions/IdentifierInNsd" instantiationLevelId: description: > @@ -2724,7 +2786,7 @@ definitions: required: - cpProtocolData properties: - cpInstanceI16: + cpInstanceId: description: > Identifier of the CP. Shall be present for existing CP. $ref: "#/definitions/IdentifierInPnf" @@ -2872,6 +2934,9 @@ definitions: - vnfInstanceId - vnfdId - vnfProfileId + - vnfName + - changeType + - changeResult properties: vnfInstanceId: description: > @@ -4067,7 +4132,7 @@ definitions: It shall comply with the provisions defined in Table 6.5.3.27-1. type: object required: - - virtualLinkDescId + - vnfVirtualLinkDescId - resourceId properties: extManagedVirtualLinkId: @@ -4075,7 +4140,7 @@ definitions: The identifier of the externally-managed internal VL instance, if provided. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" - vmfVirtualLinkDescId: + vnfVirtualLinkDescId: description: > The identifier of the VLD in the VNFD for this VL. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" -- GitLab From b12b5e47f293efecfee8fb500eeef5f3d0484580 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 3 Mar 2020 11:42:15 +0100 Subject: [PATCH 27/32] SOL005: fix in API Versioins endpoints --- src/SOL005/APIVersion/APIVersion.yaml | 10 +++++----- src/SOL005/NSDManagement/NSDManagement.yaml | 2 +- src/SOL005/NSFaultManagement/NSFaultManagement.yaml | 2 +- .../NSLifecycleManagement/NSLifecycleManagement.yaml | 2 +- .../NSPerformanceManagement.yaml | 2 +- .../VNFPackageManagement/VNFPackageManagement.yaml | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/SOL005/APIVersion/APIVersion.yaml b/src/SOL005/APIVersion/APIVersion.yaml index 3fec67c..54ba3fe 100644 --- a/src/SOL005/APIVersion/APIVersion.yaml +++ b/src/SOL005/APIVersion/APIVersion.yaml @@ -34,17 +34,17 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/nsd/api-versions': + '/nsd/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' - '/nsfm/api-versions': + '/nsfm/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' - '/nslcm/api-versions': + '/nslcm/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' - '/nspm/api-versions': + '/nspm/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' - '/vnfpkgm/api-versions': + '/vnfpkgm/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' \ No newline at end of file diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index cd54177..4fe3238 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index e40d2c1..ec35793 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -30,7 +30,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index c1a8ba0..cba5f24 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -29,7 +29,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index 7952ded..ab29355 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index e9da66d..520253a 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -30,7 +30,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -1032,7 +1032,6 @@ paths: maximum: 1 minimum: 1 409: - description: > $ref: "../responses/SOL005_resp.yaml#/responses/409" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" @@ -1050,6 +1049,7 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" + ############################################################################### # VNF package artifact # ############################################################################### -- GitLab From b6e408daf24722aea4834f46a175106c2788ee7a Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Tue, 3 Mar 2020 12:02:16 +0100 Subject: [PATCH 28/32] Api version fixed --- src/SOL005/NSFaultManagement/NSFaultManagement.yaml | 10 +++++----- .../NSFaultManagementNotification.yaml | 4 ++-- .../NSLifecycleManagement/NSLifecycleManagement.yaml | 8 ++++---- .../NSLifecycleManagementNotification.yaml | 4 ++-- .../VNFPackageManagement/VNFPackageManagement.yaml | 12 ++++++------ .../VNFPackageManagementNotification.yaml | 4 ++-- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index ec35793..28b3c98 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -16,8 +16,8 @@ info: contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf basePath: /nsfm/v1 schemes: - http @@ -31,7 +31,7 @@ paths: # API Versions # ############################################################################### '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api_versions' ############################################################################### # Alarms # @@ -350,7 +350,7 @@ paths: #Subscriptions # ############################################################################## '/subscriptions': - #ETSI GS NFV-SOL 005 V2.6.1 location: 8.4.4 + #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.4 parameters: - name: Authorization description: > @@ -564,7 +564,7 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.6.1 location: 8.4.5 + #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.5 parameters: - name: subscriptionId description: > diff --git a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml index 833c398..86503f5 100644 --- a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf basePath: /callback/v1 diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index cba5f24..2b68a85 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -16,7 +16,7 @@ info: name: "NFV-SOL WG" externalDocs: description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /nslcm/v1 schemes: - http @@ -30,7 +30,7 @@ paths: # API Versions # ############################################################################### '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api_versions' ############################################################################### # NSInstances # @@ -1812,7 +1812,7 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.16 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.16 parameters: - name: Authorization description: > @@ -2039,7 +2039,7 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.17 + #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.17 parameters: - name: subscriptionId description: > diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index 75f7a08..9252077 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /callback/v1 diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 520253a..94d79d5 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -16,8 +16,8 @@ info: contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /vnfpkgm/v2 schemes: @@ -31,7 +31,7 @@ paths: # API Versions # ############################################################################### '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api_versions' ############################################################################### # VNF Packages # @@ -467,7 +467,7 @@ paths: # VNFD in an individual VNF package # ############################################################################### '/vnf_packages/{vnfPkgId}/vnfd': - #ETSI GS NFV-SOL 005 V2.6.1 location: 9.4.4 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4 parameters: - name: Authorization description: > @@ -877,7 +877,7 @@ paths: # VNF Package Content # ############################################################################### '/vnf_packages/{vnfPkgId}/package_content': - #ETSI GS NFV-SOL 005 V2.6.1 location: 9.4.5 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.5 parameters: - name: Authorization description: > @@ -1725,7 +1725,7 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.9 + #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.9 parameters: - name: subscriptionId description: > diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 3568fe3..c6e08fd 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -12,8 +12,8 @@ info: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.05.01_60/gs_NFV-SOL005v020501p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf basePath: /callback/v1 schemes: - http -- GitLab From 7318603fca4f0d02141ce9e09c6e8ff02a9fd114 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Tue, 3 Mar 2020 12:11:12 +0100 Subject: [PATCH 29/32] bug fix --- src/SOL005/NSFaultManagement/NSFaultManagement.yaml | 2 +- src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml | 2 +- src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 28b3c98..0f25c5c 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -31,7 +31,7 @@ paths: # API Versions # ############################################################################### '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api_versions' + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### # Alarms # diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 2b68a85..c1dabb7 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -30,7 +30,7 @@ paths: # API Versions # ############################################################################### '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api_versions' + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### # NSInstances # diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 94d79d5..871aae8 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -31,7 +31,7 @@ paths: # API Versions # ############################################################################### '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api_versions' + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### # VNF Packages # -- GitLab From 14705ea4c7c23e4cc50d8134396b191e992870d8 Mon Sep 17 00:00:00 2001 From: Ahmed Butt Date: Tue, 3 Mar 2020 12:30:11 +0100 Subject: [PATCH 30/32] Api versions updated --- .../NSFaultManagementNotification.yaml | 2 +- .../NSLifecycleManagementNotification.yaml | 2 +- .../VNFPackageManagementNotification.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml index 86503f5..2b3b9af 100644 --- a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Fault Management Notification interface" description: > SOL005 - NS Fault Management Notification interface diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index 9252077..e8f1a96 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Lifecycle Management Notification interface" description: > SOL005 - NS Lifecycle Management Notification interface diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index c6e08fd..18364dc 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,6 +1,6 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - VNF Package Management Notification interface" description: > SOL005 - VNF Package Management Notification interface -- GitLab From 0f4a626da7ebfe26bad9ed0fc589a25d105dc525 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Tue, 31 Mar 2020 14:14:29 +0200 Subject: [PATCH 31/32] updated api version --- src/SOL005/APIVersion/APIVersion.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SOL005/APIVersion/APIVersion.yaml b/src/SOL005/APIVersion/APIVersion.yaml index 54ba3fe..64736fc 100644 --- a/src/SOL005/APIVersion/APIVersion.yaml +++ b/src/SOL005/APIVersion/APIVersion.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - API version interface" description: > SOL005 - API version Interface @@ -17,8 +17,8 @@ info: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.05.01_60/gs_NFV-SOL005v020501p.pdf + description: ETSI GS NFV-SOL 005 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf schemes: - http -- GitLab From df85b70a9c056419446ffd59f9049e65ceb7e8d7 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Tue, 7 Apr 2020 12:36:14 +0200 Subject: [PATCH 32/32] Updated readme --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index 98bf2b2..d6dc8fe 100644 --- a/Readme.md +++ b/Readme.md @@ -1,11 +1,11 @@ # NFV SOL005 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf). +for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf). The APIs described in this repository are defined for the `Os-Ma-nfvo` reference point. -**IMPORTANT: These [OpenAPI](https://www.openapis.org/) specifications are in development phase. In case of discrepancies the published ETSI Group Specification takes precedence.** +**IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.** More information at [NFV Solutions wiki](https://nfvwiki.etsi.org/index.php?title=NFV_Solutions). -- GitLab