diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index f9aad982a2b8626f5de5b4ffb6eb7a38599fce49..134144ce5b2f91eac28be3077eb2d7c9f8631efe 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnfconfig/v1 @@ -65,7 +65,9 @@ paths: 200: description: > 200 OK - Configuration information about a VNF instance was read successfully. + + Shall be returned when configuration information about a VNF instance + has been read successfully. The response body shall contain a representation of the configuration resource. schema: $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration' @@ -123,16 +125,17 @@ paths: required: true in: body schema: - $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications' + $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications' responses: 200: description: > 200 OK - The request was accepted and completed. The response body shall contain the parameters - of the configuration modification that was applied to the configuration resource. + Shall be returned when the request has been accepted and completed. + The response body shall contain the parameters of the configuration + modification that was applied to the configuration resource. schema: - $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications' + $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications' headers: Content-Type: description: The MIME type of the body of the response. @@ -157,6 +160,16 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 412: + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given + in an HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the resource + was modified by another entity. The response body should contain a + ProblemDetails structure, in which the "detail" attribute should convey + more information about the error. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 6d690c31ddd9715f91cc9cbe71c16396a3fdeef9..c29936c7638403b34f0f96468ffc6ab0657ac217 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnffm/v1 @@ -79,7 +79,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter. The following attribute names shall be supported in the filter expression: id, managedObjectId, @@ -116,7 +116,8 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 5.2 of ETSI GS NFV-SOL 013 + for this resource. in: query required: false type: string @@ -125,11 +126,15 @@ paths: description: > 200 OK - Information about zero or more alarms was queried successfully. + Shall be returned when information about zero or more alarms was queried successfully. The response body shall contain in an array the representations of zero or more alarms as defined in clause 7.5.2.4. - If the VNFM 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 4.7.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 VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013for 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. @@ -235,7 +240,8 @@ paths: description: > 200 OK - Information about an individual alarm was read successfully. + Shall be returned when information about an individual alarm read + successfully. The response body shall contain a representation of the individual alarm. headers: @@ -312,9 +318,9 @@ paths: description: > 200 OK - The request was accepted and completed. The response body shall - contain attribute modifications for an ‘Individual alarm’ - resource. + Shall be returned when the request was accepted and completed. + The response body shall contain attribute modifications for + an "Individual alarm" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -352,14 +358,24 @@ paths: description: > 409 CONFLICT - 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. + 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/SOL002SOL003_resp.yaml#/responses/409" 412: + description: > + 412 PRECONDITION FAILED + + ErrorShall be returned upon the following error: A precondition given in an + HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the resource was + modified by another entity. + The response body should contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -397,6 +413,9 @@ paths: description: > The POST method enables the consumer to escalate the perceived severity of an alarm that is represented by an ndividual alarm resource. + As the result of successfully executing this method, a new "Individual + subscription" resource as defined in clause 7.4.5 shall have been created. + This method shall not trigger any notification. parameters: - name: alarmId description: > @@ -419,8 +438,8 @@ paths: description: > 200 OK - The VNFM has received the proposed "escalated perceived severity" value - successfully. The response body shall be empty. + Shall be returned when the VNFM has received the proposed "escalated + perceived severity" value successfully. The response body shall be empty. headers: Version: description: The used API version. @@ -586,7 +605,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter. All attribute names that appear in the FmSubscription and in data types referenced from it @@ -621,7 +640,8 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for + this resource. in: query required: false type: string @@ -630,12 +650,16 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. The response + 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 "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 VNFM 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 4.7.2.3. + 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. @@ -741,9 +765,10 @@ 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 "Individual + subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -792,12 +817,20 @@ paths: delete: description: > This method terminates an individual subscription. + 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 was deleted successfully. + Shall be returned when the "Individual subscription" resource has + been deleted successfully. The response body shall be empty. headers: Version: diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index ddb3eac44de35f00011f68b37199003e8c152ac2..f817f87c615c8cd0954c44502e75cb158b2d66e8 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /callback/v1 @@ -56,7 +56,8 @@ paths: Notify The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + rebuilt. The API consumer shall have previously created an "Individual + subscription" resource with a matching filter. parameters: - name: AlarmNotification description: > @@ -78,7 +79,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -118,7 +119,8 @@ paths: description: > 201 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate the notification endpoint has been + tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -173,7 +175,8 @@ paths: Notify The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + rebuilt. The API consumer shall have previously created an "Individual + subscription" resource with a matching filter. parameters: - name: AlarmClearedNotification description: > @@ -195,7 +198,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -235,7 +238,8 @@ paths: description: > 201 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate the notification endpoint has been + tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -290,7 +294,8 @@ paths: Notify The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + rebuilt. The API consumer shall have previously created an "Individual + subscription" resource with a matching filter. parameters: - name: AlarmListRebuiltNotification description: > @@ -312,7 +317,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -352,7 +357,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate the notification endpoint has been + tested successfully. The response body shall be empty. headers: WWW-Authenticate: diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index eefb4de0f5ec2148041208d64cfb58e39c15d8d6..3777c8e4cb396ef6717372bbdeb4193a886cf890 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnfind/v1 @@ -63,7 +63,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF may supply this parameter. The VNF may supply its instance Id as an attribute filter. All attribute names that appear in the VnfIndicator data type and in data types referenced from @@ -98,7 +98,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF - if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource + if the EM/VNF supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013for this resource. in: query required: false type: string @@ -107,12 +108,18 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried successfully. - The response body shall contain in an array the representations of all - VNF indicators that match the attribute-based filtering parameters, - i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. - If the EM/VNF 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 4.7.2.3. + Shall be returned when information about zero or more VNF indicators was + queried successfully. The response body shall contain in an array the + representations of all VNF indicators that match the attribute-based + filtering parameters, i.e. zero or more representations of VNF indicators + as defined in clause 8.5.2.2. + 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 EM/VNF supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013for 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. @@ -133,7 +140,7 @@ paths: schema: type: array items: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -195,7 +202,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF shall support receiving filtering parameters as part of the URI query string. The VNFM may supply filtering parameters. @@ -229,8 +236,9 @@ paths: type: string - name: nextpage_opaque_marker description: > - Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF - if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource. + Marker to obtain the next page of a paged response. Shall be supported + by the EM/VNF if the EM/VNF supports alternative 2 (paging) according + to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -239,14 +247,19 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried successfully. + Shall be returned when information about zero or more VNF indicators + was queried successfully. The response body shall contain in an array the representations of all VNF indicators that are related to the particular VNF instance and that match the attribute filter., i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. - If the EM/VMF 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 4.7.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 EM/VMF 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. @@ -267,7 +280,7 @@ paths: schema: type: array items: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -341,7 +354,7 @@ paths: description: > 200 OK - The VNF indicator was read successfully. + Shall be returned when the VNF indicator has been read successfully. The response body shall contain the representation of the VNF indicator. headers: Content-Type: @@ -355,7 +368,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -411,7 +424,7 @@ paths: description: > 200 OK - The VNF indicator was read successfully. + Shall be returned when the VNF indicator has been read successfully. The response body shall contain the representation of the VNF indicator. headers: Content-Type: @@ -425,7 +438,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator' + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -471,7 +484,11 @@ paths: type: string post: summary: Create a new subscription to VNF indicator change notifications - description: Create a new subscription + description: > + This method creates a new subscription. + As the result of successfully executing this method, a new "Individual + subscription" resource as defined in clause 8.4.6 shall have been created. + This method shall not trigger any notification. parameters: - name: vnfIndicatorSubscriptionRequest in: body @@ -484,8 +501,9 @@ paths: description: > 201 CREATED - The subscription was 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. schema: $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription' headers: @@ -508,10 +526,11 @@ paths: description: > 303 SEE OTHER - A subscription with the same callbackURI and the same filter already exists and the policy - of the VNFM 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. + Shall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of the VNFM is to not + create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "Individual subscription" resource. The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: @@ -548,7 +567,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The EM shall and the VNF may support receiving this parameter as part of the URI query string. The VNFM may supply this parameter. All attribute names that appear in the VnfIndicatorSubscription data @@ -583,8 +602,9 @@ paths: type: string - name: nextpage_opaque_marker description: > - Marker to obtain the next page of a paged response. Shall be supported by the EM - if the EM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource. + Marker to obtain the next page of a paged response. Shall be supported + by the EM if the EM supports alternative 2 (paging) according to + clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -593,13 +613,18 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The response body shall contain in an array the representations of all active - subscriptions of the functional block that invokes the method which match the - attribute filter, i.e. zero or more representations of VNF indicators subscriptions - as defined in clause 8.5.2.4. - If the EM 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 4.7.2.3. + Shall be returned when the list of subscriptions was queried successfully. + The response body shall contain in an array the representations of all + active subscriptions of the functional block that invokes the method which + match the attribute filter, i.e. zero or more representations of VNF + indicators subscriptions as defined in clause 8.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. + If the EM 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. @@ -687,8 +712,10 @@ paths: description: > 200 OK - The subscriptions was queried successfully. The response body shall contain - the representation of the requested subscription. + Shall be returned when information about an individual subscription + has been read successfully. + The response body shall contain the representation of the + "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -728,7 +755,15 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" delete: summary: Delete a subscription - description: Terminate an individual subscription. + description: > + This method terminates an individual subscription. + 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: subscriptionId description: > @@ -747,7 +782,7 @@ paths: description: > 204 NO CONTENT - The subscription was deleted successfully. + Shall be returned when the subscription has been deleted successfully. The response body shall be empty. headers: Version: diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index e159dcdb240efa3ef96eb5d4e23a0c3daa9239c3..15490369ee70b36d886adbe23a2ba5bc361703ea 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf schemes: - http @@ -55,7 +55,9 @@ paths: The API producer can use this resource to send notifications related to VNF indicator value changes to a subscribed API consumer, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from the server to the client. + The POST method delivers a notification from API producer to an API consumer. The API + consumer shall have previously created an "Individual subscription" resource with a + matching filter. parameters: - name: vnfIndicatorValueChangeNotification in: body @@ -69,7 +71,8 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. The response body shall be empty. + Shall be returned when the notification has been delivered successfully. + The response body shall be empty. headers: Version: description: The used API version. @@ -102,7 +105,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. The response body shall be empty. + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > diff --git a/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml index bc0d72b65c73716c169704a6bb553c76621c9506..8c042ff3f407fa989ea90075669a42734449e000 100644 --- a/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml +++ b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml @@ -62,7 +62,7 @@ definitions: # LEH this must be reported as strong candidate for removal. vnfInstance: description: > - Link to the related VNF instance resource. + Link to the related "Individual VNF instance" resource. $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link' subscription: description: > diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 493549c9ecd0ac2204d8cad119b7f282efdd161c..8ebedb087ce49fc66e54189b467bc076e17982a1 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.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: SOL002 - VNF Lifecycle Management interface description: > SOL002 - VNF Lifecycle Management interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnflcm/v1 @@ -88,9 +88,12 @@ paths: description: > 201 CREATED - A VNF Instance identifier was created successfully. - The response body shall contain a representation of the created VNF instance, 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 VNF instance. + Shall be returned when a new "Individual VNF Instance" resource and + the associated VNF instance identifier has been created successfully. + The response body shall contain a representation of the created VNF + instance, 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 VNF instance. headers: Content-Type: description: > @@ -158,7 +161,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the VnfInstance and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -190,28 +193,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfInstance structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: @@ -227,7 +230,7 @@ paths: description: > 200 OK - Information about zero or more VNF instances was queried + Information about zero or more VNF instances has been queried successfully. The response body shall contain in an array the representations of zero or more VNF instances. headers: @@ -309,15 +312,15 @@ paths: type: string get: description: > - Information about an individual VNF instance was queried successfully. + Information about a VNF instance by reading an "Individual VNF instance". responses: 200: description: > 200 OK - Information about zero or more VNF instances was queried - successfully. The response body shall contain - representations of zero or more VNF instances. + Information about an individual VNF instance has been read successfully. + The response body shall contain a representation of the VNF instance, + as defined in clause 5.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. @@ -366,7 +369,7 @@ paths: patch: #SOL003 location: 5.4.3.3.4 description: > - This method modifies an individual VNF instance resource. Changes to + This method modifies an "Individual VNF instance" resource. Changes to the VNF configurable properties are applied to the configuration in the VNF instance, and are reflected in the representation of this resource. Other changes are applied to the VNF instance information @@ -386,7 +389,8 @@ paths: The request was accepted for processing, but the processing has not been completed. On success, the HTTP response shall include a "Location" HTTP header that contains - the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + the URI of the newly-created an "Individual VNF LCM operation occurrence" resource + corresponding to the operation. The response body shall be empty. headers: Content-Type: @@ -434,7 +438,7 @@ paths: 409 CONFLICT Error: The operation cannot be executed currently, due to a conflict with the state - of the VNF instance resource. + of the "Individual VNF instance" resource. Typically, this is due to the fact that another LCM operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. @@ -455,13 +459,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" delete: description: > - This method deletes an individual VNF instance resource. + This method deletes an "Individual VNF instance" resource. responses: 204: description: > 204 NO CONTENT - The VNF instance resource and the associated VNF identifier were + The "Individual VNF instance" resource and the associated VNF identifier were deleted successfully. The response body shall be empty. headers: @@ -495,7 +499,7 @@ paths: 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 VNF instance resource is in INSTANTIATED state. + Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" @@ -551,13 +555,13 @@ paths: in: body required: true schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" + $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. @@ -607,7 +611,7 @@ paths: 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 VNF instance resource is in INSTANTIATED state. + Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" @@ -670,10 +674,10 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -720,7 +724,7 @@ paths: 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 VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF 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. @@ -784,7 +788,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. @@ -834,7 +838,7 @@ paths: 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 VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF 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. @@ -891,16 +895,16 @@ paths: in: body required: true schema: - $ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" + $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -947,7 +951,7 @@ paths: 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 VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF 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. @@ -1009,7 +1013,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + The request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. @@ -1059,7 +1063,7 @@ paths: 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 VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF 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. @@ -1108,23 +1112,23 @@ paths: type: string post: description: > - The POST method requests to heal a VNF instance resource. + The POST method requests to heal a VNF instance. parameters: - name: HealVnfRequest description: Parameters for the Heal VNF operation. in: body required: true schema: - $ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" + $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -1171,7 +1175,7 @@ paths: 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 VNF instance resource is in NOT_INSTANTIATED state, + Typically, this is due to the fact that the "Individual VNF 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. @@ -1220,7 +1224,7 @@ paths: type: string post: description: > - The POST method changes the operational state of a VNF instance resource. + The POST method changes the operational state of a VNF instance. parameters: - name: OperateVnfRequest description: Parameters for the Operate VNF operation. @@ -1233,7 +1237,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. @@ -1347,7 +1351,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. + 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 "VNF LCM operation occurrence" resource corresponding to the operation. @@ -1440,7 +1444,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -1473,28 +1477,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: @@ -1509,8 +1513,9 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. - Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + Shall be supported by the VNFM if the VNFM supports + alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1519,11 +1524,15 @@ paths: description: > 200 OK - Status information for zero or more VNF lifecycle management operation occurrences was queried successfully. - The response body shall contain in an array the status information about zero or more VNF lifecycle - operation occurrences, as defined in clause 5.5.2.13. - If the VNFM 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 4.7.2.3. + Status information for zero or more VNF lifecycle management operation + occurrences has been queried successfully. + The response body shall contain in an array the status information + about zero or more VNF lifecycle operation occurrences, as defined in + clause 5.5.2.13. + If the VNFM 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. @@ -1577,8 +1586,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - - ############################################################################### + ############################################################################### # Individual VNF LCM operation occurrence # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}': @@ -1611,17 +1619,16 @@ paths: get: description: > The client can use this method to retrieve status information about a - VNF lifecycle management operation occurrence by reading an individual - "VNF LCM operation occurrence" resource. + VNF lifecycle management operation occurrence by reading an "Individual + VNF LCM operation occurrence" resource. responses: 200: description: > 200 OK - Information about an individual VNF instance was queried - successfully. The response body shall contain status - information about a VNF lifecycle management operation - occurrence. + Information about an individual VNF instance has been queried + successfully. The response body shall contain status information + about a VNF lifecycle management operation occurrence. headers: Content-Type: description: The MIME type of the body of the response. @@ -1702,13 +1709,15 @@ paths: description: > The POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" + state. responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + The request has been accepted for processing, but processing has + not been completed. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1794,13 +1803,14 @@ paths: description: > The POST method initiates rolling back a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" + state. responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + The request has been accepted for processing, but processing has not been completed. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1892,9 +1902,9 @@ paths: description: > 200 OK - The state of the VNF lifecycle management operation occurrence was - changed successfully. The response shall include a representation - of the VNF lifecycle operation occurrence resource. + The state of the VNF lifecycle management operation occurrence has + been changed successfully. The response shall include a representation + of the "Individual VNF lifecycle operation occurrence" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1916,7 +1926,7 @@ paths: minimum: 1 schema: schema: - $ref: "../../definitions/SOL002SOl003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1987,14 +1997,15 @@ paths: description: > The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. the related - "VNF LCM operation occurrence" is either in "PROCESSING" or + "Individual VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. responses: 202: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + The request has been accepted for processing, but processing has not + been completed. The response shall have an empty payload body. headers: #TODO: Add headers defined in 4.3.4.3 @@ -2082,10 +2093,10 @@ paths: description: > 201 CREATED - The subscription was created successfully. The response body shall - contain a representation of the created subscription resource. + 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. + points to the created "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2153,7 +2164,7 @@ paths: parameters: - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the LccnSubscription and in data types referenced from it shall be supported by the VNFM in the filter expression. @@ -2188,7 +2199,7 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. + 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 5.5.2.16. @@ -2270,7 +2281,7 @@ paths: get: description: > The GET method retrieves information about a subscription by reading - an individual subscription resource. + an "Individual subscription" resource. responses: 200: description: > @@ -2278,7 +2289,7 @@ paths: The operation has completed successfully. The response body shall contain a representation of the - subscription resource. + "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2332,7 +2343,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + The "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 85fba009eec9a426175eca0e9f3c784ed6cdd119..f278f185398b1a973cd196cb3bf04d1f86f80d78 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -33,6 +33,15 @@ definitions: vnfdId: description: > Identifier of the VNFD on which the VNF instance is based. + This attribute can be modified with the PATCH method. + Modifying the value of this attribute shall not be performed + when conflicts exist between the previous and the newly referred + VNF package, i.e. when the new VNFD is not changed with respect + to the previous VNFD apart from referencing to other VNF software + images. In order to avoid misalignment of the VnfInstance with + the current VNF's on-boarded VNF package, the values of attributes + in the VnfInstance that have corresponding attributes in the VNFD + shall be kept in sync with the values in the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -58,7 +67,39 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > - Current values of the configurable properties of the VNF instance. + Additional VNF-specific attributes that provide the current values + of the configurable properties of the VNF instance. + These attributes represent values that are stored persistently in + the VnfInstance structure and that correspond to configuration + parameters of the VNF instance. + Modifying these attributes affects the configuration of the VNF + instance either directly (if the VNF instance is in INSTANTIATED + state at the time of the modification) or as part of the subsequent + VNF instantiation operation (if the VNF instance is in NOT_INSTANTIATED + state at the time of the modification). + Configurable properties referred in these attributes shall be declared + in the VNFD. + The declaration of configurable properties in the VNFD can optionally + contain the specification of initial values. + ETSI GS NFV-SOL 001 specifies the structure and format of the + VNFD based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as configuration + parameters applicable to a VNF. Some of these are set prior to instantiation + and cannot be modified if the VNF is instantiated, some are set prior to + instantiation (are part of initial configuration) and can be modified later, + and others can be set only after instantiation. The applicability of certain + configuration may depend on the VNF and the required operation of the VNF at + a certain point in time. + These configurable properties include the following standard attributes, + which are declared in the VNFD if auto-scaling and/or auto-healing are + supported by the VNF: + - isAutoscaleEnabled: If present, the VNF supports auto-scaling. If set + to true, auto-scaling is currently enabled. If set to false, auto-scaling + is currently disabled. + - isAutohealEnabled: If present, the VNF supports auto-healing. If set + to true, auto-healing is currently enabled. If set to false, auto-healing + is currently disabled. + This attributeThese attributes can be modified with the PATCH method. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" instantiationState: description: > @@ -148,17 +189,47 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VirtualStorageResourceInfo" metadata: description: > - Additional VNF-specific metadata describing the VNF instance. - Metadata that are writeable are declared in the VNFD. + 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 VNF provider foresees shall be declared in the VNFD. The VNFM shall + accept requests to write metadata that are not are declared in the VNFD. + + These attributes can be initialized with default values from VNFD and/or with values + passed in the CreateVnfRequest structure (see clause 5.5.2.3). + This attribute can be modified with the PATCH method. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - VNF specific attributes that affect the lifecycle management of this VNF instance by the VNFM, - or the lifecycle management scripts. Extensions that are writeable are declared in the VNFD. - This attribute 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 affect the lifecycle management of this + VNF instance by the VNFM, or the lifecycle management scripts. + These attributes represent values that are stored persistently in the VnfInstance + structure for consumption by the VNFM, or by the lifecycle management scripts + during the execution of VNF lifecycle management operations. + + Modifying the values of these attributes has no direct effect on the VNF instance; + however, the modified attribute values can be considered during subsequent VNF + lifecycle management operations, which means that the modified values can indirectly + affect the configuration of the VNF instance. + + All extensions that are allowed for the VNF shall be declared in the VNFD. + This attribute can be be initialized with default values from VNFD and/or + with values passed in the InstantiateVnfRequest structure (see clause 5.5.2.4). + + A value initialised with default values from the VNFD can be updated with values + passed in the InstantiateVnfRequest structure. + + Further, 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. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > @@ -175,78 +246,101 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" instantiate: description: > - Link to the "instantiate" task resource, if the related operation + Link to the "Instantiate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance in NOT_INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" terminate: description: > - Link to the "terminate" task resource, if the related operation + Link to the "Terminate VNF task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" scale: description: > - Link to the "scale" task resource, if the related operation is + Link to the "Scale VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" scaleToLevel: description: > - Link to the "scale_to_level" task resource, if the related + Link to the "Scale VNF to Level task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" changeFlavour: description: > - Link to the "change_flavour" task resource, if the related + Link to the "Change VNF flavour task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" heal: description: > - Link to the "heal" task resource, if the related operation is + Link to the "Heal VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" operate: description: > - Link to the "operate" task resource, if the related operation is + Link to the "Operate VNF task" resource, if the related operation is supported for this VNF instance, and is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" changeExtConn: description: > - Link to the "change_ext_conn" task resource, if the related + Link to the "Change external VNF connectivity task" resource, if the related operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - ChangeExtVnfConnectivityRequest: - description: > - This type represents request parameters for the - "Change external VNF connectivity" operation to modify the external - connectivity of a VNF instance. + InstantiateVnfRequest: type: object required: - - extVirtualLinks + - flavourId properties: + flavourId: + description: > + Identifier of the VNF deployment flavour to be instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + instantiationLevelId: + description: > + Identifier of the instantiation level of the deployment flavour to be + instantiated. If not present, the default instantiation level as + declared in the VNFD is instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" extVirtualLinks: description: > - Information about external VLs to change (e.g. connect the VNF to). + Information about external VLs to connect the VNF to. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + localizationLanguage: + description: > + Localization language of the VNF to be instantiated. The value shall + comply with the format defined in IETF RFC 5646. + type: string additionalParams: description: > Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "ChangeExtVnfConnectivityOpConfig".". + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute provides values for the "extensions" attribute in "VnfInstance", + as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, + the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeVnfFlavourRequest: @@ -281,10 +375,31 @@ definitions: additionalParams: description: > Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of + to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + TerminateVnfRequest: + type: object + required: + - terminationType + properties: + terminationType: + description: > + Indicates the type of termination is requested. + Permitted values: + * FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + type: string + enum: + - FORCEFUL + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the termination + process, specific to the VNF being terminated, as declared in the + VNFD as part of "TerminateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + HealVnfRequest: type: object properties: @@ -345,23 +460,78 @@ definitions: declared in the VNFD as part of "OperateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - TerminateVnfRequest: + ChangeExtVnfConnectivityRequest: + description: > + This type represents request parameters for the + "Change external VNF connectivity" operation to modify the external + connectivity of a VNF instance. type: object required: - - terminationType + - extVirtualLinks properties: - terminationType: + extVirtualLinks: description: > - Indicates the type of termination is requested. - Permitted values: - * FORCEFUL: The VNFM will shut down the VNF and release the - resources immediately after accepting the request. - type: string - enum: - - FORCEFUL + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" additionalParams: description: > - Additional parameters passed by the NFVO as input to the termination - process, specific to the VNF being terminated, as declared in the - VNFD as part of "TerminateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "ChangeExtVnfConnectivityOpConfig".". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfInfoModificationRequest: + description: > + This type represents attribute modifications for an "Individual VNF instance" resource, + i.e. modifications to a resource representation based on the "VnfInstance" data type. + The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 + are included in the "VnfInfoModificationRequest" data type. + The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. + type: object + properties: + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfdId: + description: > + New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadattametadata" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfcInfoModifications: + description: > + Modifications of certain entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. + type: array + items: + $ref: "#/definitions/VnfcInfoModifications" + vnfcInfoModificationsDeleteIds: + description: > + List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array + to be used as "deleteIdList" as defined below this table. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 71cd14f86d3d1280a365ef29d639169548a91e68..c94360518fe61ea5cfb14f9e05e019cf2d6bfaac 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.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: SOL002 - VNF Lifecycle Management Notification interface description: > SOL002 - VNF Lifecycle Management Notification interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /callback/v1 @@ -58,7 +58,7 @@ paths: The POST method delivers a notification from the server to the client. parameters: - name: VnfLcmOperationOccurrenceNotification - description: A notification about on-boarding of a VNF package. + description: A notification about lifecycle changes triggered by a VNF LCM operation occurrence. in: body required: true schema: @@ -82,7 +82,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + The notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -138,7 +138,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + The notification endpoint has been tested successfully. headers: WWW-Authenticate: description: > @@ -196,7 +196,7 @@ paths: - name: VnfIdentifierCreationNotification description: > A notification about the creation of a VNF identifier and the - related VNF instance resource. + related "Individual VNF instance" resource. in: body required: true schema: @@ -220,7 +220,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + The notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -276,7 +276,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + The notification endpoint has been tested successfully. headers: WWW-Authenticate: description: > @@ -334,7 +334,7 @@ paths: - name: VnfIdentifierDeletionNotification description: > A notification about the deletion of a VNF identifier and the - related VNF instance resource. + related "Individual VNF instance" resource. in: body required: true schema: @@ -358,7 +358,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + The notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -414,7 +414,7 @@ paths: description: > No Content - The notification endpoint was tested successfully. + The notification endpoint has been tested successfully. headers: WWW-Authenticate: description: > diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml index 4f81f3d43a5d5eafe166891be8d215c1d709212c..c425ca3b74a9e258355661e31397952c69c931d8 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml @@ -31,8 +31,9 @@ definitions: If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, the notification shall be sent after all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. + been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" + resource before the notification about the state change is sent. type: object required: - id @@ -159,7 +160,8 @@ definitions: Information about changed external connectivity, if this notification represents the result of a lifecycle operation occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". + "RESULT" and the "operation" has made any change of the external + connectivity of the VNF instance. Shall be absent otherwise. type: array items: diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index c76205246cd5f58242eee0ba478e4d1b49d3a705..1a4c178003c1be493fbef8e8463427d30a889028 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /vnfpm/v1 @@ -61,6 +61,9 @@ paths: post: description: > The POST method creates a PM job. + As the result of successful executing this method, a new + "Individual PM job" resource as defined in clause 6.4.3 shall + have been created. parameters: - name: CreatePmJobRequest description: The VNF creation parameters @@ -87,10 +90,11 @@ paths: description: > 201 CREATED - The PM job was created successfully. The response body shall - contain a representation of the created PM job resource. + Shall be returned when the PM job has been created successfully. + The response body shall contain a representation of the created + PM job resource. The HTTP response shall include a "Location" HTTP header that - points to the created PM job resource. + points to the created "Individual PM job" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -160,7 +164,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the PmJob and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. @@ -193,28 +197,32 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM shall support this parameter. The following attributes shall be excluded from the PmJob structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: @@ -226,7 +234,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -235,11 +243,16 @@ paths: description: > 200 OK - Information about zero or more PM jobs was queried successfully. + Shall be returned when information about zero or more PM jobs was queried successfully. The response body shall contain in an array the representations of zero or more PM jobs, as defined in clause 6.5.2.7. - If the VNFM 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 4.7.2.3. + 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, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013for 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. @@ -339,8 +352,9 @@ paths: description: > 200 OK - Information about an individual PM job was queried successfully. - The response body shall contain a representation of the PM job + Shall be returned when information about an individual PM job has been + ueried successfully. + The response body shall contain a representation of the "Individual PM job" resource. headers: Content-Type: @@ -390,12 +404,14 @@ paths: delete: description: > This method terminates an individual PM job. + As the result of successfully executing this method, the "Individual PM job" + resource shall not exist any longer. responses: 204: description: > 204 NO CONTENT - The PM job was deleted successfully. + Shall be returned when the PM job has been deleted successfully. The response body shall be empty. headers: Content-Type: @@ -489,10 +505,10 @@ paths: description: > 200 OK - Information of an individual performance report was read - successfully. - The response body shall contain a representation of the - performance report resource. + Shall be returned when information of an individual performance report + has been read successfully. + The response body shall contain a representation of the "Individual + performance report" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -561,10 +577,13 @@ paths: post: description: > The POST method can be used by the client to create a threshold. + As the result of successfully executing this method, a new + "Individual threshold" resource as defined in clause 6.4.6 shall + have been created. parameters: - name: CreateThresholdRequest description: > - Request parameters to create a threshold resource. + Request parameters to create a new "Individual threshold" resource. in: body required: true schema: @@ -588,10 +607,11 @@ paths: description: > 201 CREATED - A threshold was created successfully. The response body shall - contain a representation of the created threshold resource. + Shall be returned when a threshold has been created successfully. + The response body shall contain a representation of the created + "Individual threshold" resource. The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created threshold resource. + contains the resource URI of the created resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -654,7 +674,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the Thresholds and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. @@ -688,7 +708,8 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for + this resource. in: query required: false type: string @@ -699,10 +720,17 @@ paths: Information about zero or more thresholds was queried successfully. - The response body shall contain in an array the representations of zero or more thresholds, - as defined in clause 6.5.2.9. - If the VNFM 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 4.7.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. + The response body shall contain in an array the representations + of zero or more thresholds, as defined in clause 6.5.2.9. + If the VNFM 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. @@ -802,9 +830,9 @@ paths: description: > 200 OK - Information about an individual threshold was queried - successfully. The response body shall contain a - representation of the threshold. + Shall be returned when information about an individual threshold + has been queried successfully. + The response body shall contain a representation of the threshold. headers: Content-Type: description: The MIME type of the body of the response. @@ -853,6 +881,8 @@ paths: delete: 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: > @@ -866,7 +896,7 @@ paths: description: > 204 NO CONTENT - The threshold was deleted successfully. + Shall be returned when the threshold was deleted successfully. The response body shall be empty. headers: Version: @@ -929,6 +959,9 @@ paths: post: description: > The POST method creates a new subscription. + As the result of successfully executing this method, a new + "Individual subscription" resource as defined in clause 6.4.8 + shall have been created. This method shall not trigger any notification. parameters: - name: PmSubscriptionRequest description: > @@ -956,11 +989,11 @@ paths: description: > 201 CREATED - The subscription was created successfully. A representation of the - created subscription resource shall be returned in the response - body. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created subscription resource. + Shall be returned when the subscription was created successfully. + A representation of the created "Individual subscription" resource + shall be returned in the response body. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the created "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -990,10 +1023,11 @@ paths: description: > 303 SEE OTHER - A subscription with the same callbackURI and the same filter already exists and the policy of the VNFM - 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. + Shall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of the VNFM is to not + create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "Individual subscription" resource. The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: @@ -1035,7 +1069,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The EM may supply this parameter. All attribute names that appear in the PmSubscription and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. @@ -1069,7 +1103,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 - (paging) according to clause 4.7.2.1 for this resource. + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1078,12 +1112,16 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. + Shall be returned when the list of subscriptions was 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 PM subscriptions as defined in clause 6.5.2.3. - If the VNFM 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 4.7.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 VNFM 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. @@ -1183,8 +1221,9 @@ paths: description: > 200 OK - The subscription was read successfully. The response body shall - contain a representation of the subscription resource. + Shall be returned when the 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. @@ -1233,6 +1272,11 @@ paths: delete: description: > This method terminates an individual subscription. + 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: > @@ -1246,7 +1290,8 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been + deleted successfully. The response body shall be empty. headers: Version: diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 4746d9ff4c331566d75b7abda6df20b75ad457fe..239a1fbb1ef7d9f307f2e91e0b259efc4ed3800f 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 002 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf + description: ETSI GS NFV-SOL 002 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf basePath: /callback/v1 @@ -42,7 +42,9 @@ paths: Notify The POST method delivers a notification regarding a performance - management event from the server to the client. + management event from API producer to an API consumer. The API consumer + shall have previously created an "Individual subscription" resource with + a matching filter. parameters: - name: PerformanceInformationAvailableNotification description: > @@ -76,7 +78,7 @@ paths: description: > No Content - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -129,7 +131,9 @@ paths: description: > No Content - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been + tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -169,7 +173,9 @@ paths: Notify The POST method delivers a notification regarding a performance - management event from the server to the client. + management event from API producer to an API consumer. The API consumer + shall have previously created an "Individual subscription" resource with + a matching filter. parameters: - name: ThresholdCrossedNotification description: > @@ -203,7 +209,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -256,7 +262,9 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been + tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index e0036b3216f2a336feb0065fcb7df2f2871d0fd0..4ca4ae57cdc24e2f61bc05c5a99bca5fb546d119 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -15,8 +15,8 @@ info: contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf schemes: - http - https diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 3c20a60954afeeec16237ce018ac92c6da18ae65..b5b3ec174dbbe732619bc56c6a68b002d3b7e497 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnffm/v1" @@ -52,11 +52,10 @@ paths: #SOL003 location: 7.4.2 get: description: > - Get Alarm List - - - The client can use this method to retrieve information about the alarm - list. + Get Alarm List. + The client can use this method to retrieve information about the alarm list. + This method shall follow the provisions specified in the tables 7.4.2.3.2-1 and 7.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -74,7 +73,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. The following attribute names shall be supported by the VNFM in @@ -87,7 +86,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -103,12 +102,14 @@ paths: description: > 200 OK - Information about zero or more alarms was queried successfully. - The response body shall contain in an array the representations - of zero or more alarms as defined in clause 7.5.2.4. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more alarms has been queried successfully. + The response body shall contain in an array the representations of zero or more alarms as + defined in clause 7.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. + If the VNFM 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: > @@ -130,21 +131,28 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/Alarm" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/Alarm" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual alarm # ############################################################################### @@ -165,6 +173,8 @@ paths: get: description: > The client can use this method to read an individual alarm. + This method shall follow the provisions specified in the tables 7.4.3.3.2-1 and 7.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -198,9 +208,8 @@ paths: description: > 200 OK - Information about an individual alarm was read successfully. - The response body shall contain a representation of the individual - alarm. + Shall be returned when information about an individual alarm has been read successfully. + The response body shall contain a representation of the individual alarm headers: Content-Type: description: > @@ -210,34 +219,41 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "#/definitions/Alarm" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/Alarm" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + patch: description: > - Acknowledge Alarm - - + Acknowledge Alarm. This method modifies an individual alarm 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: AlarmModifications description: The VNF creation parameters in: body required: true schema: - $ref: "#/definitions/AlarmModifications" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" - name: Accept description: > Content-Types that are acceptable for the response. @@ -272,9 +288,9 @@ paths: description: > 200 OK - The request was accepted and completed. The response body shall - contain attribute modifications for an ‘Individual alarm’ - resource. + 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 7.5.2.4). headers: Content-Type: description: > @@ -292,25 +308,39 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/AlarmModifications" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFFaultManagement_resp.yaml#/responses/409-alarm-state-conflict" + 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). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### @@ -318,27 +348,27 @@ paths: #SOL003 location: 7.4.4 post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - 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 NFVO, and might make sense - only in very rare use cases. Consequently, the VNFM 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 follow the provisions specified in the tables 7.4.4.3.1-1 and 7.4.4.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 + as defined in clause 7.4.5 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + a new "Individual subscription" resource if another "Individual 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 "Individual subscription" resource (in which case it shall return + a "303 See Other" response code referencing the existing "Individual subscription" resource with the + same filter and callbackUri). parameters: - name: FmSubscriptionRequest description: The VNF creation parameters in: body required: true schema: - $ref: "#/definitions/FmSubscriptionRequest" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -371,10 +401,10 @@ paths: description: > 201 CREATED - The subscription was 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 + "Individual subscription" resource. headers: Content-Type: description: > @@ -388,6 +418,8 @@ paths: The resource URI of the created subscription resource. type: string format: url + maximum: 1 + minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided @@ -397,8 +429,19 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/FmSubscription" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the + same callbackURI and the same filter already exists + and the policy of the VNFM is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + existing "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -406,14 +449,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > Query Subscription Information @@ -446,7 +496,8 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 + of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the FmSubscription and in @@ -459,7 +510,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -474,14 +525,15 @@ paths: description: > 200 OK - The list of subscriptions was 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 7.5.2.3. - If the VNFM 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 4.7.2.3. + 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 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 VNFM 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: > @@ -511,23 +563,28 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "#/definitions/FmSubscription" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 412: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -539,18 +596,18 @@ paths: 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" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - - The client can use this method for reading an individual subscription - for VNF alarms subscribed by the client. + Query Subscription Information. + The client can use this method for reading an individual subscription for VNF alarms + subscribed by the client. + This method shall follow the provisions specified in the tables 7.4.5.3.2-1 and 7.4.5.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -610,27 +667,40 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "#/definitions/FmSubscription" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription - - + Terminate Subscription. This method terminates an individual subscription. + This method shall follow the provisions specified in the tables 7.4.5.3.5-1 and 7.4.5.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: Authorization description: > @@ -650,7 +720,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -673,24 +743,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - -############################################################################### -# Definitions # -############################################################################### -definitions: - Alarm: - $ref: "../definitions/SOL003_def.yaml#/definitions/Alarm" - AlarmModifications: - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" - FmSubscription: - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" - FmSubscriptionRequest: - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" \ No newline at end of file + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml b/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml deleted file mode 100644 index 7542c7ba16e437e3db6c8d642c73db6f8716aaf2..0000000000000000000000000000000000000000 --- a/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml +++ /dev/null @@ -1,28 +0,0 @@ -responses: - 409-alarm-state-conflict: - description: > - Conflict - - 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 should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index d3a58eb2ac4c27316ba7f87a3cf43534147725ff..f99c9621524bb363d24dd4af0ea610d08300f270 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,11 +46,11 @@ paths: #SOL003 location: 7.4.6 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. + 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 7.4.6.3.1-1 and 7.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmNotification description: > @@ -58,7 +58,7 @@ paths: in: body required: true schema: - $ref: "../definitions/SOL003_def.yaml#/definitions/AlarmNotification" + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmNotification" - name: Authorization description: > The authorization token for the request. @@ -85,7 +85,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -116,10 +116,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + 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 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. parameters: - name: Authorization description: > @@ -139,7 +142,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -170,6 +173,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint AlarmClearedNotification # ############################################################################### @@ -177,11 +181,11 @@ paths: #SOL003 location: 7.4.6 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. + 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 7.4.6.3.1-1 and 7.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmClearedNotification description: > @@ -216,7 +220,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -247,10 +251,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + 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 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. parameters: - name: Authorization description: > @@ -270,7 +277,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -301,6 +308,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint AlarmListRebuiltNotification # ############################################################################### @@ -308,11 +316,11 @@ paths: #SOL003 location: 7.4.6 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. + 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 7.4.6.3.1-1 and 7.4.6.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmListRebuiltNotification description: > @@ -347,7 +355,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -378,10 +386,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + 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 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. parameters: - name: Authorization description: > @@ -401,7 +412,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -431,4 +442,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 1ab0d7f685adb75f2f6686c1f61335c3daddcebd..81b9f87eba75094759f20cbe50fd4eeaab4a84b3 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnfind/v1" @@ -41,10 +41,10 @@ paths: #SOL003 location: 8.4.2 get: description: > - Get Indicator Value - - + Get Indicator Value. The GET method queries multiple VNF indicators. + 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: Accept description: > @@ -62,7 +62,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfIndicator and in @@ -75,7 +75,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -90,15 +90,14 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried - successfully. - The response body shall contain in an array the representations - of all VNF indicators that match the attribute filter, i.e. - zero or more representations of VNF indicators as defined in - clause 8.5.2.2. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more VNF indicators has been queried successfully. + The response body shall contain in an array the representations of all VNF indicators that match + the attribute filter, i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. + 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 VNFM 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: > @@ -137,14 +136,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNF indicators related to a VNF instance # ############################################################################### @@ -156,18 +162,17 @@ paths: Identifier of the VNF instance to which the VNF indicator applies. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new VNF instance resource. It can also be retrieved from the "id" + new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Get Indicator Value - - - The GET method queries multiple VNF indicators related to a VNF - instance. + Get Indicator Value. + The GET method queries multiple VNF indicators related to a VNF instance. + 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: > @@ -192,7 +197,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfIndicator and in @@ -205,7 +210,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -220,15 +225,15 @@ paths: description: > 200 OK - Information about zero or more VNF indicators was queried - successfully. - The response body shall contain in an array the representations - of all VNF indicators that are related to the particular VNF - instance and that match the attribute filter, i.e. zero or more - representations of VNF indicators as defined in clause 8.5.2.2. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more VNF indicators has been queried successfully. + The response body shall contain in an array the representations of all VNF indicators that are related + to the particular VNF instance and that match the attribute filter, i.e. zero or more representations + of VNF indicators as defined in clause 8.5.2.2. + 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 VNFM 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: > @@ -267,14 +272,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF indicator # ############################################################################### @@ -285,8 +297,8 @@ paths: description: > Identifier of the VNF indicator. This identifier can be retrieved from the resource referenced by the - payload body in the response to a POST request creating a new VNF - instance resource. + payload body in the response to a POST request creating a new "Individual VNF + instance" resource. in: path type: string required: true @@ -295,17 +307,17 @@ paths: Identifier of the VNF instance to which the VNF indicator applies. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new VNF instance resource. It can also be retrieved from the "id" + new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Get Indicator Value - - + Get Indicator Value. The GET method reads a VNF indicator. + 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: Accept description: > @@ -338,10 +350,8 @@ paths: 200: description: > 200 OK - - The VNF indicator was read successfully. - The response body shall contain the representation of the VNF - indicator. + Shall be returned when the VNF indicator has been read successfully. + The response body shall contain the representation of the VNF indicator. headers: Content-Type: description: > @@ -372,34 +382,41 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### '/subscriptions': post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - 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 NFVO, and might make sense only in - very rare use cases. Consequently, the VNFM 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). + As the result of successfully executing this method, a new "Individual subscription" resource + as defined in clause 8.4.6 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + a new "Individual subscription" resource if another "Individual 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 "Individual subscription" resource (in which case it shall return + a "303 See Other" response code referencing the existing "Individual subscription" resource with the same + filter and callbackUri). + This method shall follow the provisions specified in the tables 8.4.5.3.1-1 and 8.4.5.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: VnfIndicatorSubscriptionRequest description: Details of the subscription to be created. @@ -439,11 +456,9 @@ paths: description: > 201 CREATED - The subscription was 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 resource. headers: Content-Type: description: > @@ -475,6 +490,17 @@ paths: items: $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the + same callbackURI and the same filter already + exists and the policy of the VNFM is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of + the existing "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -482,22 +508,28 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - 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. + Query Subscription Information. + 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 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: > @@ -522,7 +554,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfIndicatorSubscription @@ -535,7 +567,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -550,15 +582,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The response body shall contain in an array the representations - of all active subscriptions of the functional block that invokes - the method which match the attribute filter, i.e. zero or more - representations of VNF indicator subscriptions as defined in - clause 8.5.2.4. - If the VNFM 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 4.7.2.3. + 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 which match the attribute filter, + i.e. zero or more representations of VNF indicator subscriptions as defined in clause 8.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. + If the VNFM 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: > @@ -601,14 +633,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -620,17 +659,17 @@ paths: 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" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method reads an individual subscription. + This method shall follow the provisions specified in the tables 8.4.6.3.2-1 and 8.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -664,9 +703,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 "Individual subscription" resource. headers: Content-Type: description: > @@ -697,20 +735,33 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription - - + Terminate Subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 8.4.6.3.5-1 and 8.4.6.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: Authorization description: > @@ -737,7 +788,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -760,11 +811,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 31cc80514cc342747a2b550890772cde4d6433b9..eabfcf97488882d4c5762743af58098e2b701437 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,11 +46,11 @@ paths: #SOL003 location: 8.4.7 post: description: > - Notify - - - The POST method notifies a VNF alarm or that the alarm list has been - rebuilt. + Notify. + 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 8.4.7.3.1-1 and 8.4.7.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: AlarmListRebuiltNotification description: > @@ -77,7 +77,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -108,10 +108,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + 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 tables 8.4.7.3.2-1 and 8.4.7.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -130,8 +133,7 @@ paths: 204: description: > 204 NO CONTENT - - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -161,4 +163,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 9655467b2e7b968aae25d57b6e306f9c0896ddc4..3d1a37f7b91cb65ec484f0942d58316b683d4fe1 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.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: SOL003 - VNF Lifecycle Management interface description: > SOL003 - VNF Lifecycle Management interface definition @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnflcm/v1" @@ -51,12 +51,16 @@ paths: '/vnf_instances': #SOL003 location: 5.4.2 post: - #TODO: Add headers defined in 4.3.4.2 description: > - Create VNF Identifier - - + Create VNF Identifier. The POST method creates a new VNF instance resource. + This method shall follow the provisions specified in the tables 5.4.2.3.1-1 and 5.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 VNF instance" + resource as defined in clause 5.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 VnfIdentifierCreationNotification shall be triggered as part of successfully + executing this method as defined in clause 5.5.2.18. parameters: - name: createVnfRequest description: The VNF creation parameters @@ -93,7 +97,15 @@ paths: type: string responses: 201: - description: A VNF Instance identifier was created successfully + description: > + 201 CREATED + + Shall be returned when a new "Individual VNF instance" resource and + the associated VNF instance identifier washas been created successfully. + The response body shall contain a representation of the created VNF instance, + 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 VNF instance. headers: Content-Type: description: The MIME type of the body of the response. @@ -101,9 +113,11 @@ paths: maximum: 1 minimum: 1 Location: - description: The resource URI of the created VNF instance + description: The resource URI of the created VNF instance. type: string format: url + maximum: 1 + minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided @@ -119,7 +133,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -129,24 +143,21 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query VNF - - + Query VNF. The GET method queries information about multiple VNF instances. parameters: - name: Accept @@ -165,45 +176,44 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. - The VNFM shall support receiving this parameter as part of the - URI query string. The NFVO may supply this parameter. - All attribute names that appear in the VnfInstance and in data - types referenced from it shall be supported by the VNFM in the - filter expression. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + The VNFM shall support receiving this parameter as part of the URI query string. + The NFVO may supply this parameter. + All attribute names that appear in the VnfInstance and in data types referenced from + it shall be supported by the VNFM in the filter expression. in: query required: false type: string - name: all_fields description: > - Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. + The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > - Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM 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 VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > - Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM 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 VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfInstance structure in the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - vnfConfigurableProperties - - vimConnectionInfo + - vimConnectionInfo - instantiatedVnfInfo - metadata - extensions @@ -213,8 +223,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 - for this resource. + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -227,16 +237,18 @@ paths: responses: 200: description: > - OK + 200 OK - Information about zero or more VNF instances was queried - successfully. The response body shall contain in an array - the representations of zero or more VNF instances, as defined - in clause 5.5.2.2. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more VNF instances has been queried successfully. + The response body shall contain in an array the representations of zero or more VNF instances, + as defined in clause 5.5.2.2. + 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, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.7.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 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. @@ -266,7 +278,7 @@ paths: schema: type: array items: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -276,17 +288,18 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF instance # ############################################################################### @@ -303,13 +316,14 @@ paths: in: path type: string required: true + get: description: > - Query VNF - + Query VNF. - The GET method retrieves information about a VNF instance by reading - an individual VNF instance resource. + The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource. + This method shall follow the provisions specified in the tables 5.4.3.3.2-1 and 5.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -341,11 +355,10 @@ paths: responses: 200: description: > - OK + 200 OK - Information about zero or more VNF instances was queried - successfully. The response body shall contain - representations of zero or more VNF instances. + Shall be returned when information about an individual VNF instance has been read successfully. + The response body shall contain a representation of the VNF instance, as defined in clause 5.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. @@ -367,7 +380,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -377,37 +390,40 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + patch: #SOL003 location: 5.4.3.3.4 description: > - Modify VNF Information - - - This method modifies an individual VNF instance resource. Changes to - the VNF configurable properties are applied to the configuration in - the VNF instance, and are reflected in the representation of this - resource. Other changes are applied to the VNF instance information - managed by the VNFM, and are reflected in the representation of this - resource + Modify VNF Information. + This method modifies an "Individual VNF instance" resource. + Changes to the VNF configurable properties are applied to the configuration in the VNF instance, + and are reflected in the representation of this resource. + Other changes are applied to the VNF instance information managed by the VNFM, and are reflected + in the representation of this resource. + This method shall follow the provisions specified in the tables 5.4.3.3.4-1 and 5.4.3.3.4-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 5.4.1.2. parameters: - name: VnfInfoModificationRequest description: > - Input parameters for VNF info modification. + Parameters for the VNF modification, as defined in clause 5.5.2.12. + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. required: true in: body schema: - $ref: "../definitions/SOL003_def.yaml#/definitions/VnfInfoModificationRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModificationRequest" - name: Authorization description: > The authorization token for the request. @@ -422,7 +438,8 @@ paths: in: header required: true type: string - enum: ["application/merge-patch+json"] + enum: + - application/merge-patch+json - name: Version description: > Version of the API requested to use when responding to this request. @@ -431,7 +448,36 @@ paths: type: string responses: 202: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location-empty" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + On success, the HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "Individual VNF LCM operation occurrence" + resource corresponding to the operation. + The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -441,24 +487,35 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing" + 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 VNF instance" resource. + Typically, this is due to the fact that another LCM operation is ongoing. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + delete: #SOL003 location: 5.4.3.3.5 description: > - Delete VNF Identifier - - - This method deletes an individual VNF instance resource. + Delete VNF Identifier. + This method deletes an "Individual VNF instance" resource. + This method shall follow the provisions specified in the tables 5.4.3.3.5-1 and 5.4.3.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 VNF instance" resource + shall not exist any longer. + A notification of type "VnfIdentifierDeletionNotification" shall be triggered as part of successfully + executing this method as defined in clause 5.5.2.19. parameters: - name: Authorization description: > @@ -476,10 +533,10 @@ paths: responses: 204: description: > - No Content + 204 NO CONTENT - The VNF instance resource and the associated VNF identifier were - deleted successfully. + Shall be returned when the "Individual VNF instance" resource and the associated + VNF identifier were deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -505,17 +562,24 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 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 that the "Individual VNF instance" resource is in INSTANTIATED state. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Instantiate VNF task # ############################################################################### @@ -535,17 +599,22 @@ paths: post: #SOL003 location: 5.4.4.3.1 description: > - Instantiate VNF - - + Instantiate VNF. The POST method instantiates a VNF instance. + This method shall follow the provisions specified in the tables 5.4.4.3.1-1 and 5.4.4.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 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "instantiationState" attribute to the value "INSTANTIATED" and the "vnfState" + attribute to the value "STARTED" in the representation of the "Individual VNF instance" resource. parameters: - name: InstantiateVnfRequest description: Parameters for the VNF instantiation. in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -576,19 +645,20 @@ paths: responses: 202: description: > - Accepted + 202 ACCEPTED - The request was accepted for processing, but the processing has - not been completed. + Shall be returned when the request has been accepted for processing The response body shall be empty. The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation + contains the URI of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Location: description: The resource URI of the created VNF instance type: string format: url + maximum: 1 + minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided @@ -612,17 +682,28 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 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 that the "Individual VNF instance" resource is in INSTANTIATED state, + or that a required child attribute of the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Scale VNF task # ############################################################################### @@ -633,7 +714,7 @@ paths: description: > Identifier of the VNF instance to be scaled. This identifier can be retrieved from the resource referenced by the "Location" HTTP header - in the response to a POST request creating a new VNF instance + in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -642,11 +723,15 @@ paths: post: #SOL003 location: 5.4.5.3.1 description: > - Scale VNF - - - The POST method requests to scale a VNF instance resource - incrementally. + Scale VNF. + The POST method requests to scale a VNF instance resource incrementally. + This method shall follow the provisions specified in the tables 5.4.5.3.1-1 and 5.4.5.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 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute + in the representation of the "Individual VNF instance" resource. parameters: - name: ScaleVnfRequest description: Parameters for the scale VNF operation. @@ -683,7 +768,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -691,17 +804,39 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if + the task is not supported for the VNF instance represented by the parent resource, which means that the + task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 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 that the "Individual VNF instance" resource is in + NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing, or that + a required child attribute of the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Scale VNF to Level task # ############################################################################### @@ -713,7 +848,7 @@ paths: Identifier of the VNF instance to be scaled to a target level. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new VNF instance resource. It can also be retrieved from the "id" + new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string @@ -721,11 +856,15 @@ paths: post: #SOL003 location: 5.4.6.3.1 description: > - Scale VNF to Level - - - The POST method requests to scale a VNF instance resource to a target - level. + Scale VNF to Level. + The POST method requests to scale a VNF instance resource to a target level. + This method shall follow the provisions specified in the tables 5.4.6.3.1-1 and 5.4.6.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 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute + in the representation of the "Individual VNF instance" resource. parameters: - name: ScaleVnfToLevelRequest description: Parameters for the scale VNF to Level operation. @@ -762,7 +901,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -770,17 +937,39 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task + is not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 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 that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Change VNF Flavour task # ############################################################################### @@ -792,7 +981,7 @@ paths: The identifier of the VNF instance of which the deployment flavour is requested to be changed. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the - response to a POST request creating a new VNF instance resource. It + response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -800,17 +989,22 @@ paths: required: true post: description: > - Change VNF Flavour - - - The POST method changes the deployment flavour of a VNF instance. + Change VNF Flavour. + This method shall follow the provisions specified in the tables 5.4.7.3.1-1 and 5.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 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "flavourId" attribute in the representation of the "Individual VNF instance" + resource to the value of the "newFlavourId" attribute passed in the "ChangeVnfFlavourRequest" + data in the POST request. parameters: - name: ChangeVnfFlavourRequest description: Parameters for the Change VNF Flavour operation. in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -840,7 +1034,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -848,17 +1070,39 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task + is not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 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 that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Terminate VNF task # ############################################################################### @@ -869,7 +1113,7 @@ paths: description: > The identifier of the VNF instance to be terminated. This identifier can be retrieved from the resource referenced by the "Location" HTTP - header in the response to a POST request creating a new VNF instance + header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -877,17 +1121,22 @@ paths: required: true post: description: > - Terminate VNF - - + Terminate VNF. The POST method terminates a VNF instance. + This method shall follow the provisions specified in the tables 5.4.8.3.1-1 and 5.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 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "instantiationState" attribute in the representation of the "Individual VNF instance" + resource to the value "NOT_INSTANTIATED". parameters: - name: TerminateVnfRequest description: Parameters for the VNF termination. in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -917,7 +1166,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -927,15 +1204,27 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 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 that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Heal VNF task # ############################################################################### @@ -946,7 +1235,7 @@ paths: description: > Identifier of the VNF instance to be healed. This identifier can be retrieved from the resource referenced by the "Location" HTTP - header in the response to a POST request creating a new VNF instance + header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -954,17 +1243,19 @@ paths: required: true post: description: > - Heal VNF - - - The POST method requests to heal a VNF instance resource. + Heal VNF. + The POST method requests to heal a VNF instance. + This method shall follow the provisions specified in the tables 5.4.9.3.1-1 and 5.4.9.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 5.4.1.2. parameters: - name: HealVnfRequest description: Parameters for the Heal VNF operation. in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -994,7 +1285,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1002,17 +1321,39 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task is + not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 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 that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Operate VNF task # ############################################################################### @@ -1023,7 +1364,7 @@ paths: description: > Identifier of the VNF instance to be operated. This identifier can be retrieved from the resource referenced by the "Location" HTTP - header in the response to a POST request creating a new VNF instance + header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -1031,17 +1372,22 @@ paths: required: true post: description: > - Operate VNF - - + Operate VNF. The POST method changes the operational state of a VNF instance resource. + This method shall follow the provisions specified in the tables 5.4.10.3.1-1 and 5.4.10.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 5.4.1.2. + In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, + it shall set the "vnfState" attribute in the representation of the "Individual VNF instance" resource + to the value of the "changeStateTo" attribute passed in the "OperateVnfRequest" data in the POST request. parameters: - name: OperateVnfRequest description: Parameters for the Operate VNF operation. in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1071,7 +1417,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1079,17 +1453,39 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task is + not supported for the VNF instance represented by the parent resource, which means that the task resource + consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 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 that the VNF instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is ongoing, or that a required child attribute of + the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Change external VNF connectivity task # ############################################################################### @@ -1101,7 +1497,7 @@ paths: Identifier of the VNF instance of which the external connectivity is requested to be changed. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to - a POST request creating a new VNF instance resource. It can also be + a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path @@ -1109,10 +1505,12 @@ paths: required: true post: description: > - Change External VNF Connectivity - - + Change External VNF Connectivity. The POST method changes the external connectivity of a VNF instance. + This method shall follow the provisions specified in the tables 5.4.11.3.1-1 and 5.4.11.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 5.4.1.2. parameters: - name: ChangeExtVnfConnectivityRequest description: > @@ -1120,7 +1518,7 @@ paths: in: body required: true schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest" + $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1150,7 +1548,35 @@ paths: type: string responses: 202: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location" + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1160,15 +1586,26 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing" + 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 that another lifecycle management operation is ongoing, + or that a required child attribute of the "extensions" attribute has not been set. + Those attributes are marked as "required" in the VNFD. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNF LCM operation occurrences # ############################################################################### @@ -1176,11 +1613,11 @@ paths: #SOL003 location: 5.4.12 get: description: > - Get Operation Status - - - The client can use this method to query status information about - multiple VNF lifecycle management operation occurrences. + Get Operation Status. + The client can use this method to query status information about multiple + VNF lifecycle management operation occurrences. + This method shall follow the provisions specified in the tables 5.4.12.3.2-1 and 5.4.12.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1198,45 +1635,44 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. - The VNFM shall support receiving this parameter as part of the - URI query string. The NFVO may supply this parameter. - All attribute names that appear in the VnfLcmOpOcc and in data - types referenced from it shall be supported by the VNFM in the - filter expression. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. + The VNFM shall support receiving this parameter as part of the URI query string. + The NFVO may supply this parameter. + All attribute names that appear in the VnfLcmOpOcc and in data types referenced from it + shall be supported by the VNFM in the filter expression. in: query required: false type: string - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfLcmOpOcc structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - vnfConfigurableProperties - - vimConnectionInfo + - vimConnectionInfo - instantiatedVnfInfo - metadata - extensions @@ -1246,7 +1682,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -1262,14 +1698,17 @@ paths: description: > 200 OK - Status information for zero or more VNF lifecycle management - operation occurrences was queried successfully. The response body - shall contain in an array the status information about zero or - more VNF lifecycle operation occurrences. - If the VNFM 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 4.7.2.3. + Shall be returned when status information for zero or more VNF lifecycle management + operation occurrences has been queried successfully. + The response body shall contain in an array the status information about zero or more + VNF lifecycle operation occurrences, as defined in clause 5.5.2.13. + 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, respectively. + If the VNFM 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. @@ -1297,7 +1736,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1307,15 +1746,16 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF LCM operation occurrence # ############################################################################### @@ -1335,12 +1775,11 @@ paths: type: string get: description: > - Get Operation Status - - - The client can use this method to retrieve status information about a - VNF lifecycle management operation occurrence by reading an individual - "VNF LCM operation occurrence" resource. + Get Operation Status. + The client can use this method to retrieve status information about a VNF lifecycle + management operation occurrence by reading an "Individual VNF LCM operation occurrence" resource. + This method shall follow the provisions specified in the tables 5.4.13.3.2-1 and 5.4.13.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1367,10 +1806,9 @@ paths: description: > 200 OK - Information about an individual VNF instance was queried - successfully. The response body shall contain status - information about a VNF lifecycle management operation - occurrence. + Shall be returned when information about a VNF LCM operation occurrence washas been read successfully. + The response body shall contain status information about a VNF lifecycle management operation occurrence + (see clause 5.5.2.13). headers: Content-Type: description: The MIME type of the body of the response. @@ -1392,7 +1830,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1402,15 +1840,16 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Retry operation task # ############################################################################### @@ -1430,9 +1869,15 @@ paths: type: string post: description: > - The POST method initiates retrying a VNF lifecycle operation if that - operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + The POST method initiates retrying a VNF lifecycle operation if that operation + has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" + resource is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the tables 5.4.14.3.1-1 and 5.4.14.3.1-2 + for URI query parameters, request and response data structures, and response codes. + In case of success of processing the asynchronous request, the "operationState" attribute + in the representation of the parent resource shall be changed to "PROCESSING" and the applicable + "start" notification according to clause 5.6.2.2 shall be emitted to indicate that the underlying + VNF LCM operation occurrence proceeds. parameters: - name: Authorization description: > @@ -1452,7 +1897,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + Shall be returned when the request has been accepted for processing. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1475,17 +1920,37 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + 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 VNF LCM operation occurrence represented by the parent resource, + which means that the task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 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 VNF LCM operation occurrence. + Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as rollback or fail. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Rollback operation task # ############################################################################### @@ -1505,9 +1970,15 @@ paths: type: string post: description: > - The POST method initiates rolling back a VNF lifecycle operation if - that operation has experienced a temporary failure, i.e. the related - "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + The POST method initiates rolling back a VNF lifecycle operation if that operation + has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" + resource is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the tables 5.4.15.3.1-1 and 5.4.15.3.1-2 + for URI query parameters, request and response data structures, and response codes. + In case of success of processing the asynchronous request, the "operationState" attribute + in the representation of the parent resource shall be changed to "ROLLING_BACK" and the applicable + "start" notification according to clause 5.6.2.2 shall be emitted to indicate that rollback of the + underlying VNF LCM operation occurrence is attempted. parameters: - name: Authorization description: > @@ -1527,7 +1998,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + Shall be returned when the request has been accepted for processing. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1550,17 +2021,37 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + 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 VNF LCM operation occurrence represented by the parent resource, + which means that the task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 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 VNF LCM operation occurrence. + Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as rollback or fail. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Fail operation task # ############################################################################### @@ -1580,9 +2071,14 @@ paths: type: string post: description: > - The POST method marks a VNF lifecycle management operation occurrence - as "finally failed" if that operation occurrence is in "FAILED_TEMP" - state. + The POST method marks a VNF lifecycle management operation occurrence as "finally failed" + if that operation occurrence is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the tables 5.4.16.3.1-1 and 5.4.16.3.1-2 + for URI query parameters, request and response data structures, and response codes. + In case of success, the "operationState" attribute in the representation of the parent resource + shall be changed to "FAILED" and the applicable "result" notification according to clause 5.6.2.2 + shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence + has finally and unrecoverably failed. parameters: - name: Accept description: > @@ -1609,9 +2105,9 @@ paths: description: > 200 OK - The state of the VNF lifecycle management operation occurrence was - changed successfully. The response shall include a representation - of the VNF lifecycle operation occurrence resource. + Shall be returned when the state of the VNF lifecycle management operation occurrence + has been changed successfully. + The response shall include a representation of the "Individual VNF lifecycle operation occurrence" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1633,7 +2129,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1641,17 +2137,37 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: + description: > + 404 NOT FOUND + + 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, + including rules for the presence of the response body. + Specifically in case of this task resource, the response code 404 shall also returned if the task + is not supported for the VNF LCM operation occurrence represented by the parent resource, which means + that the task resource consequently does not exist. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 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 VNF LCM operation occurrence. + Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as retry or rollback. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Cancel operation task # ############################################################################### @@ -1671,10 +2187,30 @@ paths: type: string post: description: > - The POST method initiates cancelling an ongoing VNF lifecycle - operation while it is being executed or rolled back, i.e. the related - "VNF LCM operation occurrence" is either in "PROCESSING" or - "ROLLING_BACK" state. + The POST method initiates cancelling an ongoing VNF lifecycle operation while + it is being executed or rolled back, i.e. the related "Individual VNF LCM operation occurrence" + resource is either in "STARTING" or "PROCESSING" or "ROLLING_BACK" state. + This method shall follow the provisions specified in the tables 5.4.17.3.1-1 and 5.4.17.3.1-2 + for URI query parameters, request and response data structures, and response codes. + Before returning the "202 Accepted" response, the VNFM shall update the "isCancelPending" + and "cancelMode" attributes in the representation of the parent resource according to the + provisions in clause 5.5.2.13. + + In case of success of processing the asynchronous request: + 1) If the request has been processed in "STARTING" state, the "operationState" attribute + in the representation of the parent resource shall be changed to "ROLLED_BACK". + 2) 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 VNFM shall update the "isCancelPending" and "cancelMode" attributes + in the representation of the parent resource according to the provisions in clause 5.5.2.13 + to reflect the new status, and the applicable "result" notification according to clause 5.6.2.2 + shall be emitted to indicate that the execution of the underlying VNF 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: Authorization description: > @@ -1694,7 +2230,7 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but processing has not been completed. + Shall be returned when the request has been accepted for processing. The response shall have an empty payload body. headers: WWW-Authenticate: @@ -1719,40 +2255,25 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: description: > - Conflict + 409 CONFLICT - The operation cannot be executed currently, due to a conflict with - the state of the VNF LCM operation occurrence resource. - Typically, this is due to the fact that the operation occurrence - is not in STARTING, PROCESSING or ROLLING_BACK state. - The response body shall contain a ProblemDetails structure, in - which the "detail" attribute shall convey more information about - the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the VNF LCM operation occurrence. + Typically, this is due to the fact that the operation occurrence is not in STARTING, + PROCESSING or ROLLING_BACK state. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### @@ -1760,20 +2281,20 @@ paths: #SOL003 location: 5.4.18 post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - 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 NFVO, and might make sense only in - very rare use cases. Consequently, the VNFM 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 follow the provisions specified in the tables 5.4.18.3.1-1 and 5.4.18.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 as defined in clause 5.4.3 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + an "Individual subscription" resource if another "Individual 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 "Individual subscription" resource (in which case it shall + return a "303 See Other" response code referencing the existing "Individual subscription" resource + with the same filter and callbackUri). parameters: - name: LccnSubscriptionRequest description: > @@ -1814,10 +2335,10 @@ paths: description: > 201 CREATED - The subscription was 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 + "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1846,33 +2367,14 @@ paths: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: description: > - See Other + 303 SEE OTHER - A subscription with the same callbackURI and the same filter already - exists and the policy of the VNFM 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. + Shall be returned if a subscription with the same callbackURI and the same filter already exists + and the policy of the VNFM is to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing + "Individual subscription" resource. The response body shall be empty. - headers: - Location: - description: The resource URI of the created VNF instance - type: string - format: url - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1880,7 +2382,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -1889,11 +2391,11 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > - Query Subscription Information - - + Query Subscription Information. 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. @@ -1942,15 +2444,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. The response - body shall contain the in an array 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 5.5.2.16. - If the VNFM 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 4.7.2.3. + 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 5.5.2.16. + 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 VNFM supports alternative 2 (paging) according to clause 5.4.7.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 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013. headers: Content-Type: description: The MIME type of the body of the response. @@ -1980,29 +2482,7 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: - description: > - Bad Request - - Invalid attribute-based filtering parameters. - The response body shall contain a ProblemDetails structure, in - which the "detail" attribute should convey more information about - the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: @@ -2010,13 +2490,16 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -2035,11 +2518,10 @@ paths: required: true get: description: > - Query Subscription Information - - - The GET method retrieves information about a subscription by reading - an individual subscription resource. + Query Subscription Information. + The GET method retrieves information about a subscription by reading an "Individual subscription" resource. + This method shall follow the provisions specified in the tables 5.4.19.3.2-1 and 5.4.19.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -2066,9 +2548,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 "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2100,19 +2581,29 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription + Terminate Subscription. + The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 5.4.19.3.5-1 and 5.4.19.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 - The DELETE method terminates an individual subscription. + API consumer for a certain time period after the deletion. parameters: - name: Authorization description: > @@ -2132,7 +2623,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -2158,10 +2649,12 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..28a170a3919c86271d2e0fbc55779e7c95ad0170 --- /dev/null +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -0,0 +1,677 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + VnfInstance: + description: > + This type represents a VNF instance. + type: object + required: + - id + - vnfdId + - vnfProvider + - vnfProductName + - vnfSoftwareVersion + - vnfdVersion + - instantiationState + properties: + id: + description: > + Identifier of the VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfInstanceName: + description: > + Name of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfInstanceDescription: + description: > + Human-readable description of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfdId: + description: > + Identifier of the VNFD on which the VNF instance is based. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + Provider of the VNF and the VNFD. The value is copied from the VNFD. + type: string + vnfProductName: + description: > + Name to identify the VNF Product. The value is copied from the VNFD. + type: string + vnfSoftwareVersion: + description: > + Software version of the VNF. The value is copied from the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + Identifies the version of the VNFD. The value is copied from the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfConfigurableProperties: + description: > + Current values of the configurable properties of the VNF instance. + Configurable properties referred in this attribute are declared in + the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD + based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as + configuration parameters applicable to a VNF. Some of these are set + prior to instantiation and cannot be modified if the VNF is + instantiated, some are set prior to instantiation (are part of + initial configuration) and can be modified later, and others can be + set only after instantiation. The applicability of certain + configuration may depend on the VNF and the required operation of + the VNF at a certain point in time. + These configurable properties include the following standard + attributes, which are declared in the VNFD if auto-scaling and/or + auto-healing are supported by the VNF: + * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If + set to true, auto-scaling is currently enabled. If set to false, + auto-scaling is currently disabled. + * isAutohealEnabled: If present, the VNF supports auto-healing. If + set to true, auto-healing is currently enabled. If set to false, + auto-healing is currently disabled. + This attribute can be modified with the PATCH method. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance. This attribute shall only be + supported and present if VNF-related resource management in direct + mode is applicable. + This attribute can be modified with the PATCH method. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + instantiationState: + description: > + The instantiation state of the VNF. + type: string + enum: + - NOT_INSTANTIATED + - INSTANTIATED + instantiatedVnfInfo: + description: > + Information specific to an instantiated VNF instance. This attribute + shall be present if the instantiateState attribute value is + INSTANTIATED. + type: object + required: + - flavourId + - vnfState + properties: + flavourId: + description: > + Identifier of the VNF deployment flavour applied to this VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfState: + description: > + The state of the VNF instance. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" + scaleStatus: + description: > + Scale status of the VNF, one entry per aspect. + Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + This attribute shall be present if the VNF supports scaling. + See clause B.2 for an explanation of VNF scaling. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" + extCpInfo: + description: > + Information about the external CPs exposed by the VNF instance. + type: array + minItems: 1 + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfExtCpInfo" + extVirtualLinkInfo: + description: > + Information about the external VLs the VNF instance is connected to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + extManagedVirtualLinkInfo: + description: > + External virtual links the VNF instance is connected to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkInfo" + monitoringParameters: + description: > + Active monitoring parameters. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/MonitoringParameter" + localizationLanguage: + description: > + Information about localization language of the VNF (includes e.g. + strings in the VNFD). The localization languages supported by a VNF + can be declared in the VNFD, and localization language selection can + take place at instantiation time. + The value shall comply with the format defined in IETF RFC 5646. + type: string + vnfcResourceInfo: + description: > + Information about the virtualised compute and storage resources used + by the VNFCs of the VNF instance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcResourceInfo" + virtualLinkResourceInfo: + description: > + Information about the virtualised network resources used by the VLs + of the VNF instance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfVirtualLinkResourceInfo" + virtualStorageResourceInfo: + description: > + Information on the virtualised storage resource(s) used as storage for the VNF instance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/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 the VNF provider foresees are expected to be declared in the VNFD. + The declaration of metadata in the VNFD can optionally contain the specification of initial values. + The VNFM shall accept requests to write metadata that are not declared in the VNFD. + These attributes can be initialized with default values from the VNFD or with values + passed in the CreateVnfRequest structure (see clause 5.5.2.3). + This attributeThese attributes can be created, modified or removed with the PATCH method. + + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with + a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" + that have no declared initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure + for consumption by the VNFM or the lifecycle management scripts during the execution of + VNF lifecycle management operations. + All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension + in the VNFD contains information on whether its presence is optional or required, and optionally + can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension + attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined + in clause 6.4 of ETSI GS NFV-SOL 013. + Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified + attribute values can be considered during subsequent VNF lifecycle management operations, which means that + the modified values can indirectly affect the configuration of the VNF instance. + These attributes can be initialized with default values from the VNFD or with values passed in the + InstantiateVnfRequest structure (see clause 5.5.2.4). + Attributes initialized with default values from the VNFD can be updated with values passed in the + InstantiateVnfRequest structure. + Further, these attributes can be created, modified or deleted with the PATCH method. + + Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with + a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" + that have no declared initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: URI of this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + indicators: + description: Indicators related to this VNF instance, if applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + instantiate: + description: > + Link to the "Instantiate VNF task" resource, if the related operation + is possible based on the current status of this VNF instance + resource (i.e. VNF instance in NOT_INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + terminate: + description: > + Link to the "Terminate VNF task" resource, if the related operation + is possible based on the current status of this VNF instance + resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + scale: + description: > + Link to the "Scale VNF task" resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource (i.e. VNF instance + is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + scaleToLevel: + description: > + Link to the "Scale VNF to level task" resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + changeFlavour: + description: > + Link to the "Change VNF flavour task" resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + heal: + description: > + Link to the "Heal VNF task" resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + operate: + description: > + Link to the "Operate VNF task" resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + changeExtConn: + description: > + Link to the "Change external VNF connectivity task" resource, if the related + operation is possible based on the current status of this VNF + instance resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + InstantiateVnfRequest: + #SOL003 location: 5.5.2.4 + type: object + required: + - flavourId + properties: + flavourId: + description: > + Identifier of the VNF deployment flavour to be instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + instantiationLevelId: + description: > + Identifier of the instantiation level of the deployment flavour to be + instantiated. If not present, the default instantiation level as + declared in the VNFD is instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about internal VLs that are managed by the NFVO. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to + external / externally-managed virtual links. This attribute shall + only be supported and may be present if VNF-related resource + management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + localizationLanguage: + description: > + Localization language of the VNF to be instantiated. The value shall + comply with the format defined in IETF RFC 5646. + type: string + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ChangeVnfFlavourRequest: + #SOL003 location: 5.5.2.7 + description: > + This type represents request parameters for the "Change VNF flavour" operation. + type: object + required: + - newFlavourId + properties: + newFlavourId: + description: > + Identifier of the VNF deployment flavour to be instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + instantiationLevelId: + description: > + Identifier of the instantiation level of the deployment flavour to + be instantiated. If not present, the default instantiation level as + declared in the VNFD is instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about internal VLs that are managed by the NFVO. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to + external / externally-managed virtual links. This attribute shall + only be supported and may be present if VNF-related resource + management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + TerminateVnfRequest: + type: object + required: + - terminationType + properties: + terminationType: + description: > + Indicates whether forceful or graceful termination is requested. + Permitted values: + * FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + * GRACEFUL: The VNFM will first arrange to take the VNF out of + service after accepting the request. Once the operation of taking + the VNF out of service finishes (irrespective of whether it has + succeeded or failed) or once the timer value specified in the + "gracefulTerminationTimeout" attribute expires, the VNFM will shut + down the VNF and release the resources. + type: string + enum: + - FORCEFUL + - GRACEFUL + gracefulTerminationTimeout: + description: > + This attribute is only applicable in case of graceful termination. + It defines the time to wait for the VNF to be taken out of service + before shutting down the VNF and releasing the resources. + The unit is seconds. + If not given and the "terminationType" attribute is set to + "GRACEFUL", it is expected that the VNFM waits for the successful + taking out of service of the VNF, no matter how long it takes, + before shutting down the VNF and releasing the resources. + type: integer + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the termination + process, specific to the VNF being terminated, as declared in the + VNFD as part of "TerminateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + HealVnfRequest: + type: object + properties: + cause: + description: > + Indicates the reason why a healing procedure is required. + type: string + additionalParams: + 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". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + OperateVnfRequest: + description: > + This type represents request parameters for the "Operate VNF" operation. + type: object + required: + - changeStateTo + properties: + changeStateTo: + description: > + The desired operational state (i.e. started or stopped) to change + the VNF to. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" + stopType: + description: > + It signals whether forceful or graceful stop is requested. + The “stopType” and “gracefulStopTimeout” attributes shall be absent, + when the “changeStateTo” attribute is equal to “STARTED”. The + “gracefulStopTimeout” attribute shall be present, when the + “changeStateTo” is equal to “STOPPED” and the “stopType” attribute + is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be + absent, when the “changeStateTo” attribute is equal to “STOPPED” and + the “stopType” attribute is equal to “FORCEFUL”. The request shall + be treated as if the “stopType” attribute was set to ”FORCEFUL”, when + the “changeStateTo” attribute is equal to “STOPPED” and the + “stopType” attribute is absent. + $ref: "#/definitions/StopType" + gracefulStopTimeout: + description: > + The time interval (in seconds) to wait for the VNF to be taken out + of service during graceful stop, before stopping the VNF. + The “stopType” and “gracefulStopTimeout” attributes shall be absent, + when the “changeStateTo” attribute is equal to “STARTED”. The + “gracefulStopTimeout” attribute shall be present, when the + “changeStateTo” is equal to “STOPPED” and the “stopType” attribute + is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be + absent, when the “changeStateTo” attribute is equal to “STOPPED” and + the “stopType” attribute is equal to “FORCEFUL”. The request shall + be treated as if the “stopType” attribute was set to ”FORCEFUL”, when + the “changeStateTo” attribute is equal to “STOPPED” and the + “stopType” attribute is absent. + type: integer + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the process, + specific to the VNF of which the operation status is changed, as + declared in the VNFD as part of "OperateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ChangeExtVnfConnectivityRequest: + #SOL003 location: 5.5.2.11 + description: > + This type represents request parameters for the + "Change external VNF connectivity" operation to modify the external + connectivity of a VNF instance. + type: object + required: + - extVirtualLinks + properties: + extVirtualLinks: + description: > + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to external virtual + links. This attribute shall only be supported and may be present + if VNF-related resource management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "ChangeExtVnfConnectivityOpConfig".". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfInfoModificationRequest: + description: > + This type represents attribute modifications for an + "Individual VNF instance" resource, i.e. modifications to a resource + representation based on the "VnfInstance" data type. + type: object + properties: + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in "VnfInstance", or + "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in + "VnfInstance", or "null" to remove the attribute. + type: string + vnfPkgId: + description: > + New value of the "vnfPkgId" attribute in "VnfInstance". + The value "null" is not permitted. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in + "VnfInstance". If present, these modifications shall be applied + according to the rules of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadata" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: + description: > + New content of certain entries in the "vimConnectionInfo" attribute + array in "VnfInstance", as defined below this table. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + vimConnectionInfoDeleteIds: + description: > + List of identifiers entries to be deleted from the "vimConnectionInfo" + attribute array in "VnfInstance", to be used as "deleteIdList" as defined + below this table. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + + VnfInfoModifications: + description: > + This type represents attribute modifications that were performed on an + "Individual VNF instance" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "VnfInfoModificationRequest" data structure, and additional attributes + of the "VnfInstance" data structure that were modified implicitly e.g. + when modifying the referenced VNF package. + type: object + properties: + vnfInstanceName: + description: > + If present, this attribute signals modifications of the + "vnfInstanceName" attribute in "VnfInstance". + type: string + vnfInstanceDescription: + description: > + If present, this attribute signals modifications of the + "vnfInstanceDescription" attribute in "VnfInstance". + type: string + vnfConfigurableProperties: + description: > + If present, this attribute signals modifications of the + "vnfConfigurableProperties" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + If present, this attribute signals modifications of the "metadata" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute signals modifications of the "extensions" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: + description: > + If present, this attribute signals modifications of certain entries + in the "vimConnectionInfo" attribute array in "VnfInstance". + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + vimConnectionInfoDeleteIds: + description: > + If present, this attribute signals the deletion of certain entries + in the "vimConnectionInfo" attribute array in "VnfInstance". + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfdId: + description: > + If present, this attribute signals modifications of the "vnfdId" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals modifications of the + "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfProductName: + description: > + If present, this attribute signals modifications of the + "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfSoftwareVersion: + description: > + If present, this attribute signals modifications of the + "vnfSoftwareVersion" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals modifications of the + "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + + StopType: + description: > + * FORCEFUL: The VNFM will stop the VNF immediately after accepting the + request. + * GRACEFUL: The VNFM will first arrange to take the VNF out of service + after accepting the request. Once that operation is successful or once + the timer value specified in the "gracefulStopTimeout" attribute + expires, the VNFM will stop the VNF. + type: string + enum: + - FORCEFUL + - GRACEFUL \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml deleted file mode 100644 index 5e4c12745409a566578171d60416d146c74c1616..0000000000000000000000000000000000000000 --- a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml +++ /dev/null @@ -1,527 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - CancelMode: - description: > - This type represents a parameter to select the mode of cancelling an - ongoing VNF LCM operation occurrence. - type: object - required: - - cancelMode - properties: - cancelMode: - description: > - Cancellation mode to apply. - $ref: "#/definitions/CancelModeType" - - CancelModeType: - description: > - Cancellation mode. - GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or - "ROLLING_BACK" state, the VNFM shall not start any new resource - management operation and shall wait for the ongoing resource management - operations in the underlying system, typically the VIM, to finish - execution or to time out. After that, the VNFM shall put the operation - occurrence into the FAILED_TEMP state. - If the VNF LCM operation occurrence is in "STARTING" state, the VNFM - shall not start any resource management operation and shall wait for - the granting request to finish execution or time out. After that, the - VNFM shall put the operation occurrence into the ROLLED_BACK state. - FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or - "ROLLING_BACK" state, the VNFM shall not start any new resource - management operation, shall cancel the ongoing resource management - operations in the underlying system, typically the VIM, and shall wait - for the cancellation to finish or to time out. After that, the VNFM - shall put the operation occurrence into the FAILED_TEMP state. - If the VNF LCM operation occurrence is in "STARTING" state, the VNFM - shall not start any resource management operation and put the operation - occurrence into the ROLLED_BACK state. - type: string - enum: - - GRACEFUL - - FORCEFUL - - ChangeExtVnfConnectivityRequest: - #SOL003 location: 5.5.2.11 - description: > - This type represents request parameters for the - "Change external VNF connectivity" operation to modify the external - connectivity of a VNF instance. - type: object - required: - - extVirtualLinks - properties: - extVirtualLinks: - description: > - Information about external VLs to change (e.g. connect the VNF to). - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the - resources for the VNF instance, or refer to external virtual - links. This attribute shall only be supported and may be present - if VNF-related resource management in direct mode is applicable. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - additionalParams: - description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "ChangeExtVnfConnectivityOpConfig".". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - ChangeVnfFlavourRequest: - #SOL003 location: 5.5.2.7 - description: > - This type represents request parameters for the "Change VNF flavour" operation. - type: object - required: - - newFlavourId - properties: - newFlavourId: - description: > - Identifier of the VNF deployment flavour to be instantiated. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - instantiationLevelId: - description: > - Identifier of the instantiation level of the deployment flavour to - be instantiated. If not present, the default instantiation level as - declared in the VNFD is instantiated. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - extVirtualLinks: - description: > - Information about external VLs to connect the VNF to. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" - extManagedVirtualLinks: - description: > - Information about internal VLs that are managed by the NFVO. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the - resources for the VNF instance, or refer to - external / externally-managed virtual links. This attribute shall - only be supported and may be present if VNF-related resource - management in direct mode is applicable. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - additionalParams: - description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "InstantiateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - HealVnfRequest: - type: object - properties: - cause: - description: > - Indicates the reason why a healing procedure is required. - type: string - additionalParams: - 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". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - InstantiateVnfRequest: - #SOL003 location: 5.5.2.4 - type: object - required: - - flavourId - properties: - flavourId: - description: > - Identifier of the VNF deployment flavour to be instantiated. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - instantiationLevelId: - description: > - Identifier of the instantiation level of the deployment flavour to be - instantiated. If not present, the default instantiation level as - declared in the VNFD is instantiated. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - extVirtualLinks: - description: > - Information about external VLs to connect the VNF to. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" - extManagedVirtualLinks: - description: > - Information about internal VLs that are managed by the NFVO. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the - resources for the VNF instance, or refer to - external / externally-managed virtual links. This attribute shall - only be supported and may be present if VNF-related resource - management in direct mode is applicable. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - localizationLanguage: - description: > - Localization language of the VNF to be instantiated. The value shall - comply with the format defined in IETF RFC 5646. - type: string - additionalParams: - description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "InstantiateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - LcmOperationStateType: - description: > - Value | Description - ------|------------ - STARTING | The LCM operation is starting. - PROCESSING | The LCM operation is currently in execution. - COMPLETED | he LCM operation has been completed successfully. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. - ROLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - STARTING - - PROCESSING - - COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK - - OperateVnfRequest: - description: > - This type represents request parameters for the "Operate VNF" operation. - type: object - required: - - changeStateTo - properties: - changeStateTo: - description: > - The desired operational state (i.e. started or stopped) to change - the VNF to. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" - stopType: - description: > - It signals whether forceful or graceful stop is requested. - The “stopType” and “gracefulStopTimeout” attributes shall be absent, - when the “changeStateTo” attribute is equal to “STARTED”. The - “gracefulStopTimeout” attribute shall be present, when the - “changeStateTo” is equal to “STOPPED” and the “stopType” attribute - is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be - absent, when the “changeStateTo” attribute is equal to “STOPPED” and - the “stopType” attribute is equal to “FORCEFUL”. The request shall - be treated as if the “stopType” attribute was set to ”FORCEFUL”, when - the “changeStateTo” attribute is equal to “STOPPED” and the - “stopType” attribute is absent. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/StopType" - gracefulStopTimeout: - description: > - The time interval (in seconds) to wait for the VNF to be taken out - of service during graceful stop, before stopping the VNF. - The “stopType” and “gracefulStopTimeout” attributes shall be absent, - when the “changeStateTo” attribute is equal to “STARTED”. The - “gracefulStopTimeout” attribute shall be present, when the - “changeStateTo” is equal to “STOPPED” and the “stopType” attribute - is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be - absent, when the “changeStateTo” attribute is equal to “STOPPED” and - the “stopType” attribute is equal to “FORCEFUL”. The request shall - be treated as if the “stopType” attribute was set to ”FORCEFUL”, when - the “changeStateTo” attribute is equal to “STOPPED” and the - “stopType” attribute is absent. - type: integer - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the process, - specific to the VNF of which the operation status is changed, as - declared in the VNFD as part of "OperateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - ScaleVnfToLevelRequest: - description: > - This type represents request parameters for the "Scale VNF to Level" - operation. - type: object - properties: - instantiationLevelId: - description: > - Identifier of the target instantiation level of the current - deployment flavour to which the VNF is requested to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - $ref: "#/definitions/IdentifierInVnfd" - scaleInfo: - description: > - For each scaling aspect of the current deployment flavour, indicates - the target scale level to which the VNF is to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - type: array - items: - $ref: "#/definitions/ScaleInfo" - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the scaling - process, specific to the VNF being scaled, as declared in the - VNFD as part of "ScaleVnfToLevelOpConfig". - $ref: "#/definitions/KeyValuePairs" - - StopType: - description: > - * FORCEFUL: The VNFM will stop the VNF immediately after accepting the - request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of service - after accepting the request. Once that operation is successful or once - the timer value specified in the "gracefulStopTimeout" attribute - expires, the VNFM will stop the VNF. - type: string - enum: - - FORCEFUL - - GRACEFUL - - TerminateVnfRequest: - type: object - required: - - terminationType - properties: - terminationType: - description: > - Indicates whether forceful or graceful termination is requested. - Permitted values: - * FORCEFUL: The VNFM will shut down the VNF and release the - resources immediately after accepting the request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of - service after accepting the request. Once the operation of taking - the VNF out of service finishes (irrespective of whether it has - succeeded or failed) or once the timer value specified in the - "gracefulTerminationTimeout" attribute expires, the VNFM will shut - down the VNF and release the resources. - type: string - enum: - - FORCEFUL - - GRACEFUL - gracefulTerminationTimeout: - description: > - This attribute is only applicable in case of graceful termination. - It defines the time to wait for the VNF to be taken out of service - before shutting down the VNF and releasing the resources. - The unit is seconds. - If not given and the "terminationType" attribute is set to - "GRACEFUL", it is expected that the VNFM waits for the successful - taking out of service of the VNF, no matter how long it takes, - before shutting down the VNF and releasing the resources. - type: integer - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the termination - process, specific to the VNF being terminated, as declared in the - VNFD as part of "TerminateVnfOpConfig". - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - VnfLcmOpOcc: - description: > - This type represents a VNF lifecycle management operation occurrence. - type: object - required: - - id - - operationState - - stateEnteredTime - - startTime - - vnfInstanceId - - operation - - isAutomaticInvocation - - isCancelPending - properties: - id: - description: > - Identifier of this VNF lifecycle management operation occurrence. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operationState: - description: > - The state of the LCM operation. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" - stateEnteredTime: - description: > - Date-time when the current state was entered. - type: string - format: date-time - startTime: - description: > - Date-time of the start of the operation. - type: string - format: date-time - vnfInstanceId: - description: > - Identifier of the VNF instance to which the operation applies - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - grantId: - description: > - Identifier of the grant related to this VNF LCM operation - occurrence, if such grant exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: - description: > - Type of the actual LCM operation represented by this VNF LCM - operation occurrence. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: - description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM (i.e. - ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). Set to false otherwise. - type: boolean - operationParams: - description: > - Input parameters of the LCM operation. This attribute shall be - formatted according to the request data type of the related LCM - operation. The following mapping between operationType and the - data type of this attribute shall apply: - * INSTANTIATE: InstantiateVnfRequest - * SCALE: ScaleVnfRequest - * SCALE_TO_LEVEL: ScaleVnfToLevelRequest - * CHANGE_FLAVOUR: ChangeVnfFlavourRequest - * OPERATE: OperateVnfRequest - * HEAL: HealVnfRequest - * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest - * TERMINATE: TerminateVnfRequest - * MODIFY_INFO: VnfInfoModificationRequest - This attribute shall be present if this data type is returned in - a response to reading an individual resource, and may be present - according to the chosen attribute selector parameter if this data - type is returned in a response to a query of a container resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - isCancelPending: - description: > - If the VNF LCM operation occurrence is in "STARTING", "PROCESSING" - or "ROLLING_BACK" state and the operation is being cancelled, this - attribute shall be set to true. Otherwise, it shall be set to false. - type: boolean - cancelMode: - description: > - The mode of an ongoing cancellation. Shall be present when - isCancelPending=true, and shall be absent otherwise. - $ref: "#/definitions/CancelModeType" - error: - description: > - If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" - is "PROCESSING" or "ROLLING_BACK" and previous value of - "operationState" was "FAILED_TEMP", this attribute shall be present - and contain error information, unless it has been requested to be - excluded via an attribute selector. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - resourceChanges: - description: > - This attribute contains information about the cumulative changes to - virtualised resources that were performed so far by the LCM - operation since its start, if applicable. - type: object - properties: - affectedVnfcs: - description: > - Information about VNFC instances that were affected during the - lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" - affectedVirtualLinks: - description: > - Information about VL instances that were affected during the - lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" - affectedVirtualStorages: - description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" - changedInfo: - description: > - Information about the changed VNF instance information, including - VNF configurable properties, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" - changedExtConnectivity: - description: > - Information about changed external connectivity, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - - vnfInstance - properties: - self: - description: > - URI of this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - vnfInstance: - description: > - Link to the VNF instance that the operation applies to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - grant: - description: > - Link to the grant for this operation, if one exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - cancel: - description: > - Link to the task resource that represents the "cancel" operation - for this VNF LCM operation occurrence, if cancelling is - currently allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - retry: - description: > - Link to the task resource that represents the "retry" operation - for this VNF LCM operation occurrence, if retrying is currently - allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - rollback: - description: > - Link to the task resource that represents the "rollback" - operation for this VNF LCM operation occurrence, if rolling back - is currently allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - fail: - description: > - Link to the task resource that represents the "fail" operation - for this VNF LCM operation occurrence, if declaring as failed is - currently allowed. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" diff --git a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml deleted file mode 100644 index 9b5cfdfa7ca4706ed9d863143f35dc33133e12b5..0000000000000000000000000000000000000000 --- a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -responses: - 202-with-Location: - description: > - Accepted - - The request was accepted for processing, but the processing has not - been completed. On success, the HTTP response shall include a - "Location" HTTP header that contains the URI of the newly-created - "VNF LCM operation occurrence" resource corresponding to the - operation. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - Location: - description: The resource URI of the created VNF instance - type: string - format: url - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" - 202-with-Location-empty: - description: > - Accepted - - The request was accepted for processing, but the processing has not - been completed. On success, the HTTP response shall include a - "Location" HTTP header that contains the URI of the newly-created - "VNF LCM operation occurrence" resource corresponding to the - operation. - The response body shall be empty. - headers: - Location: - description: The resource URI of the created VNF instance - type: string - format: url - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - 409-another-lcm-operation-ongoing: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that another LCM operation is - ongoing. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-inconsistent-state: - description: > - Conflict - - Another request is in progress that prohibits the fulfilment of - the current request, or the current resource state is inconsistent - with the request. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-state-conflict-INSTANTIATED: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that the VNF instance resource is in - INSTANTIATED state. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-state-conflict-not-FAILED_TEMP: - description: > - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that the VNF instance resource is - not in FAILED_TEMP state, or another error handling action is starting, - such as rollback or fail. - The response body shall contain a ProblemDetails structure, in which the - "detail" attribute should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409-state-conflict-NOT-INSTANTIATED: - description: > - Conflict - - The operation cannot be executed currently, due to a conflict with the - state of the VNF instance resource. - Typically, this is due to the fact that the VNF 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 should convey more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 389f2b3b7f057bd32aec520dbfc9d717c642c08e..474580622e5b5ed3a4ef8da9db0c5a89d19731e0 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.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: SOL003 - VNF Lifecycle Management Notification interface description: > SOL003 - VNF Lifecycle Management Notification interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -40,22 +40,23 @@ produces: paths: ############################################################################### - # Notification endpoint VnfLcmOperationOccurrenceNotification # + # Notification endpoint VnfLcmOperationOccurrenceNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + 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 5.4.20.3.1-1 and 5.4.20.3.1-2 for + URI query parameters, request and response data structures, and response codes. parameters: - name: VnfLcmOperationOccurrenceNotification - description: A notification about on-boarding of a VNF package. + description: A notification about lifecycle changes triggered by a VNF LCM operation occurrence.. in: body required: true schema: - $ref: "definitions/VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" - name: Authorization description: > The authorization token for the request. @@ -81,7 +82,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -103,8 +104,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: @@ -113,21 +112,79 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 + for URI query parameters, request and response data structures, and response codes. + 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 + responses: + 204: + description: > + 204 NO CONTENT + + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification': post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + 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 5.4.20.3.1-1 and 5.4.20.3.1-2 for + URI query parameters, request and response data structures, and response codes. parameters: - name: VnfIdentifierCreationNotification description: > - A notification about the creation of a VNF identifier and the - related VNF instance resource. + A notification about the creation of a VNF identifier and the related "Individual VNF instance" resource. in: body required: true schema: @@ -157,7 +214,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -179,8 +236,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: @@ -189,21 +244,79 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 + for URI query parameters, request and response data structures, and response codes. + 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 + responses: + 204: + description: > + 204 NO CONTENT + + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification': post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + 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 5.4.20.3.1-1 and 5.4.20.3.1-2 for + URI query parameters, request and response data structures, and response codes. parameters: - name: VnfIdentifierDeletionNotification description: > - A notification about the deletion of a VNF identifier and the - related VNF instance resource. + A notification about the deletion of a VNF identifier and the related "Individual VNF instance" resource. in: body required: true schema: @@ -233,7 +346,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -255,8 +368,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: @@ -265,3 +376,60 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 + for URI query parameters, request and response data structures, and response codes. + 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 + responses: + 204: + description: > + 204 NO CONTENT + + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml deleted file mode 100644 index 8b148c660ab63c300cad9bd594d6146e7d323ae5..0000000000000000000000000000000000000000 --- a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml +++ /dev/null @@ -1,177 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - VnfLcmOperationOccurrenceNotification: - description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification shall be triggered by the VNFM when there is a change - in the VNF lifecycle caused by a VNF LCM operation occurrence, - including: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external connectivity of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource. - If this is the initial notification about the start of a VNF LCM - operation occurrence, it is assumed that the notification is sent by the - VNFM before any action (including sending the grant request) is taken as - part of the LCM operation. Due to possible race conditions, the "start" - notification, the grant request and the LCM operation acknowledgment can - arrive in any order at the NFVO, and the NFVO shall be able to handle - such a situation. - If this is a notification about a final or intermediate result state of - a VNF LCM operation occurrence, the notification shall be sent after - all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - notificationStatus - - operationState - - vnfInstanceId - - operation - - isAutomaticInvocation - - vnfLcmOpOccId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfLcmOperationOccurrenceNotification" for this notification type. - type: string - enum: - - VnfLcmOperationOccurrenceNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - notificationStatus: - description: > - Indicates whether this notification reports about the start of a - lifecycle operation or the result of a lifecycle operation. - Permitted values: - * START: Informs about the start of the VNF LCM operation - occurrence. - * RESULT: Informs about the final or intermediate result of the VNF - LCM operation occurrence. - type: string - enum: - - START - - RESULT - operationState: - description: > - The state of the VNF LCM operation occurrence. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" - vnfInstanceId: - description: > - The identifier of the VNF instance affected. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: - description: > - The lifecycle management operation. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: - description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM - (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). - Set to false otherwise. - type: boolean - vnfLcmOpOccId: - description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the notification. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - affectedVnfcs: - description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" - affectedVirtualLinks: - description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" - affectedVirtualStorages: - description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" - changedInfo: - description: > - Information about the changed VNF instance information, including - changed VNF configurable properties. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any changes to VNF instance information, - including VNF configurable properties. - Shall be absent otherwise. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" - changedExtConnectivity: - description: > - Information about changed external connectivity, if this - notification represents the result of a lifecycle operation - occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". - Shall be absent otherwise. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" - error: - description: > - Details of the latest error, if one has occurred during executing - the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent - otherwise. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - _links: - description: > - Links to resources related to this notification. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 5049c172355fdf73e50baaa25c6df06b57da5c8a..e302234744870cf5eac4813dd9c039806dc49fe6 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.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: SOL003 - VNF Lifecycle Operation Granting interface description: > SOL003 - VNF Lifecycle Operation Granting interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/grant/v1" @@ -52,11 +52,15 @@ paths: #SOL003 location: 9.4.2 post: description: > - Grant Lifecycle Operation - - - The POST method requests a grant for a particular VNF lifecycle - operation. + Grant Lifecycle Operation. + The POST method requests a grant for a particular VNF lifecycle operation. + This method shall follow the provisions specified in the tables 9.4.2.3.1-1 and 9.4.2.3.1-2 + for URI query parameters, request and response data structures, and response codes. + As the result of successfully processing this request, a new "Individual grant" resource + shall be created. In the synchronous case which is indicated by responding with "201 Created", + that resource shall be created before the 200 OK response is returned. In the asynchronous + case which is indicated by responding with "202 Accepted", this resource may be created + after the response is returned. parameters: - name: GrantRequest in: body @@ -95,11 +99,10 @@ paths: description: > 201 CREATED - The grant was created successfully (synchronous mode). - A representation of the created "Individual grant" resource shall - be returned in the response body. - The HTTP response shall include a "Location" HTTP header that - indicates the URI of the "Individual grant" resource just created. + Shall be returned when the grant has been created successfully (synchronous mode). + A representation of the created "Individual grant" resource shall be returned in the response body. + The HTTP response shall include a "Location" HTTP header that indicates the URI of the "Individual grant" + resource just created. headers: Content-Type: description: The MIME type of the body of the response. @@ -130,13 +133,11 @@ paths: description: > 202 ACCEPTED - The request was accepted for processing, but the processing has - not been completed. It is expected to take some time to create - the grant (asynchronous mode). + Shall be returned when the request has been accepted for processing + and it is expected to take some time to create the grant (asynchronous mode). The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - indicates the URI of the "Individual grant" resource that will be - created once the granting decision has been made. + The HTTP response shall include a "Location" HTTP header that indicates the URI + of the "Individual grant" resource that will be created once the granting decision has been made. headers: Location: description: The resource URI of the created VNF instance @@ -156,42 +157,25 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: description: > - Forbidden + 403 FORBIDDEN - The grant was rejected. - A ProblemDetails structure shall be included in the response to - provide more details about the rejection in the "details" - attribute. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Shall be returned upon the following error: The grant has been rejected. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Resource: Individual grant # ############################################################################### @@ -210,11 +194,10 @@ paths: required: true get: description: > - Grant Lifecycle Operation - - - The GET method retrieves information about a specific grant by reading - an individual grant resource. + Grant Lifecycle Operation. + The GET method reads a grant. + This method shall follow the provisions specified in the tables 9.4.3.3.2-1 and 9.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -241,9 +224,8 @@ paths: description: > 200 OK - The grant was read successfully. - A representation of the "individual grant" resource shall be - returned in the response body. + Shall be returned when the grant has been read successfully. + A representation of the "Individual grant" resource shall be returned in the response body. headers: Content-Type: description: The MIME type of the body of the response. @@ -270,8 +252,7 @@ paths: description: > 202 ACCEPTED - The process of creating the grant is ongoing, no grant is - available yet. + Shall be returned when the process of creating the grant is ongoing, no grant is available yet. The response body shall be empty. headers: WWW-Authenticate: @@ -282,46 +263,33 @@ paths: type: string maximum: 1 minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: description: > - Forbidden + 403 FORBIDDEN - The grant was rejected. - A ProblemDetails structure shall be included in the response to - provide more details about the rejection in the "details" - attribute. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Shall be returned upon the following error: The grant has been rejected. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml index e7a33626fd5092dbfedd65401ef414c1303dafb5..29c51635027ec5f96ff200be3895e39bf004bfa1 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml @@ -1,51 +1,166 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: - ConstraintResourceRef: + GrantRequest: description: > - This type references a resource either by its VIM-level identifier for - existing resources, or by the identifier of a "ResourceDefinition" - structure in the "GrantRequest" structure for new resources. + This type represents a grant request. type: object required: - - idType - - resourceId + - vnfInstanceId + - vnfLcmOpOccId + - vnfdId + - operation + - isAutomaticInvocation + - _links properties: - idType: + vnfInstanceId: description: > - The type of the identifier. - Permitted values: - * RES_MGMT: Resource-management-level identifier; this identifier is - managed by the VIM in the direct mode of VNF-related resource - management, and is managed by the NFVO in the indirect mode) - * GRANT: Reference to the identifier of a "ResourceDefinition" - structure in the "GrantRequest" structure. - type: string - enum: - - RES_MGMT - - GRANT - resourceId: + Identifier of the VNF instance which this grant request is related + to. Shall also be provided for VNFs that not yet exist but are + planned to exist in the future, i.e. if the grant is requested for + InstantiateVNF. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLcmOpOccId: description: > - An actual resource-management-level identifier (idType=RES_MGMT), - or an identifier that references a "ResourceDefinition" structure in - the related "GrantRequest" structure (idType=GRANT). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - vimConnectionId: + The identifier of the VNF lifecycle management operation occurrence + associated to the GrantRequest. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfdId: description: > - Identifier of the VIM connection for managing the resource. It shall - only be present when idType = RES_MGMT. - The applicable "VimConnectionInfo" structure, which is referenced by - vimConnectionId, can be obtained from the "vimConnectionInfo" - attribute of the "VnfInstance" structure. - This attribute shall only be supported when VNF-related resource - management in direct mode is applicable. + Identifier of the VNFD that defines the VNF for which the LCM + operation is to be granted. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - resourceProviderId: + flavourId: description: > - Identifier of the resource provider. It shall only be present when - idType = RES_MGMT. - This attribute shall only be supported when VNF-related resource - management in indirect mode is applicable. The identification scheme - is outside the scope of the present document. + Identifier of the VNF deployment flavour of the VNFD that defines + the VNF for which the LCM operation is to be granted. + Shall be provided when instantiating the VNF or changing the + deployment flavour of the VNF instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation for which granting is requested. + The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, + QueryVnf and ModifyVnfInformation can be executed by the VNFM + without requesting granting. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/GrantedLcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM + (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). + Set to false otherwise. + type: boolean + instantiationLevelId: + description: > + If operation=INSTANTIATE, the identifier of the instantiation level + may be provided as an alternative way to define the resources to be + added. This attribute shall only be used if operation=INSTANTIATE. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + addResources: + description: > + List of resource definitions in the VNFD for resources to be added + by the LCM operation which is related to this grant request, with + one entry per resource. + If the granting request is for InstantiateVNF, either + instantiationLevel or addResources shall be present. + type: array + items: + $ref: "#/definitions/ResourceDefinition" + tempResources: + description: > + List of resource definitions in the VNFD for resources to be + temporarily instantiated during the runtime of the LCM operation + which is related to this grant request, with one entry per + resource. + The NFVO will assume that the VNFM will be responsible to both + allocate and release the temporary resource during the runtime of + the LCM operation. This means, the resource can be allocated and + consumed after the "start" notification for the LCM operation is + sent by the VNFM, and the resource will be released before the + "result" notification of the VNF LCM operation is sent by the VNFM. + type: array + items: + $ref: "#/definitions/ResourceDefinition" + removeResources: + description: > + Provides the definitions of resources to be removed by the LCM + operation which is related to this grant request, with one entry per + resource. + type: array + items: + $ref: "#/definitions/ResourceDefinition" + updateResources: + description: > + Provides the definitions of resources to be modified by the LCM + operation which is related to this grant request, with one entry per + resource. + type: array + items: + $ref: "#/definitions/ResourceDefinition" + placementConstraints: + description: > + Placement constraints that the VNFM may send to the NFVO in order to + influence the resource placement decision. If sent, the NFVO shall + take the constraints into consideration when making resource + placement decisions, and shall reject the grant if they cannot be + honoured. + The affinity/anti-affinity rules defined in the VNFD , and the + placement constraints in the GrantVnfLifecycleOperation as defined + in this clause should be conflict-free. In case of conflicts, the + placement constraints in the GrantVnfLifecycleOperation shall take + precedence. + Passing constraints allows the VNFM or the lifecycle management + scripts to influence resource placement decisions by the NFVO to + ensure VNF properties such as performance or fault tolerance. + If fallbackBestEffort is present in placement constraints and set + to “true”, the NFVO shall process the Affinity/AntiAffinity constraint + in a best effort manner, in which case, if specified resources cannot be + allocated based on specified placement constraint, the NFVO looks for an + alternate best effort placement for the specified resources to be granted. + In the best effort anti-affinity case, the resources are expected to be + spread optimally over all available instances of scope (e.g. zones), + and in the best effort affinity case, they are expected to be distributed + optimally over fewer possible instances of scope. + type: array + items: + $ref: "#/definitions/PlacementConstraint" + vimConstraints: + description: > + Used by the VNFM to require that multiple resources are managed + through the same VIM connection. If sent, the NFVO shall take the + constraints into consideration when making VIM selection decisions, + and shall reject the grant if they cannot be honoured. + This attribute shall be supported if VNF-related Resource Management + in direct mode is applicable. + The applicability and further details of this attribute for indirect + mode are left for future specification. + type: array + items: + $ref: "#/definitions/VimConstraint" + additionalParams: + description: > + Additional parameters passed by the VNFM, specific to the VNF and + the LCM operation. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this request. + type: object + required: + - vnfLcmOpOcc + - vnfInstance + properties: + vnfLcmOpOcc: + description: > + Related lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Related VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" Grant: description: > @@ -115,7 +230,7 @@ definitions: description: > Information that identifies a reservation applicable to the compute resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -124,7 +239,7 @@ definitions: description: > Information that identifies a reservation applicable to the network resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -133,7 +248,7 @@ definitions: description: > Information that identifies a reservation applicable to the storage resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -172,11 +287,22 @@ definitions: Information about assets for the VNF that are managed by the NFVO in the VIM, such as software images and virtualised compute resource flavours. - This attribute is not intended for the modification of vimAssets - entries passed earlier. - Modification of VIM assets during the lifetime of a VNF instance is - not necessary, since it is expected that all applicable assets have - been on boarded into the VIM before the VNF is instantiated. + The Grant response allows the NFVO to pass to the VNFM VIM assets + related to the VNF package that is identified by the vnfdId attribute + in the corresponding Grant request. The NFVO may send in each Grant + response the full set of VIM assets related to the VNF package defined + by the vnfdId in the related Grant request, but shall send this information + if the vnfdId in the related Grant request differs from the vnfdId passed + in the previous Grant request, or if the Grant response is related to an + InstantiateVnf operation. + The set of VIM assets shall not change between subsequent Grant responses + if the vnfdId has not changed. During each LCM operation occurrence, + the VIM assets that relate to the VNF package identified by the current value + of the vnfdId attribute in the “VnfInstance” structure shall be used by the + VNFM for newly created resources. If the VNF package identifier of the + VNF instance has been updated, VIM assets that relate to the previously-used + VNF package(s), and that were communicated in previous Grant responses, + apply to existing resources. type: object properties: computeResourceFlavours: @@ -254,156 +380,52 @@ definitions: Related VNF instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - GrantRequest: + ResourceDefinition: description: > - This type represents a grant request. + This type provides information of an existing or proposed resource used + by the VNF. type: object required: - - vnfInstanceId - - vnfLcmOpOccId - - vnfdId - - operation - - isAutomaticInvocation - - _links + - id + - type properties: - vnfInstanceId: - description: > - Identifier of the VNF instance which this grant request is related - to. Shall also be provided for VNFs that not yet exist but are - planned to exist in the future, i.e. if the grant is requested for - InstantiateVNF. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfLcmOpOccId: - description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the GrantRequest. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfdId: - description: > - Identifier of the VNFD that defines the VNF for which the LCM - operation is to be granted. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - flavourId: + id: description: > - Identifier of the VNF deployment flavour of the VNFD that defines - the VNF for which the LCM operation is to be granted. - Shall be provided when instantiating the VNF or changing the - deployment flavour of the VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: + Identifier of this "ResourceDefinition" structure, unique at least + within the scope of the "GrantRequest" structure. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + type: description: > - The lifecycle management operation for which granting is requested. - The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, - QueryVnf and ModifyVnfInformation can be executed by the VNFM - without requesting granting. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/GrantedLcmOperationType" - isAutomaticInvocation: + Type of the resource definition referenced. + Permitted values: + * COMPUTE + * VL + * STORAGE + * LINKPORT + type: string + enum: + - COMPUTE + - VL + - STORAGE + - LINKPORT + vduId: description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM - (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). - Set to false otherwise. - type: boolean - instantiationLevelId: + Reference to the related VDU in the VNFD applicable to this + resource. + Shall only be present if a VDU is applicable to this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + resourceTemplateId: description: > - If operation=INSTANTIATE, the identifier of the instantiation level - may be provided as an alternative way to define the resources to be - added. This attribute shall only be used if operation=INSTANTIATE. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - addResources: + Reference to a resource template (VnfVirtualLinkDesc, + VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the + VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + resource: description: > - List of resource definitions in the VNFD for resources to be added - by the LCM operation which is related to this grant request, with - one entry per resource. - If the granting request is for InstantiateVNF, either - instantiationLevel or addResources shall be present. - type: array - items: - $ref: "#/definitions/ResourceDefinition" - tempResources: - description: > - List of resource definitions in the VNFD for resources to be - temporarily instantiated during the runtime of the LCM operation - which is related to this grant request, with one entry per - resource. - The NFVO will assume that the VNFM will be responsible to both - allocate and release the temporary resource during the runtime of - the LCM operation. This means, the resource can be allocated and - consumed after the "start" notification for the LCM operation is - sent by the VNFM, and the resource will be released before the - "result" notification of the VNF LCM operation is sent by the VNFM. - type: array - items: - $ref: "#/definitions/ResourceDefinition" - removeResources: - description: > - Provides the definitions of resources to be removed by the LCM - operation which is related to this grant request, with one entry per - resource. - type: array - items: - $ref: "#/definitions/ResourceDefinition" - updateResources: - description: > - Provides the definitions of resources to be modified by the LCM - operation which is related to this grant request, with one entry per - resource. - type: array - items: - $ref: "#/definitions/ResourceDefinition" - placementConstraints: - description: > - Placement constraints that the VNFM may send to the NFVO in order to - influence the resource placement decision. If sent, the NFVO shall - take the constraints into consideration when making resource - placement decisions, and shall reject the grant if they cannot be - honoured. - The affinity/anti-affinity rules defined in the VNFD , and the - placement constraints in the GrantVnfLifecycleOperation as defined - in this clause should be conflict-free. In case of conflicts, the - placement constraints in the GrantVnfLifecycleOperation shall take - precedence. - Passing constraints allows the VNFM or the lifecycle management - scripts to influence resource placement decisions by the NFVO to - ensure VNF properties such as performance or fault tolerance. - type: array - items: - $ref: "#/definitions/PlacementConstraint" - vimConstraints: - description: > - Used by the VNFM to require that multiple resources are managed - through the same VIM connection. If sent, the NFVO shall take the - constraints into consideration when making VIM selection decisions, - and shall reject the grant if they cannot be honoured. - This attribute shall be supported if VNF-related Resource Management - in direct mode is applicable. - The applicability and further details of this attribute for indirect - mode are left for future specification. - type: array - items: - $ref: "#/definitions/VimConstraint" - additionalParams: - description: > - Additional parameters passed by the VNFM, specific to the VNF and - the LCM operation. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - _links: - description: > - Links to resources related to this request. - type: object - required: - - vnfLcmOpOcc - - vnfInstance - properties: - vnfLcmOpOcc: - description: > - Related lifecycle management operation occurrence. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - vnfInstance: - description: > - Related VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + Resource information for an existing resource. Shall be present for + resources that are planned to be deleted or modified. Shall be + absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" GrantInfo: description: > @@ -417,7 +439,7 @@ definitions: description: > Identifier of the related "ResourceDefinition" structure from the related "GrantRequest" structure. - $ref: "#/definitions/IdentifierLocal" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" reservationId: description: > The reservation identifier applicable to the @@ -452,7 +474,7 @@ definitions: resource is to be placed. Shall be present for new resources if the zones concept is applicable to them (typically, Compute resources), and shall be absent for resources that have already been allocated. - $ref: "#/definitions/IdentifierLocal" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" resourceGroupId: description: > Identifier of the "infrastructure resource group", logical grouping @@ -468,13 +490,65 @@ definitions: allocated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - IdentifierLocal: + ZoneInfo: + description: > + This type provides information regarding a resource zone. + type: object + required: + - id + - zoneId + properties: + id: + description: > + The identifier of this ZoneInfo instance, for the purpose of + referencing it from other structures in the "Grant" structure. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vimConnectionId: + description: > + Identifier of the connection to the VIM that manages the resource + zone. + The applicable "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the " vimConnectionInfo" + attribute of the "VnfInstance" structure. + This attribute shall only be supported and present when VNF-related + Resource Management in direct mode is applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management the resource + zone. + This attribute shall only be supported and present when VNF-related + Resource Management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + + ZoneGroupInfo: description: > - An identifier that is unique within a limited local scope other than - above listed identifiers, such as within a complex data structure or - within a request-response pair. - Representation: string of variable length. - type: string + This type provides information regarding a resource zone group. A + resource zone group is a group of one or more related resource zones + which can be used in resource placement constraints. To fulfil such + constraint, the NFVO may decide to place a resource into any zone that + belongs to a particular group. + NOTE: A resource zone group can be used to support overflow from one + resource zone into another, in case a particular deployment supports + only non-elastic resource zones. + type: object + required: + - zoneId + properties: + zoneId: + description: > + References of identifiers of "ZoneInfo" structures, each of which + provides information about a resource zone that belongs to this + group. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" PlacementConstraint: description: > @@ -529,55 +603,90 @@ definitions: minItems: 2 items: $ref: "#/definitions/ConstraintResourceRef" + fallbackBestEffort: + description: > + Indication if the constraint is handled with fall back best effort. Default value is “false”. + If set to true, the Affinity/Anti_Affinity placement constraint need not be fully satisfied, + i.e. if the allocation cannot be honoured with the placement constraint, the request is + processed in a best effort manner. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" - ResourceDefinition: + VimConstraint: description: > - This type provides information of an existing or proposed resource used - by the VNF. + This type provides information regarding a VIM selection constraint. A + set of such constraints may be sent by the VNFM to the NFVO to influence + the VIM selection decisions made by the NFVO as part of the granting + process. type: object required: - - id - - type + - resource properties: - id: + sameResourceGroup: description: > - Identifier of this "ResourceDefinition" structure, unique at least - within the scope of the "GrantRequest" structure. - $ref: "#/definitions/IdentifierLocal" - type: + If present and set to true, this signals that the constraint applies + not only to the same VIM connection, but also to the same + infrastructure resource group. + type: boolean + resource: description: > - Type of the resource definition referenced. + References to resources in the constraint rule. + The NFVO shall ensure that all resources in this list are managed + through the same VIM connection. If "sameResourceGroup" is set to + true, the NFVO shall further ensure that all resources in this list + are part of the same infrastructure resource group in that VIM + connection. + type: array + minItems: 2 + items: + $ref: "#/definitions/ConstraintResourceRef" + + ConstraintResourceRef: + description: > + This type references a resource either by its VIM-level identifier for + existing resources, or by the identifier of a "ResourceDefinition" + structure in the "GrantRequest" structure for new resources. + type: object + required: + - idType + - resourceId + properties: + idType: + description: > + The type of the identifier. Permitted values: - * COMPUTE - * VL - * STORAGE - * LINKPORT + * RES_MGMT: Resource-management-level identifier; this identifier is + managed by the VIM in the direct mode of VNF-related resource + management, and is managed by the NFVO in the indirect mode) + * GRANT: Reference to the identifier of a "ResourceDefinition" + structure in the "GrantRequest" structure. type: string enum: - - COMPUTE - - VL - - STORAGE - - LINKPORT - vduId: + - RES_MGMT + - GRANT + resourceId: description: > - Reference to the related VDU in the VNFD applicable to this - resource. - Shall only be present if a VDU is applicable to this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - resourceTemplateId: + An actual resource-management-level identifier (idType=RES_MGMT), + or an identifier that references a "ResourceDefinition" structure in + the related "GrantRequest" structure (idType=GRANT). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + vimConnectionId: description: > - Reference to a resource template (VnfVirtualLinkDesc, - VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the - VNFD. Shall be present for the planned creation of new resources, - including temporary resources, and for the modification of existing - resources. Shall be absent otherwise. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - resource: + Identifier of the VIM connection for managing the resource. It shall + only be present when idType = RES_MGMT. + The applicable "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the "vimConnectionInfo" + attribute of the "VnfInstance" structure. + This attribute shall only be supported when VNF-related resource + management in direct mode is applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + resourceProviderId: description: > - Resource information for an existing resource. Shall be present for - resources that are planned to be deleted or modified. Shall be - absent otherwise. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + Identifier of the resource provider. It shall only be present when + idType = RES_MGMT. + This attribute shall only be supported when VNF-related resource + management in indirect mode is applicable. The identification scheme + is outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" VimComputeResourceFlavour: description: > @@ -635,7 +744,7 @@ definitions: vimConnectionId: description: > Identifier of the VIM connection to access the software image - referenced in this structure. + referenced in this structure. The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be obtained from the "vimConnectionInfo" attribute of the "VnfInstance" structure. @@ -657,95 +766,6 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vimSoftwareImageId: description: > - Identifier of the software image in the resource management layer + Identifier of the software image in the resource management layer (i.e. VIM). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - - VimConstraint: - description: > - This type provides information regarding a VIM selection constraint. A - set of such constraints may be sent by the VNFM to the NFVO to influence - the VIM selection decisions made by the NFVO as part of the granting - process. - type: object - required: - - resource - properties: - sameResourceGroup: - description: > - If present and set to true, this signals that the constraint applies - not only to the same VIM connection, but also to the same - infrastructure resource group. - type: boolean - resource: - description: > - References to resources in the constraint rule. - The NFVO shall ensure that all resources in this list are managed - through the same VIM connection. If "sameResourceGroup" is set to - true, the NFVO shall further ensure that all resources in this list - are part of the same infrastructure resource group in that VIM - connection. - type: array - minItems: 2 - items: - $ref: "#/definitions/ConstraintResourceRef" - - ZoneGroupInfo: - description: > - This type provides information regarding a resource zone group. A - resource zone group is a group of one or more related resource zones - which can be used in resource placement constraints. To fulfil such - constraint, the NFVO may decide to place a resource into any zone that - belongs to a particular group. - NOTE: A resource zone group can be used to support overflow from one - resource zone into another, in case a particular deployment supports - only non-elastic resource zones. - type: object - required: - - zoneId - properties: - zoneId: - description: > - References of identifiers of "ZoneInfo" structures, each of which - provides information about a resource zone that belongs to this - group. - type: array - items: - $ref: "#/definitions/IdentifierLocal" - - ZoneInfo: - description: > - This type provides information regarding a resource zone. - type: object - required: - - id - - zoneId - properties: - id: - description: > - The identifier of this ZoneInfo instance, for the purpose of - referencing it from other structures in the "Grant" structure. - $ref: "#/definitions/IdentifierLocal" - zoneId: - description: > - The identifier of the resource zone, as managed by the resource - management layer (typically, the VIM). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vimConnectionId: - description: > - Identifier of the connection to the VIM that manages the resource - zone. - The applicable "VimConnectionInfo" structure, which is referenced by - vimConnectionId, can be obtained from the " vimConnectionInfo" - attribute of the "VnfInstance" structure. - This attribute shall only be supported and present when VNF-related - Resource Management in direct mode is applicable. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - resourceProviderId: - description: > - Identifies the entity responsible for the management the resource - zone. - This attribute shall only be supported and present when VNF-related - Resource Management in indirect mode is applicable. The - identification scheme is outside the scope of the present document. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 5ebe39906d76f7081a85d7d76429efb5354852a6..63fc3ce8413927c9badc89c2204a6622c6d90937 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.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: SOL003 - VNF Package Management interface description: > SOL003 - VNF Package Management interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnfpkgm/v1" @@ -48,15 +48,14 @@ paths: ############################################################################### # VNF packages # ############################################################################### - '/vnf_packages': + '/onboarded_vnf_packages': #SOL003 location: 10.4.2 get: description: > - Query VNF Package Info - - - The GET method queries the information of the VNF packages matching - the filter. + Query VNF Package Info. + The GET method queries the information of the VNF packages matching the filter. + This method shall follow the provisions specified in the tables 10.4.2.3.2-1 and 10.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -74,7 +73,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VnfPkgInfo and in data @@ -86,28 +85,28 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the VnfPkgInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: @@ -120,7 +119,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + NFVO if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -136,13 +135,16 @@ paths: description: > 200 OK - Information about zero or more VNF packages was queried successfully. - The response body shall contain in an array the VNF package info - representations that match the attribute filter, i.e. zero or more - VNF package representations as defined in clause 10.5.2.2. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more VNF packages has been queried successfully. + The response body shall contain in an array the VNF package info representations that match the + attribute filter, i.e. zero or more VNF package info representations as defined in clause 10.5.2.2. + 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, respectively. + If the VNFM 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. @@ -182,17 +184,20 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### - # Individual VNF package # + # Individual VNF package # ############################################################################### '/vnf_packages/{vnfPkgId}': parameters: @@ -208,10 +213,100 @@ paths: required: true get: description: > - Query VNF Package Info + Query VNF Package Info. + The GET method reads the information of an individual VNF package. + This method shall follow the provisions specified in the tables + 10.4.3.3.2-1 and 10.4.3.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 + - 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: + 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 10.5.2.2. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + '/onboarded_vnf_packages/{vnfdId}': + parameters: + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Query VNF Package Info. The GET method reads the information of an individual VNF package. + This method shall follow the provisions specified in the tables + 10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -238,7 +333,8 @@ paths: description: > 200 OK - Information of the selected VNF packages. + 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 10.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. @@ -270,7 +366,7 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 416: @@ -279,6 +375,9 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNFD in an individual VNF package # ############################################################################### @@ -353,13 +452,13 @@ paths: description: > 200 OK - On success, the content of the VNFD is returned. - 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 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. @@ -392,17 +491,169 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: + $ref: "../../responses/SOL002SOL003_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 VNFD, the NFVO shall respond with this response code. + $ref: "../../responses/SOL002SOL003_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 that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + + '/onboarded_vnf_packages/{vnfdId}/vnfd': + parameters: + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Query VNF Package Info + + + 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 where only the YAML files representing the VNFD, + and information needed 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. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Permitted values: "text/plain" and/or "application/zip" + Reference: IETF RFC 7231 + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - text/plain+application/zip + - 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: + 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. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + enum: + - text/plain + - application/zip + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/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 VNFD, the NFVO shall respond with this response code. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/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 that "onboardingState" of the + VNF package has a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # VNF package content # ############################################################################### @@ -420,11 +671,161 @@ paths: required: true get: description: > - Fetch VNF Package + Fetch VNF Package. + The GET method fetches the content of a VNF package identified by the + VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the tables + 10.4.5.3.2-1 and 10.4.5.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: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + Shall be returned when the whole content of the VNF package file has been read successfully. + The response body shall include a copy of the VNF package file. + The "Content-Type HTTP" header shall be set according to the type of the file, + i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV SOL 004. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 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 VNF package file + has been read successfully according to the request. + The response body shall contain the requested part of the VNF package 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. + 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: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 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 that "onboardingState" of the VNF package has + a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 416: + description: > + 416 RANGE NOT SATISFIABLE + Shall be returned upon the following error: The byte range passed in the "Range" header + did not match any available byte range in the VNF package file (e.g. "access after end of file"). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + + '/onboarded_vnf_packages/{vnfdId}/package_content': + parameters: + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Fetch VNF Package. The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the tables + 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request + and response data structures, and response codes. parameters: - name: Accept description: > @@ -462,11 +863,10 @@ paths: description: > 200 OK - On success, a copy of the VNF package file is returned. + Shall be returned when the whole content of the VNF package file has been read successfully. The response body shall include a copy of the VNF package file. - The "Content-Type HTTP" header shall be set according to the type - of the file, i.e. to "application/zip" for a VNF Package as - defined in ETSI GS NFV-SOL 004. + The "Content-Type HTTP" header shall be set according to the type of the file, + i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV SOL 004. headers: Content-Type: description: The MIME type of the body of the response. @@ -491,15 +891,12 @@ paths: description: > 206 PARTIAL CONTENT - On success, if the NFVO supports range requests, a single - consecutive byte range from the content of the VNF package file is - returned. - The response body shall contain the requested part of the VNF - package 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. + If the NFVO supports range requests, this response shall be returned when + a single consecutive byte range from the content of the VNF package file + has been read successfully according to the request. + The response body shall contain the requested part of the VNF package 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. headers: Content-Range: type: string @@ -533,17 +930,32 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/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 that "onboardingState" of the VNF package has + a value different from "ONBOARDED". + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/416" + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the "Range" header + did not match any available byte range in the VNF package file (e.g. "access after end of file"). + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual VNF package artifact # ############################################################################### @@ -552,7 +964,7 @@ paths: - name: artifactPath description: > Sequence of one or more path segments representing the path of - the artifact within the VNF package. + the artifact within the VNF package, relative to the root of the package. EXAMPLE: foo/bar/run.sh This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in the body of the @@ -573,11 +985,183 @@ paths: required: true get: description: > - Fetch VNF Package Artifacts + Fetch VNF Package Artifacts. + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the tables + 10.4.6.3.2-1 and 10.4.6.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 + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + 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". + headers: + Content-Type: + description: > + The MIME type of the body of the response. + 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". + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 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 artifact + file, if the NFVO supports range requests has been read successfully + according to the request. + The response body shall contain the requested part of the VNF + package 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. + 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: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + 409 CONFLICT - The GET method fetches the content of an artifact within a VNF - package. + 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 "onboardingState" of the + VNF package 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/SOL002SOL003_resp.yaml#/responses/409" + 416: + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the + "Range" header did not match any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + + '/onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}': + parameters: + - name: artifactPath + description: > + Sequence of one or more path segments representing the path of + the artifact within the VNF package, relative to the root of the package. + EXAMPLE: foo/bar/run.sh + 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. + in: path + type: string + required: true + - name: vnfdId + description: > + Identifier of the VNFD and the VNF package. + The identifier is allocated by the VNF provider. + This identifier can be retrieved from the "vnfdId" attribute + in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + in: path + type: string + required: true + get: + description: > + Fetch VNF Package Artifacts. + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the tables + 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request + and response data structures, and response codes. parameters: - name: Accept description: > @@ -612,13 +1196,11 @@ paths: description: > 200 OK - On success, the content of the artifact is returned. - 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. + 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". headers: Content-Type: description: > @@ -648,9 +1230,10 @@ paths: description: > 206 PARTIAL CONTENT - On success, if the NFVO supports range requests, a single - consecutive byte range from the content of the VNF package file is - returned. + If the NFVO supports range requests, this response shall be returned + when a single consecutive byte range from the content of the artifact + file, if the NFVO supports range requests has been read successfully + according to the request. The response body shall contain the requested part of the VNF package file. The "Content-Range" HTTP header shall be provided according to @@ -690,36 +1273,61 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/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 that "onboardingState" of the + VNF package 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/SOL002SOL003_resp.yaml#/responses/409" 416: - $ref: "responses/VNFPackageManagement_resp.yaml#/responses/416" + description: > + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte range passed in the + "Range" header did not match any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### '/subscriptions': post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - 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 VNFM, 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 + This method shall follow the provisions specified in the tables + 10.4.7.3.1-1 and 10.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 as defined in clause 10.4.8 + shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same + callbackURI and the same filter can result in performance degradation + and will provide duplicates of notifications to the VNFM, and might + make sense only in very rare use cases. Consequently, the NFVO may + either allow creating a new "Individual subscription" resource if + another "Individual 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 + "Individual subscription" resource (in which case it shall return a + "303 See Other" response code referencing the existing "Individual subscription" resource with the same filter and callbackUri). parameters: - name: PkgmSubscriptionRequest @@ -763,9 +1371,9 @@ paths: description: > 201 CREATED - 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 resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -795,6 +1403,14 @@ paths: items: $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the same callbackURI and the same filter + already exists 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 "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -805,23 +1421,25 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - 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. + Query Subscription Information. + 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 10.4.7.3.2-1 and 10.4.7.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -839,7 +1457,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the PkgmSubscription and in @@ -851,8 +1469,8 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be - supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + 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. in: query required: false type: string @@ -867,14 +1485,16 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The representations 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 VNF package Management - subscriptions as defined in clause 10.5.2.4. - If the VNFM 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 4.7.2.3. + 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 VNF package management subscriptions as defined in clause 10.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 + If the VNFM 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. @@ -914,15 +1534,18 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -934,17 +1557,18 @@ paths: 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 + creating a new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method reads an individual subscription. + This method shall follow the provisions specified in the tables + 10.4.8.3.2-1 and 10.4.8.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -971,7 +1595,8 @@ paths: description: > 200 OK - 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. @@ -1003,21 +1628,30 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate subscription - - + Terminate subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 10.4.8.3.5-1 and 10.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: Authorization description: > @@ -1037,7 +1671,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. headers: WWW-Authenticate: description: > @@ -1062,12 +1696,14 @@ paths: 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index 12a536c5c38f905a3a4aa8d2043eeedf0231a4e9..f48254f3ae31f4d6162e41de7428f3610e5fd535 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -2,24 +2,6 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - Checksum: - description: > - This type represents the checksum of a VNF package or an artifact file. - type: object - required: - - algorithm - - hash - properties: - algorithm: - description: > - Name of the algorithm used to generate the checksum, as defined in - ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512. - type: string - hash: - description: > - The hexadecimal value of the checksum. - type: string - VnfPkgInfo: description: > This type represents the information of an VNF package. @@ -62,13 +44,13 @@ definitions: This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > The version of the VNFD. This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" checksum: description: > Checksum of the on-boarded VNF package. @@ -130,188 +112,40 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" vnfd: description: > - Link to the VNFD resource. This link shall be present after the - VNF package content is on-boarded. + Link to the "VNFD in an individual VNf package" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" packageContent: description: > Link to the "VNF package content" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - PackageOnboardingStateType: - description: > - CREATED: The VNF package resource has been created. - 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 has been successfully - on-boarded. - type: string - enum: - - CREATED - - UPLOADING - - PROCESSING - - ONBOARDED - - PackageOperationalStateType: - description: > - - ENABLED: The VNF package is enabled, i.e. it can be used for - instantiation of new VNF instances. - - DISABLED: The VNF package is disabled, i.e. it cannot be used for - further VNF instantiation requests (unless and until the VNF package - is re-enabled). - type: string - enum: - - ENABLED - - DISABLED - - PackageUsageStateType: - description: > - - IN_USE: VNF instances instantiated from this VNF package exist. - - NOT_IN_USE: No existing VNF instance is instantiated from this VNF - package. - - PkgmNotificationsFilter: - description: > - This type represents a subscription filter related to notifications - related to VNF package management. - 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: - notificationTypes: - description: > - Match particular notification types. - Permitted values: - - VnfPackageOnboardingNotification - - VnfPackageChangeNotification - 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: - - VnfPackageOnboardingNotification - - VnfPackageChangeNotification - vnfProductsFromProviders: - description: > - If present, match VNF packages that contain VNF products from - certain providers. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. - type: array - items: - type: object - required: - - vnfProvider - properties: - vnfProvider: - description: > - Name of the VNF provider to match. - type: string - vnfProducts: - description: > - If present, match VNF packages that contain VNF products with - certain product names, from one particular provider. - type: array - items: - type: object - required: - - vnfProductName - properties: - vnfProductName: - description: > - Name of the VNF product to match. - type: string - versions: - description: > - If present, match VNF packages that contain VNF products - with certain versions and a certain product name, from - one particular provider. - type: array - items: - type: object - required: - - vnfSoftwareVersion - properties: - vnfSoftwareVersion: - description: > - VNF software version to match. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersions: - description: > - If present, match VNF packages that contain VNF - products with certain VNFD versions, a certain - software version and a certain product name, from - one particular provider. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdId: - description: > - Match VNF packages with a VNFD identifier listed in the attribute. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfPkgId: - description: > - Match VNF packages with a package identifier listed in the - attribute. - May be present if the "notificationTypes" attribute contains the - value "VnfPackageChangeNotification", and shall be absent - otherwise. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operationalState: - description: > - Match particular operational state of the VNF package. - May be present if the "notificationTypes" attribute contains the - value "VnfPackageChangeNotification", and shall be absent - otherwise. - $ref: "#/definitions/PackageOperationalStateType" - usageState: - description: > - Match particular usage state of the VNF package. - May be present if the "notificationTypes" attribute contains the - value "VnfPackageChangeNotification", and shall be absent - otherwise. - $ref: "#/definitions/PackageUsageStateType" - - PkgmLinks: + PkgmSubscriptionRequest: description: > - This type represents the links to resources that a VNF package - management notification can contain. + This type represents a subscription request related to VNF package + management notifications about VNF package on-boarding or changes. type: object required: - - vnfPackage - - subscription + - callbackUri properties: - vnfPackage: + filter: description: > - Link to the resource representing the VNF package to which the - notified change applies, i.e. the individual on-boarded VNF package - resource that represents the VNF package. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - subscription: + 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/PkgmNotificationsFilter" + callbackUri: description: > - Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + The URI of the endpoint to send the notification to. + $ref: "../../../definitions/SOL002SOL003_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/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" PkgmSubscription: description: > @@ -325,7 +159,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource. + Identifier of this "Individual subscription" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > @@ -350,57 +184,6 @@ definitions: URI of this resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - PkgmSubscriptionRequest: - description: > - This type represents a subscription request related to VNF package - management notifications about VNF package on-boarding or changes. - 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/PkgmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" - authentication: - description: > - Authentication parameters to configure the use of Authorization - when sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" - - VnfPackageArtifactInfo: - description: > - This type represents an artifact other than a software image which is - contained in a VNF package. - type: object - required: - - artifactPath - - checksum - properties: - artifactPath: - description: > - Path in the VNF package, which identifies the artifact and also - allows to access a copy of the artifact. - type: string - checksum: - description: > - Checksum of the artifact file. - $ref: "#/definitions/Checksum" - metadata: - description: > - The metadata of the artifact that are available in the VNF package, - such as Content type, size, creation date, etc. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfPackageSoftwareImageInfo: description: > This type represents an artifact contained in a VNF package which @@ -435,7 +218,7 @@ definitions: version: description: > Version of the software image. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" checksum: description: > Checksum of the software image file. @@ -452,7 +235,7 @@ definitions: - DOCKER: docker container format - OVA: OVF package in a tarfile - OVF: OVF container format - The list of permitted values was taken from "Container formats" in + The list of permitted values was taken from "Container formats" in http://docs.openstack.org/image-guide/image-formats.html type: string enum: @@ -480,7 +263,7 @@ definitions: - VHD: a common disk image format - VHDX: enhanced version of VHD format - VMDK: a common disk image format - The list of permitted values was adapted from "Disk formats" in + The list of permitted values was adapted from "Disk formats" in http://docs.openstack.org/image-guide/image-formats.html type: string enum: @@ -519,4 +302,207 @@ definitions: allows to access a copy of the image artifact. type: string - \ No newline at end of file + VnfPackageArtifactInfo: + description: > + This type represents an artifact other than a software image which is + contained in a VNF package. + type: object + required: + - artifactPath + - checksum + 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 + type: string + checksum: + description: > + Checksum of the artifact file. + $ref: "#/definitions/Checksum" + metadata: + description: > + The metadata of the artifact that are available in the VNF package, + such as Content type, size, creation date, etc. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + PkgmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications + related to VNF package management. + 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: + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + 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: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + vnfProductsFromProviders: + description: > + If present, match VNF packages that contain VNF products from + certain providers. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: object + required: + - vnfProvider + properties: + vnfProvider: + description: > + Name of the VNF provider to match. + type: string + vnfProducts: + description: > + If present, match VNF packages that contain VNF products with + certain product names, from one particular provider. + type: array + items: + type: object + required: + - vnfProductName + properties: + vnfProductName: + description: > + Name of the VNF product to match. + type: string + versions: + description: > + If present, match VNF packages that contain VNF products + with certain versions and a certain product name, from + one particular provider. + type: array + items: + type: object + required: + - vnfSoftwareVersion + properties: + vnfSoftwareVersion: + description: > + VNF software version to match. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersions: + description: > + If present, match VNF packages that contain VNF + products with certain VNFD versions, a certain + software version and a certain product name, from + one particular provider. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdId: + description: > + Match VNF packages with a VNFD identifier listed in the attribute. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfPkgId: + description: > + Match VNF packages with a package identifier listed in the + attribute. + May be present if the "notificationTypes" attribute contains the + value "VnfPackageChangeNotification", and shall be absent + otherwise. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operationalState: + description: > + Match particular operational state of the VNF package. + May be present if the "notificationTypes" attribute contains the + value "VnfPackageChangeNotification", and shall be absent + otherwise. + $ref: "#/definitions/PackageOperationalStateType" + usageState: + description: > + Match particular usage state of the VNF package. + May be present if the "notificationTypes" attribute contains the + value "VnfPackageChangeNotification", and shall be absent + otherwise. + $ref: "#/definitions/PackageUsageStateType" + + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + type: object + required: + - algorithm + - hash + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, as defined in + ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + + PackageOperationalStateType: + description: > + - ENABLED: The VNF package is enabled, i.e. it can be used for + instantiation of new VNF instances. + - DISABLED: The VNF package is disabled, i.e. it cannot be used for + further VNF instantiation requests (unless and until the VNF package + is re-enabled). + type: string + enum: + - ENABLED + - DISABLED + + PackageUsageStateType: + description: > + - IN_USE: VNF instances instantiated from this VNF package exist. + - NOT_IN_USE: No existing VNF instance is instantiated from this VNF + package. + type: string + enum: + - IN_USE + - NOT_IN_USE + + PackageOnboardingStateType: + description: > + CREATED: The "Individual VNF package" resource has been created. + 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 has been successfully + on-boarded. + type: string + enum: + - CREATED + - UPLOADING + - PROCESSING + - ONBOARDED \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml b/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml deleted file mode 100644 index c13fdc6fba181912d71f182e675c9e9342d6d4cb..0000000000000000000000000000000000000000 --- a/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml +++ /dev/null @@ -1,76 +0,0 @@ -responses: - 406: - description: > - 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 VNFD, the - NFVO shall respond with this response code. - The "ProblemDetails" structure may be included with the "detail" - attribute providing more information about the error. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 409: - description: > - 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 "onboardingState" of the VNF - package 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. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - 416: - description: > - Requested Range Not Satisfiable - - The byte range passed in the "Range" header did not match any available - byte range in the VNF package file (e.g. "access after end of file"). - The response body may contain a ProblemDetails structure. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - schema: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 60214c89501f313cb75e19526c63b587c3ee6af6..89c29219afa77fcb2264406396dc5e42f1ccf505 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.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: SOL003 - VNF Package Management Notification interface description: > SOL003 - VNF Package Management Notification interface @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,10 +46,11 @@ paths: #SOL003 location: 10.4.9 post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + 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 10.4.9.3.1-1 and 10.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: VnfPackageOnboardingNotification description: A notification about on-boarding of a VNF package. @@ -82,7 +83,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -104,18 +105,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: 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 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 tables 10.4.9.3.2-1 and 10.4.9.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -135,7 +139,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -158,14 +162,15 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint VnfPackageChangeNotification # ############################################################################### @@ -173,10 +178,11 @@ paths: #SOL003 location: 10.4.9 post: description: > - Notify - - - The POST method delivers a notification from the server to the client. + Notify. + 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 10.4.9.3.1-1 and 10.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: VnfPackageChangeNotification description: > @@ -210,7 +216,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -232,18 +238,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: 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 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 tables 10.4.9.3.2-1 and 10.4.9.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -263,7 +272,7 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -286,12 +295,11 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml index b0e98acb68c6965641a463d00a7ae1644e8e807d..7f70a1086c9bc985aa16664f974e3c6cda415826 100644 --- a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml +++ b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml @@ -2,41 +2,14 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - PackageChangeType: - description: > - - OP_STATE_CHANGE: The "operationalState" attribute has been changed. - - PKG_DELETE: The VNF package has been deleted. - type: string - enum: - - OP_STATE_CHANGE - - PKG_DELETE - - PackageOperationalStateType: - description: > - - ENABLED: The VNF package is enabled, i.e. it can be used for - instantiation of new VNF instances. - - DISABLED: The VNF package is disabled, i.e. it cannot be used for - further VNF instantiation requests (unless and until the VNF package - is re-enabled). - type: string - enum: - - ENABLED - - DISABLED - - VnfPackageChangeNotification: + VnfPackageOnboardingNotification: 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 NF package will be reported. - Changes in the "usageState" and "onboardingState" attributes are not - reported. - 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" - (i.e. the package has been onboarded previously). - * The on-boarded VNF package has been deleted. + This type represents a VNF package management notification, + which informs the receiver that the onboarding process of a VNF package + is complete and the package is ready for use. + The notification shall be triggered by the NFVO when the + "onboardingState" attribute of a new VNF package has changed to + "ONBOARDED". type: object required: - id @@ -45,7 +18,6 @@ definitions: - timeStamp - vnfPkgId - vnfdId - - changeType - _links properties: id: @@ -56,11 +28,12 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" notificationType: description: > - Discriminator for the different notification types. - Shall be set to "VnfPackageChangeNotification" for this notification type. + Discriminator for the different notification types. + Shall be set to "VnfPackageOnboardingNotification" for this + notification type. type: string enum: - - VnfPackageChangeNotification + - VnfPackageOnboardingNotification subscriptionId: description: > Identifier of the subscription that this notification relates to. @@ -77,32 +50,29 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > - Identifier of the VNFD contained in the VNF package, which also - identifies the VNF package. This identifier is allocated by the VNF - provider and copied from the VNFD. + This identifier, which is managed by the VNF provider, identifies + the VNF package and the VNFD in a globally unique way. + It's copied from the VNFD of the on-boarded VNF package. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - changeType: - description: > - The type of change of the VNF package. - $ref: "#/definitions/PackageChangeType" - operationalState: - description: > - New operational state of the VNF package. - Only present when changeType is OP_STATE_CHANGE. - $ref: "#/definitions/PackageOperationalStateType" _links: description: > Links to resources related to this notification. $ref: "#/definitions/PkgmLinks" - VnfPackageOnboardingNotification: + VnfPackageChangeNotification: description: > - This type represents a VNF package management notification, - which informs the receiver that the onboarding process of a VNF package - is complete and the package is ready for use. - The notification shall be triggered by the NFVO when the - "onboardingState" attribute of a new VNF package has changed to - "ONBOARDED". + 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 NF package will be reported. + Changes in the "usageState" and "onboardingState" attributes are not + reported. + 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" + (i.e. the package has been onboarded previously). + * The on-boarded VNF package has been deleted. type: object required: - id @@ -111,6 +81,7 @@ definitions: - timeStamp - vnfPkgId - vnfdId + - changeType - _links properties: id: @@ -122,11 +93,10 @@ definitions: notificationType: description: > Discriminator for the different notification types. - Shall be set to "VnfPackageOnboardingNotification" for this - notification type. + Shall be set to "VnfPackageChangeNotification" for this notification type. type: string enum: - - VnfPackageOnboardingNotification + - VnfPackageChangeNotification subscriptionId: description: > Identifier of the subscription that this notification relates to. @@ -143,31 +113,59 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > - This identifier, which is managed by the VNF provider, identifies - the VNF package and the VNFD in a globally unique way. - It's copied from the VNFD of the on-boarded VNF package. + Identifier of the VNFD contained in the VNF package, which also + identifies the VNF package. This identifier is allocated by the VNF + provider and copied from the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + changeType: + description: > + The type of change of the VNF package. + $ref: "#/definitions/PackageChangeType" + operationalState: + description: > + New operational state of the VNF package. + Only present when changeType is OP_STATE_CHANGE. + $ref: "../../VNFPackageManagement/definitions/VNFPackageManagement_def.yaml#/definitions/PackageOperationalStateType" _links: description: > Links to resources related to this notification. $ref: "#/definitions/PkgmLinks" + PackageChangeType: + description: > + - OP_STATE_CHANGE: The "operationalState" attribute has been changed. + - PKG_DELETE: The VNF package has been deleted. + type: string + enum: + - OP_STATE_CHANGE + - PKG_DELETE + PkgmLinks: description: > - This type represents the links to resources that a VNF package management - notification can contain. + This type represents the links to resources that a VNF package + management notification can contain. type: object required: - vnfPackage - subscription properties: vnfPackage: + description: > + Link to the resource representing the VNF package to which the + notified change applies, i.e. the individual on-boarded VNF package + resource that represents the VNF package, identified by the "vnfPkgId" + identifier which is managed by the NFVO. This attribute shall be provided + by the NFVO but is deprecated and can be removed in future versions + of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + vnfPackageByVnfdId: description: > Link to the resource representing the VNF package to which the notified - change applies, i.e. the individual VNF package resource - that represents the VNF package. + change applies, i.e. the individual VNF package resource that represents + the VNF package, identified by the "vnfdId" identifier which is assigned + by the VNF vendor. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" subscription: description: > Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" \ No newline at end of file diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index bbe5b81635f96af7b1e71d175ee448a08f2a689b..390c370617e21bc04fd612f7627acecd110d1895 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vnfpm/v1" @@ -52,10 +52,12 @@ paths: #SOL003 location: 6.4.2 post: description: > - Create PM Job - - + Create PM Job. The POST method creates a PM job. + This method shall follow the provisions specified in the tables 6.4.2.3.1-1 and 6.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 as defined + in clause 6.4.3 shall have been created. parameters: - name: CreatePmJobRequest description: The VNF creation parameters @@ -95,10 +97,11 @@ paths: description: > 201 CREATED - The PM job was created successfully. The response body shall - contain a representation of the created PM job resource. - The HTTP response shall include a "Location" HTTP header that - points to the created PM job resource. + Shall be returned when the PM job has been created successfully. + The response body shall contain a representation of the created "Individual PM job" resource, + as defined in clause 6.5.2.7. + The HTTP response shall include a "Location" HTTP header that points to the created + "Individual PM job" resource. headers: Location: description: The resource URI of the created PM Job @@ -126,19 +129,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query PM Job - - + Query PM Job. + The client can use this method to retrieve information about PM jobs. + This method shall follow the provisions specified in the tables 6.4.2.3.2-1 and 6.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. The client can use this method to retrieve information about PM jobs. parameters: - name: Accept @@ -157,7 +168,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the PmJob and in data @@ -169,31 +180,31 @@ paths: - name: all_fields description: > Include all complex attributes in the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. in: query required: false type: string - name: fields description: > Complex attributes to be included into the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_fields description: > Complex attributes to be excluded from the response. - See clause 4.3.3 for details. The VNFM should support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter. in: query required: false type: string - name: exclude_default description: > Indicates to exclude the following complex attributes from the response. - See clause 4.3.3 for details. The VNFM shall support this parameter. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. The following attributes shall be excluded from the PmJob structure in the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - Reports in: query required: false @@ -201,7 +212,7 @@ paths: - name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by the - VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 + VNFM if the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false @@ -217,13 +228,16 @@ paths: description: > 200 OK - Information about zero or more PM jobs was queried successfully. - The response body shall contain in an array representations of - zero or more PM jobs, as defined in clause 6.5.2.7. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more PM jobs has been queried successfully. + The response body shall contain in an array the representations of zero or more PM jobs, + as defined in clause 6.5.2.7. + 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, respectively. + If the VNFM 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: > @@ -262,14 +276,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual PM job # ############################################################################### @@ -281,17 +302,17 @@ paths: Identifier of the PM job. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new PM job resource. It can also be retrieved from the "id" + new "Individual PM job" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query PM Job - - + Query PM Job. The client can use this method for reading an individual PM job. + This method shall follow the provisions specified in the tables 6.4.3.3.2-1 and 6.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -318,9 +339,9 @@ paths: description: > 200 OK - Information about an individual PM job was queried successfully. - The response body shall contain a representation of the PM job - resource. + Shall be returned when information about an individual PM job has been read successfully. + The response body shall contain a representation of the "Individual PM job" resource, + as defined in clause 6.5.2.7. headers: Content-Type: description: > @@ -351,20 +372,28 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Delete PM Job - - + Delete PM Job. This method terminates an individual PM job. + This method shall follow the provisions specified in the tables 6.4.3.3.5-1 and 6.4.3.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 PM job" resource shall not exist any longer. parameters: - name: Authorization description: > @@ -384,7 +413,7 @@ paths: description: > 204 NO CONTENT - The PM job was deleted successfully. + Shall be returned when the PM job has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -407,14 +436,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual performance report # ############################################################################### @@ -435,8 +471,9 @@ paths: required: true get: description: > - The client can use this method for reading an individual performance - report. + The client can use this method for reading an individual performance report. + This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -463,10 +500,9 @@ paths: description: > 200 OK - Information of an individual performance report was read - successfully. - The response body shall contain a representation of the - performance report resource. + Shall be returned when information of an individual performance report has been read successfully. + The response body shall contain a representation of the "Individual performance report" resource, + as defined in clause 6.5.2.10. headers: Content-Type: description: > @@ -497,14 +533,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Thresholds # ############################################################################### @@ -512,10 +555,12 @@ paths: #SOL003 location: 6.4.5 post: description: > - Create Threshold - - + Create Threshold. The POST method can be used by the client to create a threshold. + This method shall follow the provisions specified in the tables 6.4.5.3.1-1 and 6.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 + as defined in clause 6.4.6 shall have been created. parameters: - name: CreateThresholdRequest description: > @@ -556,10 +601,11 @@ paths: description: > 201 CREATED - A threshold was created successfully. The response body shall - contain a representation of the created threshold resource. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created threshold resource. + Shall be returned when a threshold has been created successfully. + The response body shall contain a representation of the created "Individual threshold" resource, + as defined in clause 6.5.2.9. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the + created threshold resource. headers: Location: description: The resource URI of the created VNF instance @@ -594,20 +640,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Threshold - - + Query Threshold. The client can use this method to query information about thresholds. + This method shall follow the provisions specified in the tables 6.4.5.3.2-1 and 6.4.5.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -625,24 +678,19 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. - The VNFM shall support receiving this parameter as part of the - URI query string. The NFVO may supply this parameter. - All attribute names that appear in the Thresholds and in - data types referenced from it shall be supported by the VNFM - in the filter expression. - - NOTE: There are no attribute selectors defined for this resource as - the threshold attributes with cardinality 0..1 or 0..N are not - structurally complex in nature. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. + The VNFM shall support receiving this parameter as part of the URI query string. + The NFVO may supply this parameter. + All attribute names that appear in the Thresholds data type and in data types referenced + from it shall be supported by the VNFM in the filter expression. in: query required: false type: string - name: nextpage_opaque_marker description: > - Marker to obtain the next page of a paged response. Shall be - supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + Marker to obtain the next page of a paged response. + Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) according to clause + 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -657,14 +705,15 @@ paths: description: > 200 OK - Information about zero or more thresholds was queried - successfully. - The response body shall contain in an array representations - of zero or more thresholds, as defined in 6.5.2.9. - If the VNFM 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 4.7.2.3. + Shall be returned when information about zero or more thresholds has been queried successfully. + 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. + The response body shall contain in an array the representations of zero or more thresholds, + as defined in clause 6.5.2.9. + If the VNFM 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: Location: description: The resource URI of the created VNF instance @@ -707,14 +756,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual threshold # ############################################################################### @@ -726,17 +782,17 @@ paths: Identifier of the threshold. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a - new threshold resource. It can also be retrieved from the "id" + new "Individual threshold" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Threshold - - - The client can use this method for reading an individual threshold. + Query Threshold. + The client can use this method for reading an individual threshold + This method shall follow the provisions specified in the tables 6.4.6.3.2-1 and 6.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -763,9 +819,8 @@ paths: description: > 200 OK - Information about an individual threshold was queried - successfully. The response body shall contain a - representation of the threshold. + Shall be returned when information about an individual threshold has been read successfully. + The response body shall contain a representation of the threshold, as defined in clause 6.5.2.9. headers: Content-Type: description: > @@ -796,20 +851,29 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Delete Threshold - - + Delete Threshold. This method allows to delete a threshold. + This method shall follow the provisions specified in the tables 6.4.6.3.5-1 and 6.4.6.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 threshold" resource + shall not exist any longer. parameters: - name: Authorization description: > @@ -852,14 +916,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Subscriptions # ############################################################################### @@ -867,20 +938,20 @@ paths: #SOL003 location: 6.4.7 post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - 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 NFVO, and might make sense only in - very rare use cases. Consequently, the VNFM 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 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. + As the result of successfully executing this method, a new "Individual subscription" resource + as defined in clause 6.4.8 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and the same filter + can result in performance degradation and will provide duplicates of notifications to the NFVO, + and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating + a new "Individual subscription" resource if another "Individual 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 "Individual subscription" resource (in which case it shall + return a "303 See Other" response code referencing the existing "Individual subscription" resource + with the same filter and callbackUri). parameters: - name: PmSubscriptionRequest description: > @@ -921,11 +992,11 @@ paths: description: > 201 CREATED - The subscription was created successfully. A representation of the - created subscription resource shall be returned in the response - body. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of 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 6.5.2.3. + The HTTP response shall include a "Location" HTTP header that contains the + resource URI of the created "Individual subscription" resource. headers: Location: description: The resource URI of the created VNF instance @@ -962,22 +1033,28 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - The client can use this method to query the list of active - subscriptions to Performance management notifications subscribed by - the client. + Query Subscription Information. + TThe 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 6.4.7.3.2-1 and 6.4.7.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -995,7 +1072,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the PmSubscription and in @@ -1008,7 +1085,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -1023,15 +1100,15 @@ paths: description: > 200 OK - The list of subscriptions was 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 PM subscriptions - as defined in 6.5.2.3. - If the VNFM 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 4.7.2.3. + 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 + PM subscriptions as defined in clause 6.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 VNFM 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: > @@ -1070,14 +1147,21 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -1088,18 +1172,18 @@ paths: description: > 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" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - - The client can use this method for reading an individual subscription - about Performance management notifications subscribed by the client. + Query Subscription Information. + 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 6.4.8.3.2-1 and 6.4.8.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -1126,8 +1210,9 @@ paths: description: > 200 OK - The subscription was read successfully. The response body shall - contain a representation of the subscription resource. + Shall be returned when the subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource, + as defined in clause 6.5.2.3. headers: Content-Type: description: > @@ -1158,20 +1243,33 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate Subscription - - + Terminate Subscription. This method terminates an individual subscription. + This method shall follow the provisions specified in the tables 6.4.8.3.5-1 and 6.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: Authorization description: > @@ -1191,7 +1289,7 @@ paths: description: > 204 NO CONTENT - The subscription resource was deleted successfully. + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -1214,11 +1312,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index e26d686cca84a6344f3accfb763d23afbf304f23..19268878c098f9f7c2466fbd178737bf7fca5496 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/callback/v1" @@ -46,11 +46,12 @@ paths: #SOL003 location: 6.4.9 post: description: > - Notify - - - The POST method delivers a notification regarding a performance - management event from the server to the client. + Notify. + The POST method delivers a notification regarding a performance management + event from the server to the client.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.9.3.1-1 and 6.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: PerformanceInformationAvailableNotification description: > @@ -84,7 +85,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -114,10 +115,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + 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 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. parameters: - name: Authorization description: > @@ -137,7 +141,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -167,6 +172,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + ############################################################################### # Notification endpoint ThresholdCrossedNotification # ############################################################################### @@ -174,11 +180,12 @@ paths: #SOL003 location: 6.4.9 post: description: > - Notify - - - The POST method delivers a notification regarding a performance - management event from the server to the client. + Notify. + The POST method delivers a notification regarding a performance management + event from the server to the client.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.9.3.1-1 and 6.4.9.3.1-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: ThresholdCrossedNotification description: > @@ -212,7 +219,7 @@ paths: description: > 204 NO CONTENT - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: description: > @@ -242,10 +249,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + 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 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. parameters: - name: Authorization description: > @@ -265,7 +275,8 @@ paths: description: > 204 NO CONTENT - The notification endpoint was tested successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: description: > @@ -294,4 +305,4 @@ paths: 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 20aa281e3f8c72d45e6121d40fda4b7b3a15c6f8..8acca4d042ecfdf26cd65daefb93863f81ca4155 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf + description: ETSI GS NFV-SOL 003 V2.6.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf basePath: "/vrqan/v1" @@ -51,19 +51,21 @@ paths: '/subscriptions': post: description: > - Subscribe - - + Subscribe. The POST method creates a new subscription. - 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 VNFM, 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 + This method shall follow the provisions specified in the tables 11.4.2.3.1-1 and 11.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 subscription" + resource as defined in clause 11.4.3 shall have been created. This method shall not + trigger any notification. + Creation of two "Individual subscription" resources with the same callbackURI and + the same filter can result in performance degradation and will provide duplicates + of notifications to the VNFM, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a new "Individual subscription" + resource if another "Individual 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 "Individual subscription" resource (in which case + it shall return a "303 See Other" response code referencing the existing "Individual subscription" resource with the same filter and callbackUri). parameters: - name: Accept @@ -105,9 +107,9 @@ paths: description: > 201 CREATED - 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 resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -135,6 +137,14 @@ paths: schema: $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription" 303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the same callbackURI and the same + filter already exists 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 "Individual subscription" resource. + The response body shall be empty. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -146,19 +156,24 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + get: description: > - Query Subscription Information - - - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + Query Subscription Information. + 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 11.4.2.3.2-1 and 11.4.2.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > @@ -169,7 +184,7 @@ paths: type: string - name: filter description: > - Attribute-based filtering expression according to clause 4.3.2. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The NFVO may supply this parameter. All attribute names that appear in the VrQuotaAvailSubscription @@ -182,7 +197,7 @@ paths: description: > Marker to obtain the next page of a paged response. Shall be supported by the VNFM if the VNFM supports alternative 2 (paging) - according to clause 4.7.2.1 for this resource. + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false type: string @@ -197,14 +212,15 @@ paths: description: > 200 OK - The list of subscriptions was queried successfully. - The representations 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 virtualized resource quota - available subscriptions as defined in clause 11.5.2.3. - If the VNFM 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 4.7.2.3. + 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 virtualised resource quota available subscriptions as defined in clause 11.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 VNFM 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. @@ -264,12 +280,19 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + ############################################################################### # Individual subscription # ############################################################################### @@ -280,17 +303,17 @@ paths: 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" + new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string required: true get: description: > - Query Subscription Information - - + Query Subscription Information. The GET method reads an individual subscription. + This method shall follow the provisions specified in the tables 11.4.3.3.2-1 and 11.4.3.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > @@ -309,9 +332,10 @@ paths: responses: 200: description: > - OK + 200 OK - 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: > @@ -330,18 +354,30 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + delete: description: > - Terminate subscription - - + Terminate subscription. The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the tables 11.4.3.3.5-1 and 11.4.3.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: Authorization description: > @@ -355,8 +391,7 @@ paths: description: > No Content - The subscription resource was deleted successfully. - The response body shall be empty. + Shall be returned when the "Individual subscription" resource has been deleted successfully. headers: Content-Type: description: > @@ -371,13 +406,17 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - - + 504: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml index 86ee0681dc653fd86934c3ea30645f7715b38def..19e58cf7a34842a96c9ea1b6798c8374afe6c537 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml @@ -63,7 +63,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource + Identifier of this "Individual subscription" resource $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > @@ -107,10 +107,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. + 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/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml deleted file mode 100644 index 1bdef906a4f81e6842d2f6b924c0e3498367ddf4..0000000000000000000000000000000000000000 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml +++ /dev/null @@ -1,149 +0,0 @@ -swagger: "2.0" - -info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: SOL003 - Virtualised Resources Quota Available Notification Notification interface - description: > - SOL003 - Virtualised Resources Quota Available Notification Notification interface - - - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to. In case of - discrepancies the published ETSI Group Specification takes precedence. - - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= - license: - name: "ETSI Forge copyright notice" - url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - -externalDocs: - description: ETSI GS NFV-SOL 003 V2.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf - -basePath: "/callback/v1" - -schemes: - - https - -consumes: - - "application/json" -produces: - - "application/json" - -paths: - ############################################################################### - # Notification endpoint VnfLcmOperationOccurrenceNotification # - ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription': - post: - description: > - Notify - - - The POST method delivers a notification from the server to the client. - parameters: - - name: VrQuotaAvailNotification - description: A notification related to the availability of the virtualised resources quota. - in: body - required: true - schema: - $ref: "definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml#/definitions/VrQuotaAvailNotification" - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - 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 - - 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 - - The notification was delivered successfully. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" - 401: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" - 403: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" - 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" - 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 500: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" - 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - get: - description: > - The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. - parameters: - - 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 - - The notification was delivered successfully. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" - 401: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" - 403: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" - 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" - 405: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" - 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" - 500: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" - 503: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml deleted file mode 100644 index 0187577b8a9c9da16cc66c03590866f7c1655bf0..0000000000000000000000000000000000000000 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - VrQuotaAvailNotification: - description: > - This type represents a notification which indicates the availability of - a quota applicable to the consumer. - Support of this notification is mandatory if the - Virtualised Resources Quota Available Notification interface is - supported. - The notification shall be triggered by the NFVO when a virtualised - resource quota applicable to the consumer has been set. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - resourceGroupId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. - Shall be set to "VrQuotaAvailNotification" for this notification type. - type: string - enum: - - VrQuotaAvailNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - resourceGroupId: - description: > - Identifier of the "infrastructure resource group", logical grouping - of virtual resources assigned to a tenant within an Infrastructure - Domain. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - vimConnectionInfo: - description: > - Information about the VIM connection to manage the virtualised - resources quota. - This attribute shall only be supported and present when VNF-related - Resource Management in direct mode is applicable. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - resourceProviderId: - description: > - Identifies the entity responsible for the management of the - virtualised resources quota. - This attribute shall only be supported and present when - VNF-related Resource Management in indirect mode is applicable. The - identification scheme is outside the scope of the present document. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/QuotaAvailLinks" - - QuotaAvailLinks: - description: > - This type represents the links to resources that a notification of type - "VrQuotaAvailNotification" can contain. - type: object - required: - - subscription - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" - - - - diff --git a/src/SOL003/definitions/SOL003_def.yaml b/src/SOL003/definitions/SOL003_def.yaml deleted file mode 100644 index 099b2f9ac352e7bf0fdc22e45f9f2f88734340df..0000000000000000000000000000000000000000 --- a/src/SOL003/definitions/SOL003_def.yaml +++ /dev/null @@ -1,223 +0,0 @@ -# Copyright (c) ETSI 2017. -# https://forge.etsi.org/etsi-forge-copyright-notice.txt - -definitions: - Alarm: - description: > - The alarm data type encapsulates information about an alarm. - type: object - required: - - id - - managedObjectId - - rootCauseFaultyResource - - alarmRaisedTime - - ackState - - perceivedSeverity - - eventTime - - eventType - - probableCause - - isRootCause - - _links - properties: - id: - description: > - Identifier of this Alarm information element. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - managedObjectId: - description: > - Identifier of the affected VNF instance. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - rootCauseFaultyResource: - description: > - The virtualised resources that are causing the VNF fault. - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceInfo" - alarmRaisedTime: - description: > - Time stamp indicating when the alarm is raised by the managed - object. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - alarmChangedTime: - description: > - Time stamp indicating when the alarm was last changed. It shall be - present if the alarm has been updated. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - alarmClearedTime: - description: > - Time stamp indicating when the alarm was cleared. It shall be - present if the alarm has been cleared. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - ackState: - description: > - Acknowledgement state of the alarm. - Permitted values: - * UNACKNOWLEDGED - * ACKNOWLEDGED. - type: string - enum: - - UNACKNOWLEDGED - - ACKNOWLEDGED - perceivedSeverity: - description: > - Perceived severity of the managed object failure. - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType" - eventTime: - description: > - Time stamp indicating when the fault was observed. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - eventType: - description: > - Type of event. - $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType" - faultType: - description: > - Additional information to clarify the type of the fault. - type: string - probableCause: - description: > - Information about the probable cause of the fault. - type: string - isRootCause: - description: > - Attribute indicating if this fault is the root for other correlated - alarms. If true, then the alarms listed in the attribute - CorrelatedAlarmId are caused by this fault. - type: boolean - correlatedAlarmIds: - description: > - List of identifiers of other alarms correlated to this fault. - type: array - items: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - faultDetails: - description: > - Provides additional information about the fault. - type: array - items: - type: string - _links: - description: > - Links for this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - objectInstance: - description: > - Link to the resource representing the VNF instance to which the - notified alarm is correlated. Shall be present if the VNF - instance information is accessible as a resource. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - - AlarmNotification: - description: > - This type represents an alarm notification about VNF faults. - This notification shall be triggered by the VNFM when: - * An alarm has been created. - * An alarm has been updated, e.g. if the severity of the alarm has - changed. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - alarm - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "AlarmNotification" for this notification type. - type: string - enum: - - AlarmNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - alarm: - description: > - Information about an alarm including AlarmId, affected VNF - identifier, and FaultDetails. - $ref: "#/definitions/Alarm" - _links: - description: > - Links to resources related to this notification. - type: object - required: - - subscription - properties: - subscription: - description: > - Link to the related subscription. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" - - VnfInfoModificationRequest: - description: > - This type represents attribute modifications for an - "Individual VNF instance" resource, i.e. modifications to a resource - representation based on the "VnfInstance" data type. - type: object - properties: - vnfInstanceName: - description: > - New value of the "vnfInstanceName" attribute in "VnfInstance", or - "null" to remove the attribute. - type: string - vnfInstanceDescription: - description: > - New value of the "vnfInstanceDescription" attribute in - "VnfInstance", or "null" to remove the attribute. - type: string - vnfPkgId: - description: > - New value of the "vnfPkgId" attribute in "VnfInstance". - The value "null" is not permitted. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Modifications of the "vnfConfigurableProperties" attribute in - "VnfInstance". If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - Modifications of the "metadata" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - Modifications of the "extensions" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - New content of certain entries in the "vimConnectionInfo" attribute - array in "VnfInstance", as defined below this table. - type: array - items: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - vimConnectionInfoDeleteIds: - description: > - List of identifiers entries to be deleted from the "vimConnectionInfo" - attribute array in "VnfInstance", to be used as "deleteIdList" as defined - below this table. - type: array - items: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml index cbb324543d201d8f34569b7a839c7ccbfbc686cf..7702495b0822760916506c668e467aaaeb3e6678 100644 --- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml @@ -23,10 +23,9 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. + 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: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" FmSubscription: @@ -41,7 +40,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource. + Identifier of this "Individual subscription" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index fc9615ef63ebb9c57add822326c6d0b86af70cff..e1328e0d4ac1406e1fe0c11f4402c2af49cb0698 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -30,7 +30,7 @@ definitions: type: object vnfInstanceId: description: > - Identifier of the VNF instance which provides the indicator value. + Identifier of the "Individual VNF instance" which provides the indicator value. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" _links: description: > @@ -46,7 +46,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" vnfInstance: description: > - Link to the related VNF instance resource. + Link to the related "Individual VNF instance" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Link" VnfIndicatorNotificationsFilter: @@ -83,7 +83,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource. + Identifier of this "Individual subscription" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" filter: description: > @@ -127,11 +127,12 @@ definitions: callbackUri: description: > The URI of the endpoint to send the notification to. - $ref: "SOL002SOl003_def.yaml#/definitions/Uri" + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - Authentication parameters to configure the use of Authorization - when sending notifications corresponding to this subscription. + 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: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" @@ -202,7 +203,7 @@ definitions: properties: vnfInstance: description: > - Link to the related VNF instance resource. Shall be present + Link to the related "Individual VNF instance" resource. Shall be present if the VNF instance information is accessible as a resource. $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" subscription: diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 51f267681175cab1e18f0cb212b4541d9d7846cb..68547f2f88f9086f3ebb6069af75be07c9cac042 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -2,44 +2,227 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - InstantiateVnfRequest: + CreateVnfRequest: + type: object + required: + - vnfdId + properties: + vnfdId: + description: > + Identifier that identifies the VNFD which defines the VNF instance to + be created. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + 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 + metadata: + description: > + If present, this attribute provides values for the "metadata" attribute in "VnfInstance", + as defined in clause 5.5.2.2. + If a “metadata” entry in this CreateVnfRequest data structure has a corresponding default + value declared in the VNFD, the value in the “metadata” entry in the CreateVnfRequest + structure takes precedence. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ScaleVnfRequest: type: object required: - - flavourId + - type + - aspectId properties: - flavourId: + type: + description: > + Indicates the type of the scale operation requested. + Permitted values: + * SCALE_OUT: adding additional VNFC instances to the VNF to increase + capacity + * SCALE_IN: removing VNFC instances from the VNF in order to release + unused capacity. + type: string + enum: + - SCALE_OUT + - SCALE_IN + aspectId: description: > - Identifier of the VNF deployment flavour to be instantiated. + Identifier of the scaling aspect. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + numberOfSteps: + description: > + Number of scaling steps to be executed as part of this Scale VNF + operation. It shall be a positive number and the default value + shall be 1. + type: integer + default: 1 + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the scaling + process, specific to the VNF being scaled, as declared in the VNFD + as part of "ScaleVnfOpConfig". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ScaleVnfToLevelRequest: + description: > + This type represents request parameters for the "Scale VNF to Level" + operation. + type: object + properties: instantiationLevelId: description: > - Identifier of the instantiation level of the deployment flavour to be - instantiated. If not present, the default instantiation level as - declared in the VNFD is instantiated. + Identifier of the target instantiation level of the current + deployment flavour to which the VNF is requested to be scaled. + Either the instantiationLevelId attribute or the scaleInfo attribute + shall be included. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - extVirtualLinks: + scaleInfo: description: > - Information about external VLs to connect the VNF to. + For each scaling aspect of the current deployment flavour, indicates + the target scale level to which the VNF is to be scaled. + Either the instantiationLevelId attribute or the scaleInfo attribute + shall be included. + type: array + items: + $ref: "#/definitions/ScaleInfo" + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the scaling + process, specific to the VNF being scaled, as declared in the + VNFD as part of "ScaleVnfToLevelOpConfig". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfInfoModificationRequest: + description: > + This type represents attribute modifications for an "Individual VNF instance" resource, + i.e. modifications to a resource representation based on the "VnfInstance" data type. + The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 + are included in the "VnfInfoModificationRequest" data type. + The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. + type: object + properties: + vnfInstanceName: + description: > + New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. + type: string + vnfdId: + description: > + New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadattametadata" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". + If present, these modifications shall be applied according to the rules of + JSON Merge PATCH (see IETF RFC 7396 [15]). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfcInfoModifications: + description: > + Modifications of certain entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" - extManagedVirtualLinks: + $ref: "#/definitions/VnfcInfoModifications" + vnfcInfoModificationsDeleteIds: description: > - Information about external VLs to connect the VNF to. + List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array + to be used as "deleteIdList" as defined below this table. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" - localizationLanguage: + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + + VnfInfoModifications: + description: > + This type represents attribute modifications that were performed on an + "Individual VNF instance" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "VnfInfoModificationRequest" data structure, and additional attributes + of the "VnfInstance" data structure that were modified implicitly e.g. + when modifying the referenced VNF package. + type: object + properties: + vnfInstanceName: description: > - Localization language of the VNF to be instantiated. The value shall - comply with the format defined in IETF RFC 5646. + If present, this attribute signals modifications of the + "vnfInstanceName" attribute in "VnfInstance". type: string - additionalParams: + vnfInstanceDescription: + description: > + If present, this attribute signals modifications of the + "vnfInstanceDescription" attribute in "VnfInstance". + type: string + vnfConfigurableProperties: + description: > + If present, this attribute signals modifications of the + "vnfConfigurableProperties" attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + If present, this attribute signals modifications of the "metadata" + attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: description: > - Additional input parameters for the instantiation process, specific - to the VNF being instantiated, as declared in the VNFD as part of - "InstantiateVnfOpConfig". + If present, this attribute signals modifications of the "extensions" + attribute in "VnfInstance". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfdId: + description: > + If present, this attribute signals modifications of the "vnfdId" + attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals modifications of the + "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfProductName: + description: > + If present, this attribute signals modifications of the + "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfSoftwareVersion: + description: > + If present, this attribute signals modifications of the + "vnfSoftwareVersion" attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals modifications of the + "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfdId" attribute) was modified implicitly following a request to + modify the "vnfdId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfdId” attribute. + $ref: "SOL002SOL003_def.yaml#/definitions/Version" VnfLcmOpOcc: description: > @@ -65,7 +248,7 @@ definitions: $ref: "#/definitions/LcmOperationStateType" stateEnteredTime: description: > - Date-time when the current state was entered. + Date-time when the current state has been entered. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" startTime: description: > @@ -226,168 +409,107 @@ definitions: currently allowed. $ref: "SOL002SOL003_def.yaml#/definitions/Link" - CancelModeType: + CancelMode: description: > - Cancellation mode. - GRACEFUL: The VNFM shall not start any new resource management operation - and shall wait for the ongoing resource management operations in the - underlying system, typically the VIM, to finish execution or to time - out. After that, the VNFM shall put the operation occurrence into the - FAILED_TEMP state. - FORCEFUL: The VNFM shall not start any new resource management - operation, shall cancel the ongoing resource management operations - in the underlying system, typically the VIM, and shall wait for the - cancellation to finish or to time out. After that, the VNFM shall put - the operation occurrence into the FAILED_TEMP state. - type: string - enum: - - GRACEFUL - - FORCEFUL + This type represents a parameter to select the mode of cancelling an + ongoing VNF LCM operation occurrence. + type: object + required: + - cancelMode + properties: + cancelMode: + description: > + Cancellation mode to apply. + $ref: "#/definitions/CancelModeType" - AffectedVirtualLink: + LccnSubscriptionRequest: description: > - This type provides information about added, deleted, modified and - temporary VLs. + This type represents a subscription request related to notifications + about VNF lifecycle changes. + 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/LifecycleChangeNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_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: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" + + LccnSubscription: + description: > + This type represents a subscription related to notifications about VNF + lifecycle changes. type: object required: - id - - vnfVirtualLinkDescId - - changeType - - networkResource + - callbackUri + - _links properties: id: description: > - Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfVirtualLinkDescId: - description: > - Identifier of the related VLD in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - changeType: + Identifier of this subscription resource. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + filter: description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - * LINK_PORT_ADDED - * LINK_PORT_REMOVED - For a temporary resource, an AffectedVirtualLink structure exists as - long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - - LINK_PORT_ADDED - - LINK_PORT_REMOVED - networkResource: + 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/LifecycleChangeNotificationsFilter" + callbackUri: description: > - Reference to the VirtualNetwork resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - metadata: + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" + _links: description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VnfVirtualLinkResourceInfo structure. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/Link" - AffectedVirtualStorage: - description: > - This type provides information about added, deleted, modified and - temporary virtual storage resources. + ExtVirtualLinkInfo: type: object required: - id - - virtualStorageDescId - - changeType - - storageResource + - resourceHandle properties: id: description: > - Identifier of the storage instance, identifying the applicable - "virtualStorageResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - virtualStorageDescId: - description: > - Identifier of the related VirtualStorage descriptor in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - For a temporary resource, an AffectedVirtualStorage structure exists - as long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - storageResource: - description: > - Reference to the VirtualStorage resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - metadata: - description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VirtualStorageResourceInfo structure. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - CpProtocolInfo: - description: > - This type describes the protocol layer(s) that a CP uses together with - protocol-related information, like addresses. - required: - - layerProtocol - properties: - layerProtocol: - description: > - The identifier of layer(s) and protocol(s) associated to the network - address information. - Permitted values: IP_OVER_ETHERNET - This attribute allows to signal the addition of further types of - layer and protocol in future versions of the present document in a - backwards-compatible way. In the current version of the present - document, only IP over Ethernet is supported. - type: string - enum: - - IP_OVER_ETHERNET - ipOverEthernet: - description: > - IP addresses over Ethernet to assign to the extCP instance. Shall be - present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall - be absent otherwise. - $ref: "#/definitions/IpOverEthernetAddressInfo" - - CreateVnfRequest: - type: object - required: - - vnfdId - properties: - vnfdId: - description: > - Identifier that identifies the VNFD which defines the VNF instance to - be created. + Identifier of the external VL and the related external VL + information instance. + The identifier is assigned by the NFV-MANO entity that manages this + VL instance. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfInstanceName: + resourceHandle: description: > - Human-readable name of the VNF instance to be created. - type: string - vnfInstanceDescription: + Reference to the resource realizing this VL. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + extLinkPorts: description: > - Human-readable description of the VNF instance to be created. - type: string + Link ports of this VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortInfo" ExtManagedVirtualLinkInfo: type: object @@ -417,411 +539,384 @@ definitions: items: $ref: "#/definitions/VnfLinkPortInfo" - ExtLinkPortInfo: - description: > - This type represents information about a link port of an external VL, - i.e. a port providing connectivity for the VNF to an NS VL. - type: object + ScaleInfo: required: - - id - - resourceHandle + - aspectId + - scaleLevel + type: object properties: - id: - description: > - Identifier of this link port as provided by the entity that has - created the link port. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - resourceHandle: + aspectId: description: > - Reference to the virtualised resource realizing this link - port. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - cpInstanceId: + Identifier of the scaling aspect. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + scaleLevel: description: > - Identifier of the external CP of the VNF connected to this link - port. There shall be at most one link port associated with any - external connection point instance. The value refers to an - "extCpInfo" item in the VnfInstance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + Indicates the scale level. The minimum value shall be 0 and the + maximum value shall be <= maxScaleLevel as described in the VNFD. + type: integer - ExtVirtualLinkInfo: + VnfcResourceInfo: + description: > + This type represents the information on virtualised compute and storage + resources used by a VNFC in a VNF instance. type: object required: - id - - resourceHandle + - vduId + - computeResource properties: id: description: > - Identifier of the external VL and the related external VL - information instance. - The identifier is assigned by the NFV-MANO entity that manages this - VL instance. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - resourceHandle: + Identifier of this VnfcResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: description: > - Reference to the resource realizing this VL. + Reference to the applicable VDU in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + computeResource: + description: > + Reference to the VirtualCompute resource. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - extLinkPorts: + storageResourceIds: description: > - Link ports of this VL. + References to the VirtualStorage resources. The value refers to a + VirtualStorageResourceInfo item in the VnfInstance. type: array items: - $ref: "#/definitions/ExtLinkPortInfo" - - IpOverEthernetAddressInfo: - description: > - This type represents information about a network address that has been - assigned. - type: object - properties: - macAddress: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + reservationId: description: > - MAC address, if assigned. - At least one of "macAddress" or "ipAddresses" shall be present. - $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress" - ipAddresses: + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfcCpInfo: description: > - Addresses assigned to the CP instance. Each entry represents IP - addresses assigned by fixed or dynamic IP address assignment per - subnet. + CPs of the VNFC instance. + Shall be present when that particular CP of the VNFC instance is + associated to an external CP of the VNF instance. + May be present otherwise. type: array items: type: object required: - - type + - id + - cpdId properties: - type: + id: description: > - The type of the IP addresses. - Permitted values: IPV4, IPV6. - type: string - enum: - - IPV4 - - IPV6 - addresses: + Identifier of this VNFC CP instance and the associated array + entry. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: description: > - Fixed addresses assigned (from the subnet defined by - "subnetId" if provided). - Exactly one of "addresses" or "addressRange" shall be present. + Identifier of the VDU CPD, cpdId, in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfExtCpId: + description: > + When the VNFC CP is exposed as external CP of the VNF, the + identifier of this external VNF CP. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + Network protocol information for this CP. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - isDynamic: + $ref: "#/definitions/CpProtocolInfo" + vnfLinkPortId: description: > - Indicates whether this set of addresses was assigned - dynamically (true) or based on address information provided as - input from the API consumer (false). Shall be present if - "addresses" is present and shall be absent otherwise. - type: boolean - addressRange: - description: > - An IP address range used, e.g., in case of egress connections. - Exactly one of "addresses" or "addressRange" shall be present. - type: object - required: - - minAddress - - maxAddress - properties: - minAddress: - description: > - Lowest IP address belonging to the range. - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - subnetId: + Identifier of the "vnfLinkPorts" structure in the + "VnfVirtualLinkResourceInfo" structure. Shall be present if + the CP is associated to a link port. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + metadata: description: > - Subnet defined by the identifier of the subnet resource in - the VIM. - In case this attribute is present, IP addresses are bound - to that subnet. - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + Metadata about this CP. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - LccnLinks: + VnfVirtualLinkResourceInfo: description: > - This type represents the links to resources that a notification can - contain. + This type represents the information that allows addressing a virtualised + resource that is used by an internal VL instance in a VNF instance. type: object required: - - vnfInstance - - subscription + - id + - vnfVirtualLinkDescId + - networkResource properties: - vnfInstance: + id: description: > - Link to the resource representing the VNF instance to which the - notified change applies. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" - subscription: + Identifier of this VnfVirtualLinkResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: description: > - Link to the related subscription. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" - vnfLcmOpOcc: + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + networkResource: description: > - Link to the VNF lifecycle management operation occurrence that this - notification is related to. Shall be present if there is a related - lifecycle operation occurrence. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" + Reference to the VirtualNetwork resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLinkPorts: + description: > + Links ports of this VL. + Shall be present when the linkPort is used for external connectivity + by the VNF (refer to VnfLinkPortInfo). + May be present otherwise. + type: array + items: + $ref: "#/definitions/VnfLinkPortInfo" + metadata: + description: > + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - LccnSubscription: + VirtualStorageResourceInfo: description: > - This type represents a subscription related to notifications about VNF - lifecycle changes. + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. type: object required: - id - - callbackUri - - _links + - virtualStorageDescId + - storageResource properties: id: description: > - Identifier of this subscription resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - filter: + Identifier of this VirtualStorageResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: 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/LifecycleChangeNotificationsFilter" - callbackUri: + Identifier of the VirtualStorageDesc in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + storageResource: description: > - The URI of the endpoint to send the notification to. - $ref: "SOL002SOL003_def.yaml#/definitions/Uri" - _links: + Reference to the VirtualStorage resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + reservationId: description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + metadata: + description: > + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfLcmOperationOccurrenceNotification: - description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification shall be triggered by the VNFM when there is a change - in the VNF lifecycle caused by a VNF LCM operation occurrence, - including: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external connectivity of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource. - If this is the initial notification about the start of a VNF LCM - operation occurrence, it is assumed that the notification is sent by the - VNFM before any action (including sending the grant request) is taken as - part of the LCM operation. Due to possible race conditions, the "start" - notification, the grant request and the LCM operation acknowledgment can - arrive in any order at the NFVO, and the NFVO shall be able to handle - such a situation. - If this is a notification about a final or intermediate result state of - a VNF LCM operation occurrence, the notification shall be sent after - all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. + VnfLinkPortInfo: type: object required: - id - - notificationType - - subscriptionId - - timeStamp - - notificationStatus - - operationState - - vnfInstanceId - - operation - - isAutomaticInvocation - - vnfLcmOpOccId - - _links + - resourceHandle properties: id: description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfLcmOperationOccurrenceNotification" for this notification type. - type: string - enum: - - VnfLcmOperationOccurrenceNotification - subscriptionId: + Identifier of this link port as provided by the entity that has created the link port. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: description: > - Identifier of the subscription that this notification relates to. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: + Reference to the virtualised network resource realizing this link + port. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + cpInstanceId: description: > - Date-time of the generation of the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" - notificationStatus: + When the link port is used for external connectivity by the VNF, + this attribute represents the identifier of the external CP of the + VNF to be connected to this link port. + When the link port is used for internal connectivity in the VNF, + this attribute represents the VNFC CP to be connected to this link + port. + Shall be present when the link port is used for external + connectivity by the VNF. + May be present if used to reference a VNFC CP instance. + There shall be at most one link port associated with any external + connection point instance or internal connection point + (i.e. VNFC CP) instance. + The value refers to an "extCpInfo" item in the VnfInstance or a + "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpInstanceType: description: > - Indicates whether this notification reports about the start of a - lifecycle operation or the result of a lifecycle operation. + Type of the CP instance that is identified by cpInstanceId. + Shall be present if "cpInstanceId" is present, and shall be absent otherwise. Permitted values: - * START: Informs about the start of the VNF LCM operation - occurrence. - * RESULT: Informs about the final or intermediate result of the VNF - LCM operation occurrence. + VNFC_CP: The link port is connected to a VNFC CP + EXT_CP: The link port is associated to an external CP. type: string enum: - - START - - RESULT - operationState: - description: > - The state of the VNF LCM operation occurrence. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" - vnfInstanceId: + - VNFC_CP + - EXT_CP + + ExtLinkPortInfo: + description: > + This type represents information about a link port of an external VL, + i.e. a port providing connectivity for the VNF to an NS VL. + type: object + required: + - id + - resourceHandle + properties: + id: description: > - The identifier of the VNF instance affected. + Identifier of this link port as provided by the entity that has + created the link port. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - operation: + resourceHandle: description: > - The lifecycle management operation. - $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: + Reference to the virtualised resource realizing this link + port. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + cpInstanceId: description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM - (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). - Set to false otherwise. - type: boolean - vnfLcmOpOccId: + Identifier of the external CP of the VNF connected to this link + port. There shall be at most one link port associated with any + external connection point instance. The value refers to an + "extCpInfo" item in the VnfInstance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + ExtLinkPortData: + description: > + This type represents an externally provided link port to be used to connect + an external connection point to an external VL. + type: object + required: + - id + - resourceHandle + properties: + id: description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - affectedVnfcs: + Identifier of this link port as provided by the entity that + has created the link port. + $ref: 'SOL002SOL003_def.yaml#/definitions/Identifier' + resourceHandle: description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc" - affectedVirtualLinks: + Reference to the virtualised resource realizing this link + port. + $ref: 'SOL002SOL003_def.yaml#/definitions/ResourceHandle' + + CpProtocolInfo: + description: > + This type describes the protocol layer(s) that a CP uses together with + protocol-related information, like addresses. + required: + - layerProtocol + properties: + layerProtocol: description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualLink" - affectedVirtualStorages: + The identifier of layer(s) and protocol(s) associated to the network + address information. + Permitted values: IP_OVER_ETHERNET + This attribute allows to signal the addition of further types of + layer and protocol in future versions of the present document in a + backwards-compatible way. In the current version of the present + document, only IP over Ethernet is supported. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualStorage" - changedInfo: + IP addresses over Ethernet to assign to the extCP instance. Shall be + present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall + be absent otherwise. + $ref: "#/definitions/IpOverEthernetAddressInfo" + + IpOverEthernetAddressInfo: + description: > + This type represents information about a network address that has been + assigned. + type: object + properties: + macAddress: description: > - Information about the changed VNF instance information, including - changed VNF configurable properties. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any changes to VNF instance information, - including VNF configurable properties. - Shall be absent otherwise. - $ref: "#/definitions/VnfInfoModifications" - changedExtConnectivity: + MAC address, if assigned. + At least one of "macAddress" or "ipAddresses" shall be present. + $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress" + ipAddresses: description: > - Information about changed external connectivity, if this - notification represents the result of a lifecycle operation - occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". - Shall be absent otherwise. + Addresses assigned to the CP instance. Each entry represents IP + addresses assigned by fixed or dynamic IP address assignment per + subnet. type: array items: - $ref: "#/definitions/ExtVirtualLinkInfo" - error: - description: > - Details of the latest error, if one has occurred during executing - the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent - otherwise. - $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + addresses: + description: > + Fixed addresses assigned (from the subnet defined by + "subnetId" if provided). + Exactly one of "addresses" or "addressRange" shall be present. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + isDynamic: + description: > + Indicates whether this set of addresses was assigned + dynamically (true) or based on address information provided as + input from the API consumer (false). Shall be present if + "addresses" is present and shall be absent otherwise. + type: boolean + addressRange: + description: > + An IP address range used, e.g., in case of egress connections. + Exactly one of "addresses" or "addressRange" shall be present. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in + the VIM. + In case this attribute is present, IP addresses are bound + to that subnet. + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" - LccnSubscriptionRequest: - description: > - This type represents a subscription request related to notifications - about VNF lifecycle changes. + MonitoringParameter: type: object required: - - callbackUri + - id + - performanceMetric properties: - filter: + id: 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/LifecycleChangeNotificationsFilter" - callbackUri: + Identifier of the monitoring parameter defined in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + name: description: > - The URI of the endpoint to send the notification to. - $ref: "SOL002SOL003_def.yaml#/definitions/Uri" - authentication: + Human readable name of the monitoring parameter, as defined in the + VNFD. + type: string + performanceMetric: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription, as defined - in clause 4.5.3.4. - This attribute shall only be present if the subscriber requires - authorization of notifications. - $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" - - LcmOperationStateType: - description: > - Value | Description - ------|------------ - STARTING | The LCM operation is starting. - PROCESSING | The LCM operation is currently in execution. - COMPLETED | he LCM operation has been completed successfully. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. - ROLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - STARTING - - PROCESSING - - COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK + Performance metric that is monitored. This attribute shall contain the + related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string LifecycleChangeNotificationsFilter: description: > @@ -864,375 +959,294 @@ definitions: value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise. type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" - operationStates: - description: > - Match particular LCM operation state values as reported in - notifications of type VnfLcmOperationOccurrenceNotification. - May be present if the "notificationTypes" attribute contains the - value "VnfLcmOperationOccurrenceNotification", and shall be absent - otherwise. - type: array - items: - $ref: "#/definitions/LcmOperationStateType" - - MonitoringParameter: - type: object - required: - - id - - performanceMetric - properties: - id: - description: > - Identifier of the monitoring parameter defined in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - name: - description: > - Human readable name of the monitoring parameter, as defined in the - VNFD. - type: string - performanceMetric: - description: > - Performance metric that is monitored. This attribute shall contain the - related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027. - type: string - - ScaleInfo: - required: - - aspectId - - scaleLevel - type: object - properties: - aspectId: - description: > - Identifier of the scaling aspect. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - scaleLevel: - description: > - Indicates the scale level. The minimum value shall be 0 and the - maximum value shall be <= maxScaleLevel as described in the VNFD. - type: integer - - ScaleVnfRequest: - type: object - required: - - type - - aspectId - properties: - type: - description: > - Indicates the type of the scale operation requested. - Permitted values: - * SCALE_OUT: adding additional VNFC instances to the VNF to increase - capacity - * SCALE_IN: removing VNFC instances from the VNF in order to release - unused capacity. - type: string - enum: - - SCALE_OUT - - SCALE_IN - aspectId: - description: > - Identifier of the scaling aspect. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - numberOfSteps: - description: > - Number of scaling steps to be executed as part of this Scale VNF - operation. It shall be a positive number and the default value - shall be 1. - type: integer - default: 1 - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the scaling - process, specific to the VNF being scaled, as declared in the VNFD - as part of "ScaleVnfOpConfig". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - ScaleVnfToLevelRequest: - description: > - This type represents request parameters for the "Scale VNF to Level" - operation. - type: object - properties: - instantiationLevelId: - description: > - Identifier of the target instantiation level of the current - deployment flavour to which the VNF is requested to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - scaleInfo: - description: > - For each scaling aspect of the current deployment flavour, indicates - the target scale level to which the VNF is to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. - type: array - items: - $ref: "#/definitions/ScaleInfo" - additionalParams: - description: > - Additional parameters passed by the NFVO as input to the scaling - process, specific to the VNF being scaled, as declared in the - VNFD as part of "ScaleVnfToLevelOpConfig". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - StopType: - description: > - * FORCEFUL: The VNFM will stop the VNF immediately after accepting the - request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of service - after accepting the request. Once that operation is successful or once - the timer value specified in the "gracefulStopTimeout" attribute - expires, the VNFM will stop the VNF. - type: string - enum: - - FORCEFUL - - GRACEFUL - - Version: - description: > - A Version. - type: string + items: + $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" + operationStates: + description: > + Match particular LCM operation state values as reported in + notifications of type VnfLcmOperationOccurrenceNotification. + May be present if the "notificationTypes" attribute contains the + value "VnfLcmOperationOccurrenceNotification", and shall be absent + otherwise. + type: array + items: + $ref: "#/definitions/LcmOperationStateType" - VirtualStorageResourceInfo: + AffectedVirtualLink: description: > - This type represents the information that allows addressing a virtualised - resource that is used by a VNF instance. + This type provides information about added, deleted, modified and + temporary VLs. type: object required: - id - - virtualStorageDescId - - storageResource + - vnfVirtualLinkDescId + - changeType + - networkResource properties: id: description: > - Identifier of this VirtualStorageResourceInfo instance. + Identifier of the virtual link instance, identifying the applicable + "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - virtualStorageDescId: + vnfVirtualLinkDescId: description: > - Identifier of the VirtualStorageDesc in the VNFD. + Identifier of the related VLD in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - storageResource: + changeType: description: > - Reference to the VirtualStorage resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - reservationId: + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + * LINK_PORT_ADDED + * LINK_PORT_REMOVED + For a temporary resource, an AffectedVirtualLink structure exists as + long as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + - LINK_PORT_ADDED + - LINK_PORT_REMOVED + networkResource: description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + Reference to the VirtualNetwork resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" metadata: description: > Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VnfVirtualLinkResourceInfo structure. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfExtCpInfo: + AffectedVirtualStorage: description: > - This type represents information about an external CP of a VNF. - It shall comply with the provisions defined in table 5.5.3.25 1. + This type provides information about added, deleted, modified and + temporary virtual storage resources. type: object required: - id - - cpdId - - cpProtocolInfo + - virtualStorageDescId + - changeType + - storageResource properties: id: description: > - Identifier of the external CP instance and the related information instance. + Identifier of the storage instance, identifying the applicable + "virtualStorageResourceInfo" entry in the "VnfInstance" data type. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: + virtualStorageDescId: description: > - Identifier of the external CPD, VnfExtCpd, in the VNFD. + Identifier of the related VirtualStorage descriptor in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - cpProtocolInfo: + changeType: description: > - Network protocol information for this CP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - extLinkPortId: + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + For a temporary resource, an AffectedVirtualStorage structure exists + as long as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + storageResource: description: > - Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" structure. - Shall be present if the CP is associated to a link port. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + Reference to the VirtualStorage resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" metadata: description: > - Metadata about this external CP. + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VirtualStorageResourceInfo structure. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - associatedVnfcCpId: - description: > - Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents - the VNFC CP which is exposed by this external CP instance. - Shall be present in case this CP instance maps to a VNFC CP. See note. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - associatedVnfVirtualLinkId: - description: > - Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL - which is exposed by this external CP instance. - Shall be present in case this CP instance maps to an internal VL. See note. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - VnfcInfoModifications: + LccnLinks: description: > - This type represents modifications of an entry in an array of "VnfcInfo" objects. - It shall comply with the provisions defined in table 5.5.3.24-1. + This type represents the links to resources that a notification can + contain. type: object required: - - id - - vnfcConfigurableProperties + - vnfInstance + - subscription properties: - id: + vnfInstance: description: > - Identifier of the VNFC instance of which the information is to be modified. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfcConfigurableProperties: + Link to the resource representing the VNF instance to which the + notified change applies. + $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" + subscription: description: > - Changes of the configurable properties of the VNFC instance. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + Link to the related subscription. + $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" + vnfLcmOpOcc: + description: > + Link to the VNF lifecycle management operation occurrence that this + notification is related to. Shall be present if there is a related + lifecycle operation occurrence. + $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" - VnfcResourceInfo: + VnfExtCpInfo: description: > - This type represents the information on virtualised compute and storage - resources used by a VNFC in a VNF instance. + This type represents information about an external CP of a VNF. + It shall comply with the provisions defined in table 5.5.3.25 1. type: object required: - id - - vduId - - computeResource + - cpdId + - cpProtocolInfo properties: id: description: > - Identifier of this VnfcResourceInfo instance. + Identifier of the external CP instance and the related information instance. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vduId: + cpdId: description: > - Reference to the applicable VDU in the VNFD. + Identifier of the external CPD, VnfExtCpd, in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - computeResource: - description: > - Reference to the VirtualCompute resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - storageResourceIds: - description: > - References to the VirtualStorage resources. The value refers to a - VirtualStorageResourceInfo item in the VnfInstance. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfcCpInfo: + cpProtocolInfo: description: > - CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is - associated to an external CP of the VNF instance. - May be present otherwise. + Network protocol information for this CP. type: array items: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of this VNFC CP instance and the associated array - entry. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the VDU CPD, cpdId, in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfExtCpId: - description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpProtocolInfo: - description: > - Network protocol information for this CP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - vnfLinkPortId: - description: > - Identifier of the "vnfLinkPorts" structure in the - "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - metadata: - description: > - Metadata about this CP. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - Metadata about this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - VnfIdentifierCreationNotification: - description: > - This type represents a VNF identifier creation notification, which - informs the receiver of the creation of a new VNF instance resource and - the associated VNF instance identifier. - This notification shall be triggered by the VNFM when it has created a - VNF instance resource and the associated VNF instance identifier. - type: object - required: - - id - - notificationType - - subscriptionId - - timeStamp - - vnfInstanceId - - _links - properties: - id: - description: > - Identifier of the VNF instance. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfIdentifierCreationNotification" for this notification type. - type: string - enum: - - VnfIdentifierCreationNotification - subscriptionId: + $ref: "#/definitions/CpProtocolInfo" + extLinkPortId: description: > - Identifier of the subscription that this notification relates to. + Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" structure. + Shall be present if the CP is associated to a link port. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: + metadata: description: > - Date-time of the generation of the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" - vnfInstanceId: + Metadata about this external CP. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + associatedVnfcCpId: description: > - The created VNF instance identifier. + Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents + the VNFC CP which is exposed by this external CP instance. + Shall be present in case this CP instance maps to a VNFC CP. See note. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - _links: + associatedVnfVirtualLinkId: description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" + Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL + which is exposed by this external CP instance. + Shall be present in case this CP instance maps to an internal VL. See note. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - VnfIdentifierDeletionNotification: + VnfOperationalStateType: description: > - This type represents a VNF identifier deletion notification, which - informs the receiver of the deletion of a new VNF instance resource and - the associated VNF instance identifier. - This notification shall be triggered by the VNFM when it has deleted a - VNF instance resource and the associated VNF instance identifier. + STARTED: The VNF instance is up and running. + STOPPED: The VNF instance has been shut down. + type: string + enum: + - STARTED + - STOPPED + + LcmOperationStateType: + description: > + STARTING: The LCM operation is starting. + PROCESSING: The LCM operation is currently in execution. + COMPLETED: The LCM operation has been completed successfully. + FAILED_TEMP: The LCM operation has failed and execution has stopped, + but the execution of the operation is not considered to be closed. + FAILED: The LCM operation has failed and it cannot be retried or rolled back, + as it is determined that such action won't succeed. + ROLLING_BACK: The LCM operation is currently being rolled back. + ROLLED_BACK: The LCM operation has been successfully rolled back, + i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. + type: string + enum: + - STARTING + - PROCESSING + - COMPLETED + - FAILED_TEMP + - FAILED + - ROLLING_BACK + - ROLLED_BACK + + CancelModeType: + description: > + Cancellation mode. + GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation and shall wait for the ongoing resource management + operations in the underlying system, typically the VIM, to finish + execution or to time out. After that, the VNFM shall put the operation + occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and shall wait for + the granting request to finish execution or time out. After that, the + VNFM shall put the operation occurrence into the ROLLED_BACK state. + FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation, shall cancel the ongoing resource management + operations in the underlying system, typically the VIM, and shall wait + for the cancellation to finish or to time out. After that, the VNFM + shall put the operation occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and put the operation + occurrence into the ROLLED_BACK state. + type: string + enum: + - GRACEFUL + - FORCEFUL + +######################################################################################################################## + VnfLcmOperationOccurrenceNotification: + description: > + This type represents a VNF lifecycle management operation occurrence + notification, which informs the receiver of changes in the VNF + lifecycle caused by a VNF LCM operation occurrence. The support of the + notification is mandatory. + This notification shall be triggered by the VNFM when there is a change + in the state of a VNF LCM operation occurrence that changes the VNF lifecycle, + including: + * Instantiation of the VNF + * Scaling of the VNF instance (including auto-scaling) + * Healing of the VNF instance (including auto-healing) + * Change of the state of the VNF instance (i.e. Operate VNF) + * Change of the deployment flavour of the VNF instance + * Change of the external connectivity of the VNF instance + * Termination of the VNF instance + * Modification of VNF instance information and/or VNF configurable + properties through the "PATCH" method on the "Individual VNF instance" + resource. + Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, + and also specifies details of the notifications to be emitted at each state transition. + If this is the initial notification about the start of a VNF LCM operation occurrence, + it is assumed that the notification is sent by the VNFM before any action (including sending the grant request) + is taken as part of the LCM operation. Due to possible race conditions, the "start" notification, + the grant request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) + can arrive in any order at the NFVO, and the NFVO shall be able to handle such a situation. + If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, + the notification shall be sent after all related actions of the LCM operation that led + to this state have been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" resource before + the notification about the state change is sent. + See clause 5.6.2.2 for further provisions regarding sending this notification, including + in cases of handling LCM operation errors. type: object required: - id - notificationType - subscriptionId - timeStamp + - notificationStatus + - operationState - vnfInstanceId + - operation + - isAutomaticInvocation + - vnfLcmOpOccId - _links properties: id: @@ -1244,10 +1258,10 @@ definitions: notificationType: description: > Discriminator for the different notification types. Shall be set to - "VnfIdentifierDeletionNotification" for this notification type. + "VnfLcmOperationOccurrenceNotification" for this notification type. type: string enum: - - VnfIdentifierDeletionNotification + - VnfLcmOperationOccurrenceNotification subscriptionId: description: > Identifier of the subscription that this notification relates to. @@ -1256,520 +1270,218 @@ definitions: description: > Date-time of the generation of the notification. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" - vnfInstanceId: - description: > - The deleted VNF instance identifier. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - - VnfInfoModifications: - description: > - This type represents attribute modifications that were performed on an - "Individual VNF instance" resource. The attributes that can be included - consist of those requested to be modified explicitly in the - "VnfInfoModificationRequest" data structure, and additional attributes - of the "VnfInstance" data structure that were modified implicitly e.g. - when modifying the referenced VNF package. - type: object - properties: - vnfInstanceName: + notificationStatus: description: > - If present, this attribute signals modifications of the - "vnfInstanceName" attribute in "VnfInstance". + Indicates whether this notification reports about the start of a + lifecycle operation or the result of a lifecycle operation. + Permitted values: + * START: Informs about the start of the VNF LCM operation + occurrence. + * RESULT: Informs about the final or intermediate result of the VNF + LCM operation occurrence. type: string - vnfInstanceDescription: + enum: + - START + - RESULT + operationState: description: > - If present, this attribute signals modifications of the - "vnfInstanceDescription" attribute in "VnfInstance". - type: string - vnfConfigurableProperties: + The state of the VNF LCM operation occurrence. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + vnfInstanceId: description: > - If present, this attribute signals modifications of the - "vnfConfigurableProperties" attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: + The identifier of the VNF instance affected. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + operation: description: > - If present, this attribute signals modifications of the "metadata" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: + The lifecycle management operation. + $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: description: > - If present, this attribute signals modifications of the "extensions" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM + (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). + Set to false otherwise. + type: boolean + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence + associated to the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + affectedVnfcs: description: > - If present, this attribute signals modifications of certain entries - in the "vimConnectionInfo" attribute array in "VnfInstance". + Information about VNFC instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - vimConnectionInfoDeleteIds: + $ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: description: > - If present, this attribute signals the deletion of certain entries - in the "vimConnectionInfo" attribute array in "VnfInstance". + Information about VL instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfPkgId: - description: > - If present, this attribute signals modifications of the "vnfPkgId" - attribute in "VnfInstance". - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfdId: - description: > - If present, this attribute signals modifications of the "vnfdId" - attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfProvider: - description: > - If present, this attribute signals modifications of the - "vnfProvider" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - type: string - vnfProductName: - description: > - If present, this attribute signals modifications of the - "vnfProductName" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - type: string - vnfSoftwareVersion: - description: > - If present, this attribute signals modifications of the - "vnfSoftwareVersion" attribute in "VnfInstance". - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersion: - description: > - If present, this attribute signals modifications of the - "vnfdVersion" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - - VnfInfoModificationRequest: - description: > - This type represents attribute modifications for an "Individual VNF instance" resource, - i.e. modifications to a resource representation based on the "VnfInstance" data type. - The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 - are included in the "VnfInfoModificationRequest" data type. - The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. - type: object - properties: - vnfInstanceName: - description: > - New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. - type: string - vnfInstanceDescription: - description: > - New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. - type: string - vnfPkgId: - description: > - New value of the "vnfPkgId" attribute in "VnfInstance". The value "null" is not permitted. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - Modifications of the "metadattametadata" attribute in "VnfInstance". - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - Modifications of the "extensions" attribute in "VnfInstance". - If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vnfcInfoModifications: + $ref: "#/definitions/AffectedVirtualLink" + affectedVirtualStorages: description: > - Modifications of certain entries in the "vnfcInfo" attribute array in the - "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. + Information about virtualised storage instances that were affected + during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. type: array items: - $ref: "#/definitions/VnfcInfoModifications" - vnfcInfoModificationsDeleteIds: + $ref: "#/definitions/AffectedVirtualStorage" + changedInfo: description: > - List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array - to be used as "deleteIdList" as defined below this table. + Information about the changed VNF instance information, including + changed VNF configurable properties. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any changes to VNF instance information, + including VNF configurable properties. + Shall be absent otherwise. + $ref: "#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if this notification + represents the result of a lifecycle operation occurrence. + Shall be present if the "notificationStatus" is set to "RESULT" and + the "operation" has made any changes to the external connectivity of + the VNF instance. Shall be absent otherwise. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + $ref: "#/definitions/ExtVirtualLinkInfo" + 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). + Shall be present if the "operationState" attribute is "FAILED_TEMP" or "FAILED", + and shall be absent otherwise. + $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" - VnfInstance: + VnfIdentifierCreationNotification: description: > - This type represents a VNF instance. + This type represents a VNF identifier creation notification, which + informs the receiver of the creation of a new "Individual VNF instance" resource and + the associated VNF instance identifier. + This notification shall be triggered by the VNFM when it has created an + "Individual VNF instance" resource and the associated VNF instance identifier. type: object required: - id - - vnfdId - - vnfProvider - - vnfProductName - - vnfSoftwareVersion - - vnfdVersion - - vnfPkgId - - instantiationState + - notificationType + - subscriptionId + - timeStamp + - vnfInstanceId + - _links properties: id: description: > Identifier of the VNF instance. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfInstanceName: - description: > - Name of the VNF instance. - This attribute can be modified with the PATCH method. - type: string - vnfInstanceDescription: + notificationType: description: > - Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. + Discriminator for the different notification types. Shall be set to + "VnfIdentifierCreationNotification" for this notification type. type: string - vnfdId: + enum: + - VnfIdentifierCreationNotification + subscriptionId: description: > - Identifier of the VNFD on which the VNF instance is based. + Identifier of the subscription that this notification relates to. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfProvider: - description: > - Provider of the VNF and the VNFD. The value is copied from the VNFD. - type: string - vnfProductName: - description: > - Name to identify the VNF Product. The value is copied from the VNFD. - type: string - vnfSoftwareVersion: + timeStamp: description: > - Software version of the VNF. The value is copied from the VNFD. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersion: + Date-time of the generation of the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: description: > - Identifies the version of the VNFD. The value is copied from the VNFD. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfPkgId: - description: > - Identifier of information held by the NFVO about the specific VNF - package on which the VNF is based. This identifier was allocated by - the NFVO. This attribute can be modified with the PATCH method. - Modifying the value of this attribute shall not be performed when - conflicts exist between the previous and the newly referred VNF - package, i.e. when the new VNFD is not changed with respect to the - previous VNFD apart from referencing to other VNF software images. - In order to avoid misalignment of the VnfInstance with the current - VNF's on-boarded VNF Package, the values of attributes in the - VnfInstance that have corresponding attributes in the VNFD shall be - kept in sync with the values in the VNFD. + The created VNF instance identifier. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Current values of the configurable properties of the VNF instance. - Configurable properties referred in this attribute are declared in - the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD - based on TOSCA specifications. - VNF configurable properties are sometimes also referred to as - configuration parameters applicable to a VNF. Some of these are set - prior to instantiation and cannot be modified if the VNF is - instantiated, some are set prior to instantiation (are part of - initial configuration) and can be modified later, and others can be - set only after instantiation. The applicability of certain - configuration may depend on the VNF and the required operation of - the VNF at a certain point in time. - These configurable properties include the following standard - attributes, which are declared in the VNFD if auto-scaling and/or - auto-healing are supported by the VNF: - * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If - set to true, auto-scaling is currently enabled. If set to false, - auto-scaling is currently disabled. - * isAutohealEnabled: If present, the VNF supports auto-healing. If - set to true, auto-healing is currently enabled. If set to false, - auto-healing is currently disabled. - This attribute can be modified with the PATCH method. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the - resources for the VNF instance. This attribute shall only be - supported and present if VNF-related resource management in direct - mode is applicable. - This attribute can be modified with the PATCH method. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" - instantiationState: - description: > - The instantiation state of the VNF. - type: string - enum: - - NOT_INSTANTIATED - - INSTANTIATED - instantiatedVnfInfo: - description: > - Information specific to an instantiated VNF instance. This attribute - shall be present if the instantiateState attribute value is - INSTANTIATED. - type: object - required: - - flavourId - - vnfState - properties: - flavourId: - description: > - Identifier of the VNF deployment flavour applied to this VNF instance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfState: - description: > - The state of the VNF instance. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" - scaleStatus: - description: > - Scale status of the VNF, one entry per aspect. Represents for every - scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. - type: array - items: - $ref: "#/definitions/ScaleInfo" - extCpInfo: - description: > - Information about the external CPs exposed by the VNF instance. - type: array - minItems: 1 - items: - $ref: "#/definitions/VnfExtCpInfo" - extVirtualLinkInfo: - description: > - Information about the external VLs the VNF instance is connected to. - type: array - items: - $ref: "#/definitions/ExtVirtualLinkInfo" - extManagedVirtualLinkInfo: - description: > - External virtual links the VNF instance is connected to. - type: array - items: - $ref: "#/definitions/ExtManagedVirtualLinkInfo" - monitoringParameters: - description: > - Active monitoring parameters. - type: array - items: - $ref: "#/definitions/MonitoringParameter" - localizationLanguage: - description: > - Information about localization language of the VNF (includes e.g. - strings in the VNFD). The localization languages supported by a VNF - can be declared in the VNFD, and localization language selection can - take place at instantiation time. - The value shall comply with the format defined in IETF RFC 5646. - type: string - vnfcResourceInfo: - description: > - Information about the virtualised compute and storage resources used - by the VNFCs of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfcResourceInfo" - virtualLinkResourceInfo: - description: > - Information about the virtualised network resources used by the VLs - of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfVirtualLinkResourceInfo" - virtualStorageResourceInfo: - description: > - Information on the virtualised storage resource(s) used as storage for the VNF instance. - type: array - items: - $ref: "#/definitions/VirtualStorageResourceInfo" - metadata: - description: > - Additional VNF-specific metadata describing the VNF instance. - Metadata that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - VNF-specific attributes that affect the lifecycle management of this - VNF instance by the VNFM, or the lifecycle management scripts. - Extensions that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: URI of this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - indicators: - description: Indicators related to this VNF instance, if applicable. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - instantiate: - description: > - Link to the "instantiate" task resource, if the related operation - is possible based on the current status of this VNF instance - resource (i.e. VNF instance in NOT_INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - terminate: - description: > - Link to the "terminate" task resource, if the related operation - is possible based on the current status of this VNF instance - resource (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - scale: - description: > - Link to the "scale" task resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource (i.e. VNF instance - is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - scaleToLevel: - description: > - Link to the "scale_to_level" task resource, if the related - operation is supported for this VNF instance, and is possible - based on the current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - changeFlavour: - description: > - Link to the "change_flavour" task resource, if the related - operation is supported for this VNF instance, and is possible - based on the current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - heal: - description: > - Link to the "heal" task resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - operate: - description: > - Link to the "operate" task resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - changeExtConn: - description: > - Link to the "change_ext_conn" task resource, if the related - operation is possible based on the current status of this VNF - instance resource (i.e. VNF instance is in INSTANTIATED state). - $ref: "SOL002SOL003_def.yaml#/definitions/Link" + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" - VnfLinkPortInfo: + VnfIdentifierDeletionNotification: + description: > + This type represents a VNF identifier deletion notification, which + informs the receiver of the deletion of a new "Individual VNF instance" resource and + the associated VNF instance identifier. + This notification shall be triggered by the VNFM when it has deleted an + "Individual VNF instance" resource and the associated VNF instance identifier. type: object required: - id - - resourceHandle + - notificationType + - subscriptionId + - timeStamp + - vnfInstanceId + - _links properties: id: description: > - Identifier of this link port as provided by the entity that has created the link port. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - resourceHandle: - description: > - Reference to the virtualised network resource realizing this link - port. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - cpInstanceId: - description: > - When the link port is used for external connectivity by the VNF, - this attribute represents the identifier of the external CP of the - VNF to be connected to this link port. - When the link port is used for internal connectivity in the VNF, - this attribute represents the VNFC CP to be connected to this link - port. - Shall be present when the link port is used for external - connectivity by the VNF. - May be present if used to reference a VNFC CP instance. - There shall be at most one link port associated with any external - connection point instance or internal connection point - (i.e. VNFC CP) instance. - The value refers to an "extCpInfo" item in the VnfInstance or a - "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpInstanceType: + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: description: > - Type of the CP instance that is identified by cpInstanceId. - Shall be present if "cpInstanceId" is present, and shall be absent otherwise. - Permitted values: - VNFC_CP: The link port is connected to a VNFC CP - EXT_CP: The link port is associated to an external CP. + Discriminator for the different notification types. Shall be set to + "VnfIdentifierDeletionNotification" for this notification type. type: string enum: - - VNFC_CP - - EXT_CP - - VnfOperationalStateType: - type: string - enum: - - STARTED - - STOPPED + - VnfIdentifierDeletionNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: + description: > + The deleted VNF instance identifier. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" - VnfVirtualLinkResourceInfo: + VnfcInfoModifications: description: > - This type represents the information that allows addressing a virtualised - resource that is used by an internal VL instance in a VNF instance. + This type represents modifications of an entry in an array of "VnfcInfo" objects. + It shall comply with the provisions defined in table 5.5.3.24-1. type: object required: - id - - vnfVirtualLinkDescId - - networkResource + - vnfcConfigurableProperties properties: id: description: > - Identifier of this VnfVirtualLinkResourceInfo instance. + Identifier of the VNFC instance of which the information is to be modified. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfVirtualLinkDescId: - description: > - Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - networkResource: - description: > - Reference to the VirtualNetwork resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfLinkPorts: - description: > - Links ports of this VL. - Shall be present when the linkPort is used for external connectivity - by the VNF (refer to VnfLinkPortInfo). - May be present otherwise. - type: array - items: - $ref: "#/definitions/VnfLinkPortInfo" - metadata: + vnfcConfigurableProperties: description: > - Metadata about this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - + Changes of the configurable properties of the VNFC instance. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 8e8e25f6be2d4c6a80c94c6ee9c7aa1c87250dd7..61160e4ffb4ad6db374ae33d63b2b8e33ed7b5fb 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -48,10 +48,10 @@ definitions: description: > This notification informs the receiver that performance information is available. - The timing of sending this notification is determined by the capability - of the producing entity to evaluate the threshold crossing condition. The notification shall be triggered by the VNFM when new performance information collected by a PM job is available. + The periodicity of triggering this notification is influenced by the + "reportingPeriod" attribute in the "PmJobCriteria" data structure. type: object required: - id @@ -182,7 +182,7 @@ definitions: properties: timeStamp: description: > - Time stamp indicating when the data was collected. + Time stamp indicating when the data has been collected. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" value: description: > @@ -415,10 +415,9 @@ definitions: format: url authentication: description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription. - This attribute shall only be present if the subscriber requires - authorization of notifications. + 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: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" Threshold: @@ -521,6 +520,8 @@ definitions: description: > This type represents a notification that is sent when a threshold has been crossed. + The timing of sending this notification is determined by the capability + of the producing entity to evaluate the threshold crossing condition. The notification shall be triggered by the VNFM when a threshold has been crossed. type: object diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 81f187611105c4384d2c731e26c9a1a90454b8ce..c1827f3777ffb27cdd3c3dafbbe8fdac1fd1b867 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -5,7 +5,6 @@ definitions: Link: description: > This type represents a link to a resource using an absolute URI. - It shall comply with the provisions defined in table 4.4.1.3-1. type: object required: - href @@ -13,14 +12,12 @@ definitions: href: description: > URI of another resource referenced from a resource. - Shall be an absolute URI (i.e. a UTI that contains {apiRoot}. + Shall be an absolute URI (i.e. a UTI that contains {apiRoot}). $ref: "#/definitions/Uri" NotificationLink: description: > - This type represents a link to a resource in a notification, - using an absolute or relative URI. It shall comply with the - provisions defined in table 4.4.1.3a-1. + This type represents a link to a resource in a notification, using an absolute or relative URI. type: object required: - href @@ -36,11 +33,61 @@ definitions: KeyValuePairs: description: > - This type represents a list of key-value pairs. The order of the pairs in the list is not significant. - In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions - defined in clause 4 of IETF RFC 7159. + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, + a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 + of IETF RFC 8259. In the following example, a list of key-value pairs with four keys ("aString", "aNumber", + "anArray" and "anObject") is provided to illustrate that the values associated with different keys can be of + different type. type: object + ApiVersionInformation: + description: > + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the + uriPrefix attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute indicates + whether use of the version signaled by the version + attribute is deprecated (true) or not (false). + + A deprecated version is still supported by the API producer but is recommended + not to be used any longer. + When a version is no longer supported, it does not appear in the response body. + type: boolean + retirementDate: + description: > + The date and time after which the API version will no + longer be supported. + This attribute may be included if the value of the + isDeprecated attribute is set to true and shall be + absent otherwise. + $ref: "#/definitions/DateTime" + VnfInstanceSubscriptionFilter: description: > This type represents subscription filter criteria to match VNF @@ -137,136 +184,200 @@ definitions: items: type: string - ApiVersionInformation: + VimConnectionInfo: description: > - This type represents API version information. It shall comply with the - provisions defined in table 4.4.1.13-1 (SOL003). + This type represents parameters to connect to a VIM for managing the + resources of a VNF instance. + This structure is used to convey VIM-related parameters over the Or-Vnfm + interface. Additional parameters for a VIM may be configured into the + VNFM by means outside the scope of the present document, and bound to + the identifier of that VIM. type: object required: - - uriPrefix - - apiVersions + - id + - vimType properties: - uriPrefix: + id: description: > - Specifies the URI prefix for the API, in the following - form {apiRoot}/{apiName}/{apiMajorVersion}/ + The identifier of the VIM Connection. This identifier is managed by + the NFVO. + $ref: "#/definitions/Identifier" + vimId: + description: > + The identifier of the VIM instance. This identifier is managed by + the NFVO. + Shall be present to address additional information about the VIM if + such information has been configured into the VNFM by means outside + the scope of the present document, and should be absent otherwise. + $ref: "#/definitions/Identifier" + vimType: + description: > + Discriminator for the different types of the VIM information. The + value of this attribute determines the structure of the + "interfaceInfo" and "accessInfo" attributes, based on the type of the + VIM. The set of permitted values is expected to change over time as + new types or versions of VIMs become available. + The ETSI NFV registry of VIM-related information provides access to + information about VimConnectionInfo definitions for various VIM + types. The structure of the registry is defined in Annex C of SOL003. type: string - apiVersions: + interfaceInfo: description: > - Version(s) supported for the API signaled by the - uriPrefix attribute. - type: array - items: - type: object - required: - - version - properties: - version: - description: > - Identifies a supported version. The value of the - version attribute shall be a version identifier as - specified in clause 4.6.1. - type: string - isDeprecated: - description: > - If such information is available, this attribute - indicates whether use of the version signaled by the - version attribute is deprecated (true) or not (false). - A deprecated version is still supported by the API producer - but is recommended not to be used any longer. - When a version is no longer supported, it does not appear in - the response body. - type: boolean - retirementDate: - description: > - The date and time after which the API version will no - longer be supported. - This attribute may be included if the value of the - isDeprecated attribute is set to true and shall be - absent otherwise. - $ref: "#/definitions/DateTime" - - Identifier: - description: > - An identifier with the intention of being globally unique. - type: string - - IdentifierInVnfd: - description: > - An identifier that is unique within a VNF descriptor. - type: string - - IdentifierInVim: - description: > - An identifier maintained by the VIM or other resource provider. It is - expected to be unique within the VIM instance. - type: string - - IdentifierInVnf: - description: > - An identifier that is unique for the respective type within a VNF - instance, but may not be globally unique. - type: string - - IdentifierLocal: - description: > - An identifier that is unique within a limited local scope other than above listed identifiers, - such as within a complex data structure or within a request-response pair. - Representation: string of variable length. - type: string - - DateTime: - description: > - Date-time stamp. - Representation: String formatted according to IETF RFC 3339. - type: string - format: date-time - - Uri: - description: > - String formatted according to IETF RFC 3986. - type: string - - Boolean: - description: > - The Boolean is a data type having two values (true and false). - type: boolean - - MacAddress: - description: > - A MAC address. Representation: string that consists of groups of two hexadecimal digits, - separated by hyphens or colons. - type: string - format: MAC - - IpAddress: - description: > - An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal - integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that - consists of groups of zero to four hexadecimal digits, separated by colons. - type: string - format: IP + Information about the interface or interfaces to the VIM, if + applicable, such as the URI of an interface endpoint to + communicate with the VIM. The applicable keys are dependent on the + content of vimType. + Alternatively, such information may have been configured into the + VNFM and bound to the vimId. + $ref: "#/definitions/KeyValuePairs" + accessInfo: + description: > + Authentication credentials for accessing the VIM, and other + access-related information such as tenants or infrastructure + resource groups (see note). The applicable keys are dependent on the + content of vimType. + If the VimConnectionInfo structure is part of an HTTP response + payload body, sensitive attributes that are children of this attributes + (such as passwords) shall not be included. + If the VimConnectionInfo structure is part of an HTTP request payload + body, sensitive attributes that are children of this attribute (such + as passwords) shall be present if they have not been provisioned out + of band. + $ref: "#/definitions/KeyValuePairs" + extra: + description: > + VIM type specific additional information. The applicable structure, + and whether or not this attribute is available, is dependent on the + content of vimType. + $ref: "#/definitions/KeyValuePairs" - Version: + ResourceHandle: + required: + - vimConnectionId + - resourceId + type: object description: > - A version. - type: string + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. Information about the resource + is available from the VIM. + properties: + vimConnectionId: + description: > + Identifier of the VIM connection to manage the resource. This + attribute shall only be supported and present if VNF-related resource + management in direct mode is applicable. The applicable + "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the "vimConnectionInfo" + attribute of the "VnfInstance" structure. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifier of the entity responsible for the management of the + resource. This attribute shall only be supported and present when + VNF-related resource management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + Identifier of the resource in the scope of the VIM or the resource + provider. + $ref: "#/definitions/IdentifierInVim" + vimLevelResourceType: + description: > + The value set of the "vimLevelResourceType" attribute is within the scope + of the VIM or the resource provider and can be used as information that + complements the ResourceHandle. This value set is different from the value + set of the "type" attribute in the ResourceDefinition (refer to clause 9.5.3.2 in SOL003). + type: string - String: + VnfExtCpData: description: > - A string defined in IETF RFC 8259. - type: string + This type represents configuration information for external CPs created + from a CPD. + type: object + required: + - cpdId + properties: + cpdId: + description: > + The identifier of the CPD in the VNFD. + $ref: "#/definitions/IdentifierInVnfd" + cpConfig: + description: > + List of instance data that need to be configured on the CP instances + created from the respective CPD. + type: array + items: + $ref: "#/definitions/VnfExtCpConfig" - Number: + VnfExtCpConfig: description: > - A number defined in IETF RFC 8259. - type: number + This type represents an externally provided link port or network address + information per instance of an external connection point. In case a link + port is provided, the VNFM shall use that link port when connecting the + external CP to the external VL. In a link port is not provided, the VNFM + shall create a link port on the external VL, and use that link port to + connect the external CP to the external VL. + type: object + properties: + cpInstanceId: + description: > + Identifier of the external CP instance to which this set of + configuration parameters is requested to be applied. + Shall be present if this instance has already been created. + $ref: "#/definitions/IdentifierInVnf" + linkPortId: + description: > + Identifier of a pre-configured link port to which the external CP + will be associated. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + 1) The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + 2) At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + 3) If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + 4) If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + 5) If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + $ref: "#/definitions/Identifier" + cpProtocolData: + description: > + Parameters for configuring the network protocols on the link port + that connects the CP to a VL. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + 1) The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + 2) At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + 3) If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + 4) If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + 5) If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + type: array + items: + $ref: "#/definitions/CpProtocolData" -######################################################################################################################## -# TO CHECK IF INCLUDE THESE DATA TYPES IN ANOTHER DEF FILES CpProtocolData: description: > - This type represents network protocol data. + This type represents network protocol data. type: object required: - layerProtocol @@ -288,26 +399,128 @@ definitions: "IP_OVER_ETHERNET", and shall be absent otherwise. $ref: "#/definitions/IpOverEthernetAddressData" + IpOverEthernetAddressData: + description: > + This type represents network address data for IP over Ethernet. + type: object + properties: + macAddress: + description: > + MAC address. If this attribute is not present, it shall be chosen by + the VIM. + At least one of "macAddress" or "ipAddresses" shall be present. + $ref: "#/definitions/MacAddress" + ipAddresses: + description: > + List of IP addresses to assign to the CP instance. Each entry + represents IP address data for fixed or dynamic IP address + assignment per subnet. + If this attribute is not present, no IP address shall be assigned. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + fixedAddresses: + description: > + Fixed addresses to assign (from the subnet defined by + "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: array + items: + $ref: "#/definitions/IpAddress" + numDynamicAddresses: + description: > + Number of dynamic addresses to assign (from the subnet defined + by "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: integer + addressRange: + description: > + An IP address range to be used, e.g. in case of egress + connections. + In case this attribute is present, IP addresses from the range + will be used. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in the + VIM. + In case this attribute is present, IP addresses from that + subnet will be assigned; otherwise, IP addresses not bound to + a subnet will be assigned. + $ref: "#/definitions/IdentifierInVim" - - ExtLinkPortData: + ExtVirtualLinkData: description: > - This type represents an externally provided link port to be used to - connect an external connection point to an external VL. + This type represents an external VL. type: object required: - id - - resourceHandle + - resourceId + - extCps properties: id: description: > - Identifier of this link port as provided by the entity that has - created the link port. + The identifier of the external VL instance. The identifier is + assigned by the NFV-MANO entity that manages this VL instance. $ref: "#/definitions/Identifier" - resourceHandle: + vimConnectionId: description: > - Reference to the virtualised resource realizing this link port. - $ref: "#/definitions/ResourceHandle" + Identifier of the VIM connection to manage this resource. This + attribute shall only be supported and present if VNF-related + resource management in direct mode is applicable. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management of this + resource. This attribute shall only be supported and present + if VNF-related resource management in indirect mode is applicable. + The identification scheme is outside the scope of the present + document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + The identifier of the resource in the scope of the VIM or the + resource provider. + $ref: "#/definitions/IdentifierInVim" + extCps: + description: > + External CPs of the VNF to be connected to this external VL. + type: array + items: + $ref: "#/definitions/VnfExtCpData" + extLinkPorts: + description: > + Externally provided link ports to be used to connect external + connection points to this external VL. If this attribute is not + present, the VNFM shall create the link ports on the external VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortData" ExtManagedVirtualLinkData: type: object @@ -345,53 +558,103 @@ definitions: resource provider. $ref: "#/definitions/IdentifierInVim" - ExtVirtualLinkData: + Identifier: description: > - This type represents an external VL. + An identifier with the intention of being globally unique. + type: string + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: date-time + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + Boolean: + description: > + The Boolean is a data type having two values (true and false). + type: boolean + + MacAddress: + description: > + A MAC address. Representation: string that consists of groups of two hexadecimal digits, + separated by hyphens or colons. + type: string + format: MAC + + IpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, separated by colons. + type: string + format: IP + + Version: + description: > + A version. + type: string + + String: + description: > + A string defined in IETF RFC 8259. + type: string + + Number: + description: > + A number defined in IETF RFC 8259. + type: number + + IdentifierInVnfd: + description: > + An identifier that is unique within a VNF descriptor. + type: string + + IdentifierInVim: + description: > + An identifier maintained by the VIM or other resource provider. It is + expected to be unique within the VIM instance. + type: string + + IdentifierInVnf: + description: > + An identifier that is unique for the respective type within a VNF + instance, but may not be globally unique. + type: string + + IdentifierLocal: + description: > + An identifier that is unique within a limited local scope other than above listed identifiers, + such as within a complex data structure or within a request-response pair. + Representation: string of variable length. + type: string + +######################################################################################################################## +# TO CHECK IF INCLUDE THESE DATA TYPES IN ANOTHER DEF FILES + + ExtLinkPortData: + description: > + This type represents an externally provided link port to be used to + connect an external connection point to an external VL. type: object required: - id - - resourceId - - extCps - properties: - id: - description: > - The identifier of the external VL instance. The identifier is - assigned by the NFV-MANO entity that manages this VL instance. - $ref: "#/definitions/Identifier" - vimConnectionId: - description: > - Identifier of the VIM connection to manage this resource. This - attribute shall only be supported and present if VNF-related - resource management in direct mode is applicable. - $ref: "#/definitions/Identifier" - resourceProviderId: + - resourceHandle + properties: + id: description: > - Identifies the entity responsible for the management of this - resource. This attribute shall only be supported and present - if VNF-related resource management in indirect mode is applicable. - The identification scheme is outside the scope of the present - document. + Identifier of this link port as provided by the entity that has + created the link port. $ref: "#/definitions/Identifier" - resourceId: - description: > - The identifier of the resource in the scope of the VIM or the - resource provider. - $ref: "#/definitions/IdentifierInVim" - extCps: - description: > - External CPs of the VNF to be connected to this external VL. - type: array - items: - $ref: "#/definitions/VnfExtCpData" - extLinkPorts: + resourceHandle: description: > - Externally provided link ports to be used to connect external - connection points to this external VL. If this attribute is not - present, the VNFM shall create the link ports on the external VL. - type: array - items: - $ref: "#/definitions/ExtLinkPortData" + Reference to the virtualised resource realizing this link port. + $ref: "#/definitions/ResourceHandle" GrantedLcmOperationType: description: > @@ -418,81 +681,6 @@ definitions: - OPERATE - CHANGE_EXT_CONN - IpOverEthernetAddressData: - description: > - This type represents network address data for IP over Ethernet. - type: object - properties: - macAddress: - description: > - MAC address. If this attribute is not present, it shall be chosen by - the VIM. - At least one of "macAddress" or "ipAddresses" shall be present. - $ref: "#/definitions/MacAddress" - ipAddresses: - description: > - List of IP addresses to assign to the CP instance. Each entry - represents IP address data for fixed or dynamic IP address - assignment per subnet. - If this attribute is not present, no IP address shall be assigned. - type: array - items: - type: object - required: - - type - properties: - type: - description: > - The type of the IP addresses. - Permitted values: IPV4, IPV6. - type: string - enum: - - IPV4 - - IPV6 - fixedAddresses: - description: > - Fixed addresses to assign (from the subnet defined by - "subnetId" if provided). - Exactly one of "fixedAddresses", "numDynamicAddresses" or - "ipAddressRange" shall be present. - type: array - items: - $ref: "#/definitions/IpAddress" - numDynamicAddresses: - description: > - Number of dynamic addresses to assign (from the subnet defined - by "subnetId" if provided). - Exactly one of "fixedAddresses", "numDynamicAddresses" or - "ipAddressRange" shall be present. - type: integer - addressRange: - description: > - An IP address range to be used, e.g. in case of egress - connections. - In case this attribute is present, IP addresses from the range - will be used. - type: object - required: - - minAddress - - maxAddress - properties: - minAddress: - description: > - Lowest IP address belonging to the range. - $ref: "#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range. - $ref: "#/definitions/IpAddress" - subnetId: - description: > - Subnet defined by the identifier of the subnet resource in the - VIM. - In case this attribute is present, IP addresses from that - subnet will be assigned; otherwise, IP addresses not bound to - a subnet will be assigned. - $ref: "#/definitions/IdentifierInVim" - LcmOperationType: description: > Value | Description @@ -577,44 +765,6 @@ definitions: format: URI #TODO: How to express "any additional attributes"? - ResourceHandle: - required: - - vimConnectionId - - resourceId - type: object - description: > - This type represents the information that allows addressing a virtualised - resource that is used by a VNF instance. Information about the resource - is available from the VIM. - properties: - vimConnectionId: - description: > - Identifier of the VIM connection to manage the resource. This - attribute shall only be supported and present if VNF-related resource - management in direct mode is applicable. The applicable - "VimConnectionInfo" structure, which is referenced by - vimConnectionId, can be obtained from the "vimConnectionInfo" - attribute of the "VnfInstance" structure. - $ref: "#/definitions/Identifier" - resourceProviderId: - description: > - Identifier of the entity responsible for the management of the - resource. This attribute shall only be supported and present when - VNF-related resource management in indirect mode is applicable. The - identification scheme is outside the scope of the present document. - $ref: "#/definitions/Identifier" - resourceId: - description: > - Identifier of the resource in the scope of the VIM or the resource - provider. - $ref: "#/definitions/IdentifierInVim" - vimLevelResourceType: - description: > - Type of the resource in the scope of the VIM or the resource - provider. - type: string - #TODO: Note of Table 4.4.1.7-1 - SubscriptionAuthentication: type: object required: @@ -696,158 +846,6 @@ definitions: Shall be present if it has not been provisioned out of band. $ref: "#/definitions/Uri" - VimConnectionInfo: - description: > - This type represents parameters to connect to a VIM for managing the - resources of a VNF instance. - This structure is used to convey VIM-related parameters over the Or-Vnfm - interface. Additional parameters for a VIM may be configured into the - VNFM by means outside the scope of the present document, and bound to - the identifier of that VIM. - type: object - required: - - id - - vimType - properties: - id: - description: > - The identifier of the VIM Connection. This identifier is managed by - the NFVO. - $ref: "#/definitions/Identifier" - vimId: - description: > - The identifier of the VIM instance. This identifier is managed by - the NFVO. - Shall be present to address additional information about the VIM if - such information has been configured into the VNFM by means outside - the scope of the present document, and should be absent otherwise. - $ref: "#/definitions/Identifier" - vimType: - description: > - Discriminator for the different types of the VIM information. The - value of this attribute determines the structure of the - "interfaceInfo" and "accessInfo" attributes, based on the type of the - VIM. The set of permitted values is expected to change over time as - new types or versions of VIMs become available. - The ETSI NFV registry of VIM-related information provides access to - information about VimConnectionInfo definitions for various VIM - types. The structure of the registry is defined in Annex C of SOL003. - type: string - interfaceInfo: - description: > - Information about the interface or interfaces to the VIM, if - applicable, such as the URI of an interface endpoint to - communicate with the VIM. The applicable keys are dependent on the - content of vimType. - Alternatively, such information may have been configured into the - VNFM and bound to the vimId. - $ref: "#/definitions/KeyValuePairs" - accessInfo: - description: > - Authentication credentials for accessing the VIM, and other - access-related information such as tenants or infrastructure - resource groups (see note). The applicable keys are dependent on the - content of vimType. - If the VimConnectionInfo structure is part of an HTTP response - payload body, sensitive attributes that are children of this attributes - (such as passwords) shall not be included. - If the VimConnectionInfo structure is part of an HTTP request payload - body, sensitive attributes that are children of this attribute (such - as passwords) shall be present if they have not been provisioned out - of band. - $ref: "#/definitions/KeyValuePairs" - extra: - description: > - VIM type specific additional information. The applicable structure, - and whether or not this attribute is available, is dependent on the - content of vimType. - $ref: "#/definitions/KeyValuePairs" - - VnfExtCpConfig: - description: > - This type represents an externally provided link port or network address - information per instance of an external connection point. In case a link - port is provided, the VNFM shall use that link port when connecting the - external CP to the external VL. In a link port is not provided, the VNFM - shall create a link port on the external VL, and use that link port to - connect the external CP to the external VL. - type: object - properties: - cpInstanceId: - description: > - Identifier of the external CP instance to which this set of - configuration parameters is requested to be applied. - Shall be present if this instance has already been created. - $ref: "#/definitions/IdentifierInVnf" - linkPortId: - description: > - Identifier of a pre-configured link port to which the external CP - will be associated. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. - * If the "linkPortId" attribute is absent, the VNFM shall create a - link port. - * If the "cpProtocolData" attribute is absent, the "linkPortId" - attribute shall be provided referencing a pre-created link port, - and the VNFM can use means outside the scope of the present - document to obtain the pre-configured address information for the - connection point from the resource representing the link port. - * If both "cpProtocolData" and "linkportId" are provided, the API - consumer shall ensure that the cpProtocolData can be used with the - pre-created link port referenced by "linkPortId". - $ref: "#/definitions/Identifier" - cpProtocolData: - description: > - Parameters for configuring the network protocols on the link port - that connects the CP to a VL. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. - * If the "linkPortId" attribute is absent, the VNFM shall create a - link port. - * If the "cpProtocolData" attribute is absent, the "linkPortId" - attribute shall be provided referencing a pre-created link port, - and the VNFM can use means outside the scope of the present - document to obtain the pre-configured address information for the - connection point from the resource representing the link port. - * If both "cpProtocolData" and "linkportId" are provided, the API - consumer shall ensure that the cpProtocolData can be used with the - pre-created link port referenced by "linkPortId". - type: array - items: - $ref: "#/definitions/CpProtocolData" - - VnfExtCpData: - description: > - This type represents configuration information for external CPs created - from a CPD. - type: object - required: - - cpdId - properties: - cpdId: - description: > - The identifier of the CPD in the VNFD. - $ref: "#/definitions/IdentifierInVnfd" - cpConfig: - description: > - List of instance data that need to be configured on the CP instances - created from the respective CPD. - type: array - items: - $ref: "#/definitions/VnfExtCpConfig" - AffectedVnfc: description: > This type provides information about added, deleted, modified and diff --git a/src/responses/SOL002SOL003_resp.yaml b/src/responses/SOL002SOL003_resp.yaml index d42c235b37572ab454b86002b31610f9400e02c7..b0b39f8fdf3cf18f4d2bef26e03b3f7143286cab 100644 --- a/src/responses/SOL002SOL003_resp.yaml +++ b/src/responses/SOL002SOL003_resp.yaml @@ -236,12 +236,6 @@ responses: $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 406: - description: > - 406 NOT ACCEPTABLE - - If the "Accept" header does not contain at least one name of a content type that is acceptable - to the API producer, the API producer shall respond with this response code. - The "ProblemDetails" structure may be omitted. headers: Content-Type: description: The MIME type of the body of the response. @@ -381,8 +375,6 @@ responses: $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 416: - description: > - 416 RANGE NOT SATISFIABLE headers: Content-Type: description: The MIME type of the body of the response.