diff --git a/Readme.md b/Readme.md index 5f2370dea7a085450414a49719c839ff7ed7ce5f..59baacd0f4388f33f402492962e5cd1de3ddc11c 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,7 @@ # NFV SOL002 and SOL003 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs [SOL002](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_NFV-SOL002v020601p.pdf) and [SOL003](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf). +for the APIs defined in ETSI NFV GSs [SOL002](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_NFV-SOL002v020701p.pdf) and [SOL003](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_nfv-sol003v020701p.pdf). The APIs described in this repository are defined for the following reference points: diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml index c2ff8bbcf4e4c4c3edbcdf2bb9440bc601b3d421..c050b0548c5e01f140a6637b41da507c54a2a9a6 100644 --- a/src/SOL002/APIVersion/APIVersion.yaml +++ b/src/SOL002/APIVersion/APIVersion.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - API version interface description: > SOL002 - API version 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.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf schemes: - http @@ -34,17 +34,17 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/vnfconfig/api-versions': + '/vnfconfig/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnffm/api-versions': + '/vnffm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnfind/api-versions': + '/vnfind/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnflcm/api-versions': + '/vnflcm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnfpm/api-versions': + '/vnfpm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' \ No newline at end of file diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index 134144ce5b2f91eac28be3077eb2d7c9f8631efe..b70febcf653489cc32a261c145addbff20117d47 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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /vnfconfig/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -102,8 +102,6 @@ paths: $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" 429: @@ -160,16 +158,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. + # 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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" diff --git a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml index 36c24796ae088a8bdc1fabbd7baa1c9386669012..45d668898061fcb722b6285b675d926c6b456944 100644 --- a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml +++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml @@ -76,7 +76,9 @@ definitions: extCpConfig: description: > Configuration parameters for the external CPs of the VNF instance. - $ref: '#/definitions/CpConfiguration' + type: array + items: + $ref: '#/definitions/CpConfiguration' dhcpServer: description: > IP address of the DHCP server that the VNF instance can use to obtain @@ -99,10 +101,12 @@ definitions: description: > Identifier of a VNFC instance to which this set of configuration data applies. $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf' - extCpConfig: + intCpConfig: description: > - Configuration parameters for the external CPs of the VNFC instance. - $ref: '#/definitions/CpConfiguration' + Configuration parameters for the internal CPs of the VNFC instance. + type: array + items: + $ref: '#/definitions/CpConfiguration' dhcpServer: description: > IP address of the DHCP server that the VNF instance can use to obtain diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index c29936c7638403b34f0f96468ffc6ab0657ac217..0b7df075439ed9dc48522512a0fd1d08117ff7f4 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.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 Fault Management interface description: > SOL002 - VNF Fault Management interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - 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 + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /vnffm/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -186,7 +186,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual alarm # ############################################################################### @@ -355,27 +354,29 @@ paths: 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 "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. + # description: > + # 409 CONFLICT + + # Shall be returned upon the following error: The operation cannot be executed + # currently, due to a conflict with the state of the "Individual alarm" resource. + # Typically, this is due to the fact that the alarm is already in the state that + # is requested to be set (such as trying to acknowledge an already-acknowledged + # alarm). + # The response body shall contain a ProblemDetails structure, in which the + # "detail" attribute shall convey more information about the error. + # schema: $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. + # 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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -389,7 +390,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Escalate Perceived Severity task # ############################################################################### @@ -436,7 +436,7 @@ paths: responses: 200: description: > - 200 OK + 204 No Content Shall be returned when the VNFM has received the proposed "escalated perceived severity" value successfully. The response body shall be empty. @@ -470,7 +470,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Subscriptions # ############################################################################### @@ -550,14 +549,15 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 303: - 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. - The response body shall be empty. + # 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. + # The response body shall be empty. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -574,6 +574,23 @@ paths: 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: + # description: > + # 422 UNPROCESSABLE ENTITY + + # Shall be returned upon the following error: The content + # type of the payload body is supported and the payload + # body of a request contains syntactically correct data but + # the data cannot be processed. + # The general cause for this error and its handling is + # specified in clause 6.4 of ETSI GS NFV-SOL 013 [6], + # including rules for the presence of the response body. + # Specifically in case of this resource, the response code + # 422 shall also be returned if the VNFM has tested the + # Notification endpoint as described in clause 7.4.7.3.2 + # and the test has failed. + # In this case, the "detail" attribute in the "ProblemDetails" + # structure shall convey more information about the error + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" 429: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429" @@ -711,7 +728,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual subscription # ############################################################################### diff --git a/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml index 716f5924499515cbf1d66952281b8fddf89b2b9c..e2b4c336a9238af2f9a5b3915c338e8d6abc8b81 100644 --- a/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml +++ b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml @@ -9,8 +9,6 @@ definitions: required: - id - managedObjectId - - vnfcInstanceIds - - rootCauseFaultyResource - alarmRaisedTime - ackState - perceivedSeverity @@ -53,6 +51,12 @@ definitions: 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" + alarmAcknowledgedTime: + description: > + Time stamp indicating when the alarm was + acknowledged. It shall be present if the alarm has + been acknowledged. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" ackState: description: > Acknowledgement state of the alarm. diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index f817f87c615c8cd0954c44502e75cb158b2d66e8..061f08c2337fca7c9ae6c8c5620f087fd0984b83 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.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 Fault Management Notification interface description: > SOL002 - VNF Fault Management Notification interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - 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 + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /callback/v1 @@ -151,7 +151,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - ############################################################################### # Notification endpoint AlarmClearedNotification # ############################################################################### @@ -270,7 +269,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - ############################################################################### # Notification endpoint AlarmListRebuiltNotification # ############################################################################### diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 83a0b779c97d985e045d1efd1a24e43931ff5ac5..cb5532d79a3d54d8074b1251532f682664a6bb01 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Indicator interface description: > SOL002 - VNF Indicator interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - 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 + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /vnfind/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -165,7 +165,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # VNF indicators related to a VNF instance # ############################################################################### @@ -305,7 +304,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual VNF indicator # ############################################################################### @@ -393,25 +391,10 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Subscriptions # ############################################################################### /subscriptions: - parameters: - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string post: summary: Create a new subscription to VNF indicator change notifications description: > @@ -419,6 +402,15 @@ paths: 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 VNFM, and might make sense only in very + rare use cases. Consequently, the API producer 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 in: body @@ -426,6 +418,33 @@ paths: required: true schema: $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscriptionRequest' + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: 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: 201: description: > @@ -435,7 +454,9 @@ paths: The response body shall contain a representation of the created "Individual subscription" resource. schema: - $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription' + type: array + items: + $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription' headers: Location: description: > @@ -447,21 +468,30 @@ paths: 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: The used API version. type: string maximum: 1 minimum: 1 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. + # 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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -600,7 +630,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual Subscription # ############################################################################### diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 15490369ee70b36d886adbe23a2ba5bc361703ea..3bc5145b9b87079414314e3c59ab6e3418ed6929 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Indicator Notification Endpoint interface description: > SOL002 - VNF Indicator Notification Endpoint interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - 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 + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf schemes: - http diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 3463d2d4bf1736188958979878598700e893efcf..51bbbc5c048d5f04d44de0e42ecf8222de1d4524 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.4.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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /vnflcm/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -225,6 +225,15 @@ paths: 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 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource. + in: query + required: false + type: string responses: 200: description: > @@ -280,7 +289,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual VNF instance # ############################################################################### @@ -434,14 +442,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - 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. - The response body shall contain a ProblemDetails structure, in which the "detail" - attribute should convey more information about the error. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state + # of the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" @@ -482,6 +491,8 @@ paths: type: string maximum: 1 minimum: 1 + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -495,13 +506,14 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -515,7 +527,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Instantiate VNF task # ############################################################################### @@ -607,13 +618,14 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -627,7 +639,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Scale VNF task # ############################################################################### @@ -720,14 +731,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -741,7 +753,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Scale VNF to Level task # ############################################################################### @@ -834,14 +845,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -855,7 +867,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Change VNF Flavour task # ############################################################################### @@ -947,14 +958,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -968,7 +980,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Terminate VNF task # ############################################################################### @@ -1059,14 +1070,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1080,7 +1092,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Heal VNF task # ############################################################################### @@ -1171,14 +1182,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the "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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the "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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1192,7 +1204,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Operate VNF task # ############################################################################### @@ -1283,14 +1294,15 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that the 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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that the 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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1304,7 +1316,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Change external VNF connectivity task # ############################################################################### @@ -1397,13 +1408,14 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: The operation cannot be executed currently, due to a conflict with the state of the resource. - Typically, this is due to the fact that 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. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of the resource. + # Typically, this is due to the fact that 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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1417,7 +1429,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # VNF LCM operation occurrences # ############################################################################### @@ -1585,7 +1596,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}': @@ -1673,7 +1684,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Retry operation task # ############################################################################### @@ -1745,15 +1755,16 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: 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 VNF LCM operation occurrence 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 shall - convey more information about the error. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of + # the VNF LCM operation occurrence resource. + # 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. + # The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall + # convey more information about the error. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1767,7 +1778,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Rollback operation task # ############################################################################### @@ -1838,15 +1848,16 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: 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 VNF LCM operation occurrence 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 shall - convey more information about the error. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of + # the VNF LCM operation occurrence resource. + # 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. + # The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall + # convey more information about the error. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1860,7 +1871,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Fail operation task # ############################################################################### @@ -1938,15 +1948,16 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: 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 VNF LCM operation occurrence 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 shall - convey more information about the error. + # description: > + # 409 CONFLICT + + # Error: The operation cannot be executed currently, due to a conflict with the state of + # the VNF LCM operation occurrence resource. + # 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. + # The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall + # convey more information about the error. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -1960,7 +1971,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Cancel operation task # ############################################################################### @@ -1991,6 +2001,15 @@ paths: in: header required: false type: string + - name: cancelMode + description: > + The POST request to this resource shall include a CancelMode + structure in the payload body to choose between "graceful" and + "forceful" cancellation. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CancelMode" post: description: > The POST method initiates cancelling an ongoing VNF lifecycle @@ -2033,15 +2052,16 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT - - Error: 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. + # description: > + # 409 CONFLICT + + # Error: 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. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" @@ -2055,7 +2075,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Subscriptions # ############################################################################### @@ -2121,14 +2140,15 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: - 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. - The response body shall be empty. + # 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. + # The response body shall be empty. + # schema: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -2192,6 +2212,15 @@ paths: 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 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource. + in: query + required: false + type: string responses: 200: description: > @@ -2246,7 +2275,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual subscription # ############################################################################### diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index f278f185398b1a973cd196cb3bf04d1f86f80d78..61385094147c5f0e2e2e68a0c4e08079aa9914e9 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -15,6 +15,7 @@ definitions: - vnfdVersion - vnfPkgInfoId - instantiationState + - _links properties: id: description: > @@ -59,7 +60,7 @@ definitions: description: > Identifies the version of the VNFD. The value is copied from the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" - vnfPkgInfoId: + 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 @@ -118,6 +119,7 @@ definitions: - flavourId - vnfState - extCpInfo + - _links properties: flavourId: description: > @@ -134,6 +136,13 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" + maxScaleLevels: + description: > + Maximum allowed scale levels of the VNF, one entry per aspect. + This attribute shall be present if the VNF supports scaling. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" extCpInfo: description: > Information about the external CPs exposed by the VNF instance. @@ -342,6 +351,15 @@ definitions: 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" + vnfConfigurableProperties: + description: > + This parameter provides values for the VNF configurable + properties attribute in the "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: description: > @@ -527,7 +545,7 @@ definitions: "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. type: array items: - $ref: "#/definitions/VnfcInfoModifications" + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" vnfcInfoModificationsDeleteIds: description: > List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index c94360518fe61ea5cfb14f9e05e019cf2d6bfaac..f3c25abf74f7e5ddc5c1461d52b3b731c12a0dd8 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.4.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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /callback/v1 @@ -55,7 +55,8 @@ paths: description: > Notify - The POST method delivers a notification from the server to the client. + 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. parameters: - name: VnfLcmOperationOccurrenceNotification description: A notification about lifecycle changes triggered by a VNF LCM operation occurrence. @@ -118,7 +119,7 @@ paths: get: description: > The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + that is provided by the API consumer, e.g. during subscription. parameters: - name: Authorization description: > @@ -168,7 +169,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - ############################################################################### # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### @@ -191,7 +191,8 @@ paths: description: > Notify - The POST method delivers a notification from the server to the client. + 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. parameters: - name: VnfIdentifierCreationNotification description: > @@ -256,7 +257,7 @@ paths: get: description: > The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + that is provided by the API consumer, e.g. during subscription. parameters: - name: Authorization description: > @@ -306,7 +307,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - ############################################################################### # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### @@ -329,7 +329,8 @@ paths: description: > Notify - The POST method delivers a notification from the server to the client. + 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. parameters: - name: VnfIdentifierDeletionNotification description: > @@ -394,7 +395,7 @@ paths: get: description: > The GET method allows the server to test the notification endpoint - that is provided by the client, e.g. during subscription. + that is provided by the API consumer, e.g. during subscription. parameters: - name: Authorization description: > diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 1a4c178003c1be493fbef8e8463427d30a889028..143e76e2bb13c5d182d996533273486788b9f1c2 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Perfomance Management interface description: > SOL002 - VNF Performance Management interface @@ -17,10 +17,10 @@ info: name: NFV-SOL WG externalDocs: - 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 + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf -basePath: /vnfpm/v1 +basePath: /vnfpm/v2 schemes: - http @@ -36,7 +36,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -306,7 +306,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual PM job # ############################################################################### @@ -401,6 +400,89 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + patch: + description: > + This method allows to modify an "individual PM job" resource. + This method shall follow the provisions specified in the tables 6.4.3.3.4-1 and 6.4.3.3.4-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: PmJobModifications + description: Parameters for the PM job modification + required: true + in: body + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications" + responses: + 200: + description: > + 200 OK + + Shall be returned when the request has been + processed successfully. + The response body shall contain a data structure of + type "PmJobModifications". + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Version: + description: The used API version. + 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications" + 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/SOL002SOL003_resp.yaml#/responses/409" + 412: + # description: > + # 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. + # schema: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" + 429: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429" + 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: > This method terminates an individual PM job. @@ -554,7 +636,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Thresholds # ############################################################################### @@ -784,7 +865,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - ############################################################################### # Individual threshold # ############################################################################### @@ -878,352 +958,27 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - delete: + patch: 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. + This method allows to modify an "Individual threshold" resource. + This method shall follow the provisions specified in the tables 6.4.6.3.4-1 and 6.4.6.3.4-2 for URI query parameters, + request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header + - name: ThresholdModifications + description: Parameters for the threshold modification. required: true - type: string - responses: - 204: - description: > - 204 NO CONTENT - - Shall be returned when the threshold was deleted successfully. - The response body shall be empty. - headers: - Version: - description: The used API version. - 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 - 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" - 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" - 429: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429" - 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': - #SOL003 location: 6.4.7 - parameters: - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - post: - description: > - 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: > - Details of the subscription to be created. in: body - required: true schema: - $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - responses: - 201: - description: > - 201 CREATED - - 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. - type: string - maximum: 1 - minimum: 1 - Version: - description: The used API version. - 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" - 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" - 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" - 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" - 429: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429" - 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: > - The client can use this method to query the list of active - subscriptions to Performance management notifications subscribed by - the client. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: filter - description: > - 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. - - EXAMPLE - objects - obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]} - obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]} - - Request 1: - GET …/container - - Response 1: - [ - {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}, - {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]} - ] - - Request 2: - GET …/container?filter=(eq.weight,100) - - Response 2: - [ - {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]} - ] - #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used - 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 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - in: query - required: false - type: string - responses: - 200: - description: > - 200 OK - - 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 "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. - type: string - maximum: 1 - minimum: 1 - Version: - description: The used API version. - 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 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" - 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" - 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" - 429: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429" - 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 # - ############################################################################### - '/subscriptions/{subscriptionId}': - #SOL002 location: 6.4.8 - parameters: - - name: subscriptionId - 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" - attribute in the payload body of that response. - in: path - type: string - required: true - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - get: - description: > - The client can use this method for reading an individual subscription - about Performance management notifications subscribed by the client. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdModifications" responses: 200: description: > 200 OK - Shall be returned when the subscription has been read successfully. - The response body shall contain a representation of the "Individual - subscription" resource. + Shall be returned when the request has been + processed successfully. + The response body shall contain a data structure of + type "ThresholdModifications". headers: Content-Type: description: The MIME type of the body of the response. @@ -1244,7 +999,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdModifications" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1257,6 +1012,24 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409" + 412: + # description: > + # 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. + # schema: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 422: @@ -1271,12 +1044,9 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" 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. + 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: > @@ -1290,8 +1060,7 @@ paths: description: > 204 NO CONTENT - Shall be returned when the "Individual subscription" resource has been - deleted successfully. + Shall be returned when the threshold was 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 239a1fbb1ef7d9f307f2e91e0b259efc4ed3800f..030a04b3644a65af20cd3feba39c3424eacb311c 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Performance Management Notification interface description: > SOL002 - VNF Performance Management Notification interface @@ -17,8 +17,8 @@ info: name: NFV-SOL WG externalDocs: - 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 + description: ETSI GS NFV-SOL 002 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf basePath: /callback/v1 @@ -163,7 +163,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" - ############################################################################### # Notification endpoint ThresholdCrossedNotification # ############################################################################### diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index 4ca4ae57cdc24e2f61bc05c5a99bca5fb546d119..5076f848e0622c32616c01d48f9bf7b010ec7b05 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -1,6 +1,6 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL003 - API version interface" description: > SOL003 - API version Interface @@ -15,8 +15,8 @@ info: contact: name: "NFV-SOL WG" externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf schemes: - http - https @@ -28,23 +28,23 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/vrqan/api-versions': + '/vrqan/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnffm/api-versions': + '/vnffm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnfind/api-versions': + '/vnfind/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnflcm/api-versions': + '/vnflcm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnfpm/api-versions': + '/vnfpm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/grant/api-versions': + '/grant/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' - '/vnfpkgm/api-versions': + '/vnfpkgm/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' \ No newline at end of file diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index b5b3ec174dbbe732619bc56c6a68b002d3b7e497..62292e434679aae34d93f2b77a6e4ba68c9029ed 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.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 Fault Management interface description: > SOL003 - VNF Fault 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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/vnffm/v1" @@ -42,7 +42,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -53,7 +53,7 @@ paths: get: description: > Get Alarm List. - The client can use this method to retrieve information about the alarm list. + The API consumer can use this method to retrieve information about the alarm list. This method shall follow the provisions specified in the tables 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: @@ -172,7 +172,7 @@ paths: required: true get: description: > - The client can use this method to read an individual alarm. + The API consumer can use this method to read an individual alarm. This method shall follow the provisions specified in the tables 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: @@ -322,13 +322,13 @@ paths: 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 "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). +# 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" @@ -431,17 +431,17 @@ paths: schema: $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. +# 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" @@ -469,8 +469,8 @@ paths: Query Subscription Information - The client can use this method to retrieve the list of active - subscriptions for VNF alarms subscribed by the client. It can be used + The API consumer can use this method to retrieve the list of active + subscriptions for VNF alarms subscribed by the API consumer. It can be used e.g. for resynchronization after error situations. parameters: - name: Accept @@ -604,8 +604,8 @@ paths: get: description: > Query Subscription Information. - The client can use this method for reading an individual subscription for VNF alarms - subscribed by the client. + The API consumer can use this method for reading an individual subscription for VNF alarms + subscribed by the API consumer. 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: diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index f99c9621524bb363d24dd4af0ea610d08300f270..bf184d75c0b5fef4108e02c5472d186d0afc54e7 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.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 Fault Management Notification interface description: > SOL003 - VNF Fault 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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/callback/v1" @@ -119,7 +119,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. @@ -254,7 +254,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. @@ -389,7 +389,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 81b9f87eba75094759f20cbe50fd4eeaab4a84b3..13e161d62d9c7f8a43cf8cd9e12bfa5a9c5727a1 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Indicator interface description: > SOL003 - VNF Indicator interface @@ -14,8 +14,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/vnfind/v1" @@ -31,7 +31,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -490,17 +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. +# 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" diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index eabfcf97488882d4c5762743af58098e2b701437..e93597ed469b92ee6425e19c583d9e08ca436a48 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -1,10 +1,10 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: SOL003 - VNF Indicator Notification interface + version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: SOL003 - VNF Indicator interface description: > - SOL003 - VNF Indicator Notification interface + SOL003 - VNF Indicator interface IMPORTANT: Please note that this file might be not aligned to the current @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/callback/v1" @@ -111,7 +111,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 3d1a37f7b91cb65ec484f0942d58316b683d4fe1..5c0768f102e574456b510ec4641905ef03dcfb5d 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.4.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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/vnflcm/v1" @@ -42,7 +42,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -491,12 +491,12 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 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 VNF instance" resource. - Typically, this is due to the fact that another LCM operation is ongoing. + #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" @@ -566,12 +566,12 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 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 resource. - Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. + #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" @@ -686,14 +686,14 @@ paths: 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 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. + #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" @@ -804,31 +804,31 @@ 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. + #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/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 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. + #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" @@ -937,31 +937,31 @@ 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. + #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/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 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. + #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" @@ -1070,31 +1070,31 @@ 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. + #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/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 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. + #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" @@ -1122,7 +1122,8 @@ paths: post: description: > Terminate VNF. - The POST method terminates a VNF instance. + The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM + the release of its used virtualised resources. 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 @@ -1208,15 +1209,15 @@ paths: 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 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. + #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" @@ -1321,31 +1322,31 @@ 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. + #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/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 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. + #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" @@ -1453,31 +1454,31 @@ 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. + #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/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 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. + #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" @@ -1590,14 +1591,14 @@ paths: 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 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. + #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" @@ -1614,7 +1615,7 @@ paths: get: description: > Get Operation Status. - The client can use this method to query status information about multiple + The API consumer 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. @@ -1776,7 +1777,7 @@ paths: get: description: > Get Operation Status. - The client can use this method to retrieve status information about a VNF lifecycle + The API consumer 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. @@ -1920,29 +1921,29 @@ 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. + #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/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 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 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. + #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" @@ -1973,6 +1974,10 @@ paths: 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. + In case of rolling back an occurrence of the "InstantiateVnf" operation, the VNFM shall + request to the VIM the release of the virtualised resources that were allocated for the related VNF instance. + The "rollback" task shall be supported by the VNFM for any VNF LCM operation occurrence that represents an + "InstantiateVnf" operation 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 @@ -2021,29 +2026,29 @@ 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. + #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/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 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 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. + #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" @@ -2137,29 +2142,29 @@ 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. + #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/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 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 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. + #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" @@ -2259,13 +2264,13 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" 409: - description: > - 409 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 VNF LCM operation occurrence. - Typically, this is due to the fact that the operation occurrence is not in STARTING, - PROCESSING or ROLLING_BACK state. + #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" @@ -2366,14 +2371,14 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: - description: > - 303 SEE OTHER - - 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. + #description: > + #303 SEE OTHER + + #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. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -2387,6 +2392,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 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: diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 28a170a3919c86271d2e0fbc55779e7c95ad0170..11b3331c90d11d634763f3a224167914fa8b3b62 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -32,6 +32,14 @@ definitions: vnfdId: description: > Identifier of the VNFD on which the VNF instance is based. + + 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 + in other aspects than merely 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: > @@ -73,7 +81,13 @@ definitions: * 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. + These configurable properties can be initialized with default values + from the VNFD (see note 4) or with values passed in the InstantiateVnfRequest + structure (see clause 5.5.2.4). + Configurable properties initialized with default values from the VNFD can be + updated with values passed in the InstantiateVnfRequest structure. + Further, these configurable properties can be created, modified or + deleted with the PATCH method. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > @@ -119,6 +133,13 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" + maxScaleLevels: + description: > + Maximum allowed scale levels of the VNF, one entry per aspect. + This attribute shall be present if the VNF supports scaling. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" extCpInfo: description: > Information about the external CPs exposed by the VNF instance. @@ -329,13 +350,28 @@ definitions: description: > Localization language of the VNF to be instantiated. The value shall comply with the format defined in IETF RFC 5646. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/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" + 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" + vnfConfigurableProperties: + description: > + This parameter provides values for the VNF configurable properties + attribute in the "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: #SOL003 location: 5.5.2.7 @@ -358,6 +394,7 @@ definitions: extVirtualLinks: description: > Information about external VLs to connect the VNF to. + Entries in the list of external VLs that are unchanged need not be supplied as part of this request. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" @@ -429,7 +466,7 @@ definitions: cause: description: > Indicates the reason why a healing procedure is required. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" additionalParams: description: > Additional parameters passed by the NFVO as input to the healing @@ -498,6 +535,7 @@ definitions: extVirtualLinks: description: > Information about external VLs to change (e.g. connect the VNF to). + Entries in the list of external VLs that are unchanged need not be supplied as part of this request. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" @@ -528,12 +566,12 @@ definitions: description: > New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfInstanceDescription: description: > New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfPkgId: description: > New value of the "vnfPkgId" attribute in "VnfInstance". @@ -587,12 +625,12 @@ definitions: description: > If present, this attribute signals modifications of the "vnfInstanceName" attribute in "VnfInstance". - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfInstanceDescription: description: > If present, this attribute signals modifications of the "vnfInstanceDescription" attribute in "VnfInstance". - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfConfigurableProperties: description: > If present, this attribute signals modifications of the @@ -636,7 +674,7 @@ definitions: 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 + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfProductName: description: > If present, this attribute signals modifications of the @@ -646,7 +684,7 @@ definitions: 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 + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfSoftwareVersion: description: > If present, this attribute signals modifications of the diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 474580622e5b5ed3a4ef8da9db0c5a89d19731e0..d26037d1124ddc60e4a65ef162f754f2c181997d 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.4.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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/callback/v1" @@ -115,7 +115,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. @@ -247,7 +247,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. @@ -379,7 +379,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 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. diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index e302234744870cf5eac4813dd9c039806dc49fe6..9b96ab2028002103f4e1677d7abed450019fbcef 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -25,8 +25,8 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/grant/v1" @@ -42,7 +42,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -156,10 +156,10 @@ paths: 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: - description: > - 403 FORBIDDEN - - Shall be returned upon the following error: The grant has been rejected. +# description: > +# 403 FORBIDDEN +# +# 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" @@ -274,10 +274,10 @@ paths: 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" 403: - description: > - 403 FORBIDDEN - - Shall be returned upon the following error: The grant has been rejected. +# description: > +# 403 FORBIDDEN +# +# 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" diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml index 29c51635027ec5f96ff200be3895e39bf004bfa1..786eb8b53d0a22040db33332e3ce84f1c8c55fa0 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml @@ -329,6 +329,15 @@ definitions: VL instances that have been passed previously in the associated VNF lifecycle management request, if the lifecycle management request has originated from the NFVO itself. + If this attribute is present , it need not contain + those entries that are unchanged compared to the entries that were passed + in the LCM operation which is related to this granting exchange. + External and/or externally-managed internal VLs can be passed in + VNF lifecycle management operation requests such as InstantiateVnf + or ChangeVnfFlavour, and/or in the grant response. The NFVO may choose + to override in the grant response external and/or externally-managed VL + instances that have been passed previously in the associated VNF lifecycle + management request, if the lifecycle management request has originated from the NFVO itself. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" @@ -563,8 +572,8 @@ definitions: that they are placed in the same Network Function Virtualisation Infrastructure Point of Presence (NFVI-PoP) but in different resource zones: - {type="affinity"; scope="NFVI_POP"; {resource1,resource2}} - {type="anti-affinity"; scope="ZONE"; {resource1,resource2}} + {type="AFFINITY"; scope="NFVI_POP"; {resource1,resource2}} + {type="ANTI_AFFINITY"; scope="ZONE"; {resource1,resource2}} type: object required: - affinityOrAntiAffinity diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 63fc3ce8413927c9badc89c2204a6622c6d90937..2e4de3ac4efb3d67117dc4fa1a858ccde74fc485 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Package Management interface description: > SOL003 - VNF Package Management interface @@ -25,10 +25,10 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf -basePath: "/vnfpkgm/v1" +basePath: "/vnfpkgm/v2" schemes: - https @@ -42,7 +42,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -100,6 +100,14 @@ paths: description: > Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. The VNFM should 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: + - softwareImages + - additionalArtifacts + - userDefinedData. + - checksum + - onboardingFailureDetails in: query required: false type: string @@ -239,6 +247,15 @@ paths: in: header required: true type: string + - name: include_signature + description: > + If this parameter is provided, the NFVO shall include in the ZIP + archive the security information as specified above. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + type: string responses: 200: description: > @@ -278,8 +295,6 @@ paths: $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: @@ -397,30 +412,92 @@ paths: 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. + The VNFD is implemented as a collection of one or more files. + A ZIP archive embedding these files shall be returned when reading this resource. + The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 + where only the files representing the VNFD and information needed to navigate the ZIP + archive and to identify the file that is the entry point for parsing the VNFD, and, + if requested, further security information are included. This means that the structure + of the ZIP archive shall correspond to the directory structure used in the VNF package + and that the archive shall contain the following files from the package: + • TOSCA.meta (if available in the package) + • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta + or available as a file with the extension ".yml" or ".yaml" from the root of the archive) + • Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file + • The related security information, if the "include_signatures" URI parameter is provided, as follows: + - the manifest file + - the singleton certificate file in the root of the VNF package (if available in the package) + - the signing certificates of the individual files included in the ZIP archive (if available in the package) + - the signatures of the individual files (if available in the package) + Three examples are provided below. + + NOTE: These examples do not show the security related files. + + EXAMPLE 1: Assuming a request is sent for the following VNF package + (as described in clause A.1 in ETSI GS NFV-SOL 004): + !------TOSCA-Metadata + !----- TOSCA.meta (metadata for navigating the ZIP file) + !------Definitions + !----- MRF.yaml (main VNFD file) + !----- OtherTemplates (e.g. type definitions, referenced by the main VNFD file) + !------Files + !----- ChangeLog.txt + !----- image(s) + !----- other artifacts + !------Tests + !----- file(s) + !------Licenses + !----- file(s) + !------Scripts + !----- install.sh + !----- MRF.mf + + The NFVO will return a ZIP file of the following format: + !------TOSCA-Metadata + !----- TOSCA.meta + !------Definitions + !----- MRF.yaml + !----- OtherTemplates + + EXAMPLE 2: Assuming a request is sent for the following VNF package + (a VNF package without a TOSCA-Metadata directory, as + described in clause A.2 in ETSI GS NFV-SOL 004): + !------MRF.yaml (main VNFD file) + !------MRF.mf + !------ChangeLog.txt + !------Tests + !----- file(s) + !------Licenses + !----- file(s) + !------Artifacts + !----- install.sh + !----- start.yang + + The NFVO will return a ZIP file of the following format: + !------MRF.yaml + + EXAMPLE 3: Assuming a request is sent for the following VNF package + (a VNF package with the YANG VNFD without a TOSCA-Metadata directory, + as described in clause A.3 in ETSI GS NFV SOL 004): + !----CompanyVNFD.yaml + !----CompanyVNFD.xml + !----CompanyVNFD.mf + !----ChangeLog.txt + !-----Files + !-----Instance Data Files + !---- start.xml + !-----Licenses + !-----Scripts + !----- install.sh + + The NFVO will return a ZIP file of the following format: + !----CompanyVNFD.yaml + !----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml) + + This method shall follow the provisions specified in the tables 10.4.4.3.2-1 + and 10.4.4.3.2-2 for URI query parameters, request and response data structures, + nd response codes. parameters: - name: Accept description: > @@ -447,6 +524,15 @@ paths: in: header required: true type: string + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall include in the ZIP + archive the security information as specified above. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + type: string responses: 200: description: > @@ -492,22 +578,14 @@ paths: $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". + # 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" @@ -533,30 +611,92 @@ paths: 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. + The VNFD is implemented as a collection of one or more files. + A ZIP archive embedding these files shall be returned when reading this resource. + The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 + where only the files representing the VNFD and information needed to navigate the ZIP + archive and to identify the file that is the entry point for parsing the VNFD, and, + if requested, further security information are included. This means that the structure + of the ZIP archive shall correspond to the directory structure used in the VNF package + and that the archive shall contain the following files from the package: + • TOSCA.meta (if available in the package) + • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta + or available as a file with the extension ".yml" or ".yaml" from the root of the archive) + • Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file + • The related security information, if the "include_signatures" URI parameter is provided, as follows: + - the manifest file + - the singleton certificate file in the root of the VNF package (if available in the package) + - the signing certificates of the individual files included in the ZIP archive (if available in the package) + - the signatures of the individual files (if available in the package) + Three examples are provided below. + + NOTE: These examples do not show the security related files. + + EXAMPLE 1: Assuming a request is sent for the following VNF package + (as described in clause A.1 in ETSI GS NFV-SOL 004): + !------TOSCA-Metadata + !----- TOSCA.meta (metadata for navigating the ZIP file) + !------Definitions + !----- MRF.yaml (main VNFD file) + !----- OtherTemplates (e.g. type definitions, referenced by the main VNFD file) + !------Files + !----- ChangeLog.txt + !----- image(s) + !----- other artifacts + !------Tests + !----- file(s) + !------Licenses + !----- file(s) + !------Scripts + !----- install.sh + !----- MRF.mf + + The NFVO will return a ZIP file of the following format: + !------TOSCA-Metadata + !----- TOSCA.meta + !------Definitions + !----- MRF.yaml + !----- OtherTemplates + + EXAMPLE 2: Assuming a request is sent for the following VNF package + (a VNF package without a TOSCA-Metadata directory, as + described in clause A.2 in ETSI GS NFV-SOL 004): + !------MRF.yaml (main VNFD file) + !------MRF.mf + !------ChangeLog.txt + !------Tests + !----- file(s) + !------Licenses + !----- file(s) + !------Artifacts + !----- install.sh + !----- start.yang + + The NFVO will return a ZIP file of the following format: + !------MRF.yaml + + EXAMPLE 3: Assuming a request is sent for the following VNF package + (a VNF package with the YANG VNFD without a TOSCA-Metadata directory, + as described in clause A.3 in ETSI GS NFV SOL 004): + !----CompanyVNFD.yaml + !----CompanyVNFD.xml + !----CompanyVNFD.mf + !----ChangeLog.txt + !-----Files + !-----Instance Data Files + !---- start.xml + !-----Licenses + !-----Scripts + !----- install.sh + + The NFVO will return a ZIP file of the following format: + !----CompanyVNFD.yaml + !----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml) + + This method shall follow the provisions specified in the tables 10.4.4.3.2-1 + and 10.4.4.3.2-2 for URI query parameters, request and response data structures, + nd response codes. parameters: - name: Accept description: > @@ -583,6 +723,15 @@ paths: in: header required: true type: string + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall include in the ZIP + archive the security information as specified above. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + type: string responses: 200: description: > @@ -628,22 +777,14 @@ paths: $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". + # 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" @@ -655,13 +796,13 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" ############################################################################### - # VNF package content # + # Manifest in an individual VNF package # ############################################################################### - '/vnf_packages/{vnfPkgId}/package_content': + '/vnf_packages/{vnfPkgId}/manifest': parameters: - name: vnfPkgId description: > - Identifier of the VNF package. The identifier is + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or @@ -671,22 +812,25 @@ paths: 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. + Query VNF Package Manifest + + The GET method reads the content of the manifest within a VNF package. + This method shall follow the provisions specified in the tables 10.4.4a.3.2-1 + and 10.4.4a.3.2-2 for URI query parameters, request and response data structures, + and response codes. parameters: - name: Accept description: > Content-Types that are acceptable for the response. + 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. @@ -694,68 +838,48 @@ paths: 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 + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall return the manifest and related security + information (such as certificate) in a ZIP archive. + If this parameter is not given, the NFVO shall provide only a copy of the manifest file. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + 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 + Shall be returned when the content of the manifest has been read successfully. + If the "include_signatures" URI query parameter was absent in the request, + or if the manifest file has all security-related information embedded + (i.e. there is no separate certificate file), the payload body shall contain + a copy of the manifest file of the VNF package and the "Content-Type" HTTP + header shall be set to "text/plain". - If the 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. + If the "include_signatures" URI query parameter was present in the related + request and the manifest file does not have all the security-related + information embedded (i.e. there is a separate certificate file), + the "Content-Type" HTTP header shall be set to "application/zip and the + payload body shall contain a ZIP archive which includes: + • a copy of the manifest file of the VNF package; + • a copy of the related individual certificate file. headers: - Content-Range: - type: string - maximum: 1 - minimum: 1 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: @@ -785,20 +909,8 @@ paths: 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" @@ -807,7 +919,7 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - '/onboarded_vnf_packages/{vnfdId}/package_content': + '/onboarded_vnf_packages/{vnfdId}/manifest': parameters: - name: vnfdId description: > @@ -820,22 +932,25 @@ paths: 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. + Query VNF Package Manifest + + The GET method reads the content of the manifest within a VNF package. + This method shall follow the provisions specified in the tables 10.4.4a.3.2-1 + and 10.4.4a.3.2-2 for URI query parameters, request and response data structures, + and response codes. parameters: - name: Accept description: > Content-Types that are acceptable for the response. + 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. @@ -843,68 +958,48 @@ paths: 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 + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall return the manifest and related security + information (such as certificate) in a ZIP archive. + If this parameter is not given, the NFVO shall provide only a copy of the manifest file. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + 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 + Shall be returned when the content of the manifest has been read successfully. + If the "include_signatures" URI query parameter was absent in the request, + or if the manifest file has all security-related information embedded + (i.e. there is no separate certificate file), the payload body shall contain + a copy of the manifest file of the VNF package and the "Content-Type" HTTP + header shall be set to "text/plain". - If the 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. + If the "include_signatures" URI query parameter was present in the related + request and the manifest file does not have all the security-related + information embedded (i.e. there is a separate certificate file), + the "Content-Type" HTTP header shall be set to "application/zip and the + payload body shall contain a ZIP archive which includes: + • a copy of the manifest file of the VNF package; + • a copy of the related individual certificate file. headers: - Content-Range: - type: string - maximum: 1 - minimum: 1 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: @@ -934,20 +1029,8 @@ paths: 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" @@ -957,22 +1040,10 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" ############################################################################### - # Individual VNF package artifact # + # VNF package content # ############################################################################### - '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': + '/vnf_packages/{vnfPkgId}/package_content': 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: vnfPkgId description: > Identifier of the VNF package. The identifier is @@ -985,10 +1056,20 @@ paths: required: true get: description: > - Fetch VNF Package Artifacts. - The GET method fetches the content of an artifact within a 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. + The content of the package is provided as onboarded, i.e. depending on + the security option used, the CSAR or the CSAR wrapped in a ZIP archive + together with an external signature is returned, as defined in clause + 5.1 of ETSI GS NFV-SOL 004. + + NOTE: Information about the applicable security option can be obtained + by evaluating the "packageSecurityOption" attribute in the "VnfPkgInfo" + structure. + This method shall follow the provisions specified in the tables - 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request + 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 @@ -997,6 +1078,9 @@ paths: in: header required: true type: string + enum: + - text/plain + - application/zip - name: Authorization description: > The authorization token for the request. @@ -1009,8 +1093,10 @@ paths: 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. + + If the "Range" header is present in the request and the NFVO + does not support responding to range requests with a 206 response, + it shall return a 200 OK response instead as defined below. in: header type: string - name: Version @@ -1024,19 +1110,13 @@ paths: description: > 200 OK - Shall be returned when the whole content of the artifact file has been read successfully. - The payload body shall contain a copy of the artifact file from the VNF package, - as defined by ETSI GS NFV-SOL 004. - The "Content-Type" HTTP header shall be set according to the content type of the artifact file. - If the content type cannot be determined, the header shall be set to the value "application/octet-stream". + Shall be returned when the whole content of the 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. - 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". + description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 @@ -1058,16 +1138,12 @@ paths: 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. + 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 @@ -1105,25 +1181,20 @@ paths: 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". - The response body shall contain a ProblemDetails structure, - in which the "detail" attribute shall convey more information - about the error. +# description: > +# 409 CONFLICT +# +# Shall be returned upon the following error: The operation cannot be executed currently, +# due to a conflict with the state of the resource. +# Typically, this is due to the fact 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 artifact file - (e.g. "access after end of file"). - The response body may contain a ProblemDetails structure. +# 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" @@ -1132,20 +1203,8 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - '/onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}': + '/onboarded_vnf_packages/{vnfdId}/package_content': 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. @@ -1157,10 +1216,20 @@ paths: required: true get: description: > - Fetch VNF Package Artifacts. - The GET method fetches the content of an artifact within a 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. + The content of the package is provided as onboarded, i.e. depending on + the security option used, the CSAR or the CSAR wrapped in a ZIP archive + together with an external signature is returned, as defined in clause + 5.1 of ETSI GS NFV-SOL 004. + + NOTE: Information about the applicable security option can be obtained + by evaluating the "packageSecurityOption" attribute in the "VnfPkgInfo" + structure. + This method shall follow the provisions specified in the tables - 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request + 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 @@ -1169,7 +1238,514 @@ paths: in: header required: true type: string - - name: Authorization + 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 "Range" header is present in the request and the NFVO + does not support responding to range requests with a 206 response, + it shall return a 200 OK response instead as defined below. + 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" + + ############################################################################### + # VNF package artifacts # + ############################################################################### + '/vnf_packages/{vnfPkgId}/artifacts': + parameters: + - name: vnfPkgId + description: > + Identifier of the VNF package. The identifier is allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" attribute in the + VnfPackageOnboardingNotification or VnfPackageChangeNotification + in: path + required: true + type: string + get: + description: > + Fetch VNF Package Artifacts. + + The GET method shall return an archive that contains a set of artifacts + according to the provisions for inclusion/exclusion defined below, + embedded in a directory structure being the same as in the VNF package. + The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: + - Artifacts that are software images shall be excluded from the archive. + - Artifacts that are external to the VNF package shall be excluded from the archive. + - All additional artifacts included in the VNF package that are MANO artifacts shall + be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts" + has been provided, in which case such artifacts shall be excluded. + - All additional artifacts included in the VNF package that are non-MANO artifacts + shall be included in the archive, unless: +  the URI query parameter "exclude_all_non_mano_artifacts" has been provided, + in which case such artifacts shall be excluded; +  the URI query parameter "select_non_mano_artifact_sets" has been provided and + is supported by the NFVO, in which case only those non-MANO artifacts shall be + included whose non-MANO artifact set identifier matches one of the values of the query parameter. + Package metadata such as manifest file or VNFD shall not be included in the archive. + This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and + 10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + The "Accept" HTTP header shall be set to "application/zip". + 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 archive containing + the artifact files has been read successfully. + The payload body shall be a ZIP archive containing the requested + set of artifacts selected according to the provisions specified above + in this clause, and, if the flag "include_signatures" was provided in + the related request, the applicable signature files and, if available, + the separate certificate files from the VNF package. + The "Content-Type" HTTP header shall be set to "application/zip". + headers: + Content-Type: + description: > + The MIME type of the body of the response. + 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 archive + that would have been returned in a "200 OK" response has been read + successfully according to the request. + The response body shall contain the requested part of the archive. + The "Content-Type" HTTP header shall be set to "application/zip". + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + 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 + 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/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}/artifacts': + 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 + required: true + type: string + get: + description: > + Fetch VNF Package Artifacts. + + The GET method shall return an archive that contains a set of artifacts + according to the provisions for inclusion/exclusion defined below, + embedded in a directory structure being the same as in the VNF package. + The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: + - Artifacts that are software images shall be excluded from the archive. + - Artifacts that are external to the VNF package shall be excluded from the archive. + - All additional artifacts included in the VNF package that are MANO artifacts shall + be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts" + has been provided, in which case such artifacts shall be excluded. + - All additional artifacts included in the VNF package that are non-MANO artifacts + shall be included in the archive, unless: +  the URI query parameter "exclude_all_non_mano_artifacts" has been provided, + in which case such artifacts shall be excluded; +  the URI query parameter "select_non_mano_artifact_sets" has been provided and + is supported by the NFVO, in which case only those non-MANO artifacts shall be + included whose non-MANO artifact set identifier matches one of the values of the query parameter. + Package metadata such as manifest file or VNFD shall not be included in the archive. + This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and + 10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + The "Accept" HTTP header shall be set to "application/zip". + 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 archive containing + the artifact files has been read successfully. + The payload body shall be a ZIP archive containing the requested + set of artifacts selected according to the provisions specified above + in this clause, and, if the flag "include_signatures" was provided in + the related request, the applicable signature files and, if available, + the separate certificate files from the VNF package. + The "Content-Type" HTTP header shall be set to "application/zip". + headers: + Content-Type: + description: > + The MIME type of the body of the response. + 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 archive + that would have been returned in a "200 OK" response has been read + successfully according to the request. + The response body shall contain the requested part of the archive. + The "Content-Type" HTTP header shall be set to "application/zip". + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + headers: + Content-Range: + type: string + maximum: 1 + minimum: 1 + 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 + 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/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" + + ############################################################################### + # Individual VNF package artifact # + ############################################################################### + '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': + parameters: + - name: artifactPath + description: > + SequenceFor an artifact contained as a file in the VNF package, + this variable shall contain a 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/m%40ster.sh + + For an external artifact represented as a URI in the VNF package + manifest, this variable shall contain a sequence of one or more path + segments as synthesized by the NFVO (see clause 10.5.3.3), + representing this artifact. + + Since multiple path segments are allowed to be contained in this variable, + the "/" character that separates these segments is not percent-encoded. + Each individual segment is percent-encoded if necessary as defined in clause + 4.1 of ETSI GS NFV-SOL 013. + in: path + type: string + required: true + - name: vnfPkgId + description: > + Identifier of the VNF package. The identifier is + allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" + attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. + in: path + type: string + required: true + get: + 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: > + 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 @@ -1181,8 +1757,9 @@ paths: 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. + If the "Range" header is present in the request and the NFVO + does not support responding to range requests with a 206 response, + it shall return a 200 OK response instead as defined below. in: header type: string - name: Version @@ -1191,16 +1768,40 @@ paths: in: header required: true type: string + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall return the artifact + and related security information (such as signature and optional + certificate) in a ZIP archive. + If this parameter is not given, the NFVO shall provide only a copy + of the artifact file. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + 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". + Shall be returned when the whole content of the artifact file has + been read successfully. + + If the "include_signatures" request URI parameter was not provided in + the related request, the payload body shall contain a copy of the artifact + file from the VNF package, as defined by ETSI GS NFV-SOL 004 and the "Content-Type" + HTTP header shall be set according to the content type of the artifact file. + If the artifact is encrypted, the header shall be set to the value "application/cms" + (IETF RFC 7193). If the content type cannot be determined, the header shall be set + to the value "application/octet-stream". + + If the "include_signatures" request URI parameter was provided in the related request, + the "Content-Type" HTTP header shall be set to "application/zip and the payload body + shall contain a ZIP archive which includes: + • a copy of the artifact file from the VNF package, as defined by ETSI GS NFV SOL 004; + • the related security information (individual signature file and optional related + individual certificate file). headers: Content-Type: description: > @@ -1230,9 +1831,10 @@ paths: 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 + If the NFVO supports range requests and the "include_signatures" request + URI parameter was not present in the related request, this response shall + be returned when a single consecutive byte range from the content of the + artifact file, 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. @@ -1277,25 +1879,232 @@ paths: 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". - The response body shall contain a ProblemDetails structure, - in which the "detail" attribute shall convey more information - about the error. +# description: > +# 409 CONFLICT +# +# Shall be returned upon the following error: The operation cannot +# be executed currently, due to a conflict with the state of the resource. +# Typically, this is due to the fact 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: > + SequenceFor an artifact contained as a file in the VNF package, + this variable shall contain a 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/m%40ster.sh + + For an external artifact represented as a URI in the VNF package + manifest, this variable shall contain a sequence of one or more path + segments as synthesized by the NFVO (see clause 10.5.3.3), + representing this artifact. + + Since multiple path segments are allowed to be contained in this variable, + the "/" character that separates these segments is not percent-encoded. + Each individual segment is percent-encoded if necessary as defined in clause + 4.1 of ETSI GS NFV-SOL 013. + 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: > + 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 "Range" header is present in the request and the NFVO + does not support responding to range requests with a 206 response, + it shall return a 200 OK response instead as defined below. + 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 + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall return the artifact + and related security information (such as signature and optional + certificate) in a ZIP archive. + If this parameter is not given, the NFVO shall provide only a copy + of the artifact file. + This URI query parameter is a flag, i.e. it shall have no value. + The NFVO shall support this parameter. + in: query + required: false + type: string + responses: + 200: + description: > + 200 OK + + Shall be returned when the whole content of the artifact file has + been read successfully. + + If the "include_signatures" request URI parameter was not provided in + the related request, the payload body shall contain a copy of the artifact + file from the VNF package, as defined by ETSI GS NFV-SOL 004 and the "Content-Type" + HTTP header shall be set according to the content type of the artifact file. + If the artifact is encrypted, the header shall be set to the value "application/cms" + (IETF RFC 7193). If the content type cannot be determined, the header shall be set + to the value "application/octet-stream". + + If the "include_signatures" request URI parameter was provided in the related request, + the "Content-Type" HTTP header shall be set to "application/zip and the payload body + shall contain a ZIP archive which includes: + • a copy of the artifact file from the VNF package, as defined by ETSI GS NFV SOL 004; + • the related security information (individual signature file and optional related + individual certificate file). + headers: + Content-Type: + description: > + The MIME type of the body of the response. + 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: > - 416 RANGE NOT SATISFIABLE + 206 PARTIAL CONTENT - 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. + If the NFVO supports range requests and the "include_signatures" request + URI parameter was not present in the related request, this response shall + be returned when a single consecutive byte range from the content of the + artifact file, 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 +# +# 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" @@ -1403,14 +2212,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. +# 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" diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index f48254f3ae31f4d6162e41de7428f3610e5fd535..efb7f5c8f3a337ff46b070dd2e025fed039c6d4f 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -8,8 +8,10 @@ definitions: type: object required: - id + - packageSecurityOption - operationalState - usageState + - vnfmInfo - _links properties: id: @@ -29,14 +31,14 @@ definitions: description: > Provider of the VNF package and the VNFD. This information is copied from the VNFD. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfProductName: description: > Name to identify the VNF product. Invariant for the VNF product lifetime. This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfSoftwareVersion: description: > Software version of the VNF. This is changed when there is any @@ -51,12 +53,32 @@ definitions: It shall be present after the VNF package content has been on-boarded and absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + compatibleSpecificationVersions: + description: > + Indicates which versions of the ETSI GS NFV-SOL 004 specification the + package complies to, as defined in the manifest of the package. + Each entry shall be formatted as defined in clause 4.3.2 of ETSI GS NFV-SOL 004. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" checksum: description: > Checksum of the on-boarded VNF package. It shall be present after the VNF package content has been on-boarded and absent otherwise. $ref: "#/definitions/Checksum" + packageSecurityOption: + description: > + Signals the security option used by the package as defined in clause 5.1 of ETSI GS NFV-SOL 004. + Valid values: OPTION_1, OPTION_2 + type: string + enum: + - OPTION_1 + - OPTION_2 + signingCertificate: + description: > + The singleton signing certificate if it is included as a file in the VNF package. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" softwareImages: description: > Information about VNF package artifacts that are software images. @@ -70,6 +92,12 @@ definitions: description: > Information about VNF package artifacts contained in the VNF package that are not software images. + Every local and external artifact declared in the manifest shall be + included, except the software images and the files that make up the + parts of the VNFD (see clause 10.4.4.3.2). + Signature files and certificate files are not considered as artifacts, + however, the content of the "Licenses" and "Testing" directories in the + VNF package is. This attribute shall not be present before the VNF package content is on-boarded. Otherwise, this attribute shall be present if the VNF package contains additional artifacts. @@ -94,10 +122,23 @@ definitions: "ONBOARDED", the value of the usageState attribute shall be equal to "NOT_IN_USE". $ref: "#/definitions/PackageUsageStateType" + vnfmInfo: + description: > + Specifies VNFMs compatible with the VNF. This information is copied from the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on + TOSCA specifications. userDefinedData: description: > User defined data for the VNF package. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + onboardingFailureDetails: + description: > + Failure details of current onboarding procedure. See clause 6.3 of ETSI GS NFV-SOL 013 + for the details of "ProblemDetails" structure. + If "onboardingState" is "ERROR", this attribute shall be present and contain error + information (such as failed onboarding or processing operation, affected artifact etc.), + unless it has been requested to be excluded via an attribute selector. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" _links: description: > Links to resources related to this resource. @@ -195,6 +236,7 @@ definitions: - provider - version - checksum + - isEncrypted - containerFormat - diskFormat - createdAt @@ -210,11 +252,11 @@ definitions: name: description: > Name of the software image. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" provider: description: > Provider of the software image. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" version: description: > Version of the software image. @@ -223,6 +265,10 @@ definitions: description: > Checksum of the software image file. $ref: "#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the image is encrypted (true) or not (false). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" containerFormat: description: > Container format indicates whether the software image is in a file @@ -300,7 +346,7 @@ definitions: description: > Path in the VNF package, which identifies the image artifact and also allows to access a copy of the image artifact. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" VnfPackageArtifactInfo: description: > @@ -310,20 +356,70 @@ definitions: required: - artifactPath - checksum + - isEncrypted 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 "/". + Path in the VNF package, which identifies the artifact and + also allows to access a copy of the artifact. The - EXAMPLE: foo/bar/run.sh - type: string + For an artifact contained as a file in the VNF package, + this attribute shall be present, and the value of this + attribute shall start with the name of the first segment + in the path in the package, i.e. it shall not be prefixed + by path separator characters such as "." and "/". + + EXAMPLE: foo/bar/runm@ster.sh + + For an external artifact represented as a URI in the + VNF descriptor, this attribute shall be present if the + artifact has been downloaded by the NFVO and shall be + absent otherwise. If present, it shall contain the + artifactPath under which the artifact can be obtained + using the "Individual artifact in a VNF package" resource + defined in clause 10.4.6. It is the responsibility of the + NFVO to synthesize this path in a manner that avoids any + collision of the synthesized artifact path with the paths + and names of artifacts included in the package. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" checksum: description: > Checksum of the artifact file. $ref: "#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the artifact is encrypted (true) or not (false). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" + artifactURI: + description: > + URI of the artifact as defined in the VNF package manifest. + Shall be present if the artifact is external to the package + and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.sh + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" + nonManoArtifactSetId: + description: > + Non-MANO artifact set identifier of the non-MANO artifact set to + which the artifact belongs, as defined in clause 4.3.7 of ETSI GS NFV-SOL 004. + Shall be provided if the artifact is a non-MANO artifact, and shall be omitted otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + artifactClassification: + description: > + Marks specific types of artifacts as defined in the VNF package. + If none of the specific classes listed below applies, the attribute shall not be present. + + Valid values: + - HISTORY: a history artifact as per clause 4.3.3 in ETSI GS NFV-SOL 004 + - TESTING: a testing artifact as per clause 4.3.4 in ETSI GS NFV-SOL 004 + - LICENSE: a license artifact as per clause 4.3.5 in ETSI GS NFV-SOL 004 + type: string + enum: + - HISTORY + - TESTING + - LICENSE metadata: description: > The metadata of the artifact that are available in the VNF package, @@ -374,7 +470,7 @@ definitions: vnfProvider: description: > Name of the VNF provider to match. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfProducts: description: > If present, match VNF packages that contain VNF products with @@ -388,7 +484,7 @@ definitions: vnfProductName: description: > Name of the VNF product to match. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" versions: description: > If present, match VNF packages that contain VNF products @@ -439,18 +535,24 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" operationalState: description: > - Match particular operational state of the VNF package. + Match particular operational states 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. + Match particular usage states of the VNF package. May be present if the "notificationTypes" attribute contains the value "VnfPackageChangeNotification", and shall be absent otherwise. $ref: "#/definitions/PackageUsageStateType" + vnfmInfo: + description: > + Match strings that specify VNFMs compatible with the VNF. See table 10.5.2.2-1. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" Checksum: description: > @@ -464,19 +566,19 @@ definitions: 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 + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" hash: description: > The hexadecimal value of the checksum. - type: string + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/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). + the creation of new "Individual VNF instance" resources. + - DISABLED: The VNF package is disabled, i.e. it shall not be used for + the creation of further "Individual VNF instance" resources + (unless and until the VNF package is re-enabled). type: string enum: - ENABLED @@ -497,12 +599,14 @@ definitions: 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. + validation. + ONBOARDED: The associated VNF package content has been on-boarded successfully. + ERROR: There was an error during upload of the VNF package content or external + artifacts, or during VNF package processing. type: string enum: - CREATED - UPLOADING - PROCESSING - - ONBOARDED \ No newline at end of file + - ONBOARDED + - ERROR \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 89c29219afa77fcb2264406396dc5e42f1ccf505..664b2b156711cf05029fabcd0c13c2e4943d6c8f 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Package Management Notification interface description: > SOL003 - VNF Package Management Notification interface @@ -25,10 +25,10 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf -basePath: "/callback/v1" +basePath: "/callback/v2" schemes: - https @@ -116,7 +116,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client + The GET method allows the server to test the notification endpoint that is provided by the API consumer e.g. during subscription. This method shall follow the provisions specified in the tables 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. @@ -249,7 +249,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client + The GET method allows the server to test the notification endpoint that is provided by the API consumer e.g. during subscription. This method shall follow the provisions specified in the tables 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. diff --git a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml index 7f70a1086c9bc985aa16664f974e3c6cda415826..52d66fe316ae85d6dad8aa888026ba6359edc6fd 100644 --- a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml +++ b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml @@ -18,6 +18,7 @@ definitions: - timeStamp - vnfPkgId - vnfdId + - vnfmInfo - _links properties: id: @@ -54,6 +55,13 @@ definitions: 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" + vnfmInfo: + description: > + Specifies VNFMs compatible with the VNF. + This information is copied from the VNFD. See table 10.5.2.2-1. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" _links: description: > Links to resources related to this notification. @@ -72,7 +80,8 @@ definitions: * 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. + * The on-boarded VNF package has been deleted, and the "onboardingState" + attribute of the deleted package had the value "ONBOARDED". type: object required: - id diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 390c370617e21bc04fd612f7627acecd110d1895..5439f47e85f22aaea447551a7acace3ce89675b8 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Performance Management interface description: > SOL003 - VNF Performance Management interface @@ -25,10 +25,10 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf -basePath: "/vnfpm/v1" +basePath: "/vnfpm/v2" schemes: - https @@ -147,10 +147,10 @@ paths: get: description: > Query PM Job. - The client can use this method to retrieve information about PM jobs. + The API consumer can use this method to retrieve information about PM jobs. 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. + The API consumer can use this method to retrieve information about PM jobs. parameters: - name: Accept description: > @@ -205,7 +205,7 @@ paths: 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: - - Reports + - reports in: query required: false type: string @@ -310,7 +310,7 @@ paths: get: description: > Query PM Job. - The client can use this method for reading an individual PM job. + The API consumer can use this method for reading an individual PM job. 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: @@ -387,6 +387,80 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + patch: + description: > + This method allows to modify an "individual PM job" resource. + This method shall follow the provisions specified in the tables + 6.4.3.3.4-1 and 6.4.3.3.4-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: + 200: + description: > + 200 OK + + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "PmJobModifications". + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications" + 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" + delete: description: > Delete PM Job. @@ -471,7 +545,7 @@ paths: required: true get: description: > - The client can use this method for reading an individual performance report. + The API consumer 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: @@ -556,7 +630,7 @@ paths: post: description: > Create Threshold. - The POST method can be used by the client to create a threshold. + The POST method can be used by the API consumer to create a threshold. This method shall follow the provisions specified in the 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 @@ -658,7 +732,7 @@ paths: get: description: > Query Threshold. - The client can use this method to query information about thresholds. + The API consumer 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: @@ -790,7 +864,7 @@ paths: get: description: > Query Threshold. - The client can use this method for reading an individual threshold + The API consumer can use this method for reading an individual threshold This method shall follow the provisions specified in the tables 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: @@ -866,332 +940,13 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" - delete: - description: > - 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: > - 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 - - The threshold was deleted 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" - 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': - #SOL003 location: 6.4.7 - post: - description: > - Subscribe. - The POST method creates a new subscription. - 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: > - Details of the subscription to be created. - in: body - required: true - schema: - $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" - - 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: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 201: - description: > - 201 CREATED - - 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 - type: string - format: url - Content-Type: - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" - 303: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" - 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" - - get: - description: > - 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: > - 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: filter - description: > - 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 - 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 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - in: query - 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 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: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - 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 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" - 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 subscription # - ############################################################################### - '/subscriptions/{subscriptionId}': - #SOL003 location: 6.4.8 - parameters: - - name: subscriptionId - 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 "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: + patch: description: > - 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. + This method allows to modify an "Individual threshold" resource. + This method shall follow the provisions specified in the tables + 6.4.6.3.4-1 and 6.4.6.3.4-2 for URI query parameters, request + and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - name: Authorization description: > The authorization token for the request. @@ -1210,9 +965,8 @@ paths: description: > 200 OK - 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. + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "ThresholdModifications". headers: Content-Type: description: > @@ -1236,7 +990,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdModifications" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1249,6 +1003,8 @@ paths: $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: @@ -1260,16 +1016,12 @@ paths: delete: description: > - 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 + 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 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. + As the result of successfully executing this method, the "Individual threshold" resource + shall not exist any longer. parameters: - name: Authorization description: > @@ -1289,7 +1041,7 @@ paths: description: > 204 NO CONTENT - Shall be returned when the "Individual subscription" resource has been deleted successfully. + The threshold was deleted successfully. The response body shall be empty. headers: WWW-Authenticate: @@ -1325,4 +1077,400 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" 504: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" \ No newline at end of file + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" + +# ############################################################################## +# # Subscriptions # +# ############################################################################## +# '/subscriptions': +# #SOL003 location: 6.4.7 +# post: +# description: > +# Subscribe. +# The POST method creates a new subscription. +# 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: > +# Details of the subscription to be created. +# in: body +# required: true +# schema: +# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" +# - 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: Content-Type +# description: > +# The MIME type of the body of the request. +# Reference: IETF RFC 7231 +# in: header +# required: true +# type: string +# - name: Version +# description: > +# Version of the API requested to use when responding to this request. +# in: header +# required: true +# type: string +# responses: +# 201: +# description: > +# 201 CREATED +# +# 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 +# type: string +# format: url +# Content-Type: +# description: > +# The MIME type of the body of the request. +# Reference: IETF RFC 7231 +# 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" +# 303: +# $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" +# 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" +# +# get: +# description: > +# 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: > +# 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: filter +# description: > +# 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 +# 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 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. +# in: query +# 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 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: > +# The MIME type of the body of the request. +# Reference: IETF RFC 7231 +# 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 +# Link: +# description: > +# Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. +# type: string +# maximum: 1 +# minimum: 0 +# schema: +# type: array +# items: +# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" +# 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 subscription # +# ############################################################################### +# '/subscriptions/{subscriptionId}': +# #SOL003 location: 6.4.8 +# parameters: +# - name: subscriptionId +# 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 "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. +# 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: > +# 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 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: > +# The MIME type of the body of the request. +# Reference: IETF RFC 7231 +# 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" +# 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. +# 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: > +# The authorization token for the request. +# Reference: IETF RFC 7235 +# in: header +# required: false +# type: string +# - name: Version +# description: > +# Version of the API requested to use when responding to this request. +# in: header +# required: true +# type: string +# responses: +# 204: +# description: > +# 204 NO CONTENT +# +# Shall be returned when the "Individual subscription" resource has been deleted 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" +# 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 19268878c098f9f7c2466fbd178737bf7fca5496..c6be960ac619ebcea3d713c29cff8c69f3b0baeb 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Performance Management Notification interface description: > SOL003 - VNF Performance Management Notification interface @@ -25,10 +25,10 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - 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 + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf -basePath: "/callback/v1" +basePath: "/callback/v2" schemes: - https @@ -48,8 +48,8 @@ paths: description: > 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. + event from the API producer to an API consumer. + The API consumer shall have previously created an "Individual PM Job" or "Individual threshold" resource. 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: @@ -118,8 +118,8 @@ paths: 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 API consumer, + e.g. during the creation of the PM job or threshold resource. 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: @@ -182,7 +182,7 @@ paths: description: > Notify. The POST method delivers a notification regarding a performance management - event from the server to the client.API producer to an API consumer. + event from the API producer to an API consumer. The API consumer shall have previously created an "Individual subscription resource" with a matching filter. This method shall follow the provisions specified in the tables 6.4.9.3.1-1 and 6.4.9.3.1-2 for URI query parameters, request and response data structures, and response codes. @@ -252,7 +252,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the client, + The GET method allows the server to test the notification endpoint that is provided by the API consumer e.g. during subscription. This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 8acca4d042ecfdf26cd65daefb93863f81ca4155..457871e2460986850774baf82232765e3e4f4e80 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - Virtualised Resources Quota Available Notification interface description: > SOL003 - Virtualised Resources Quota Available 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.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf + description: ETSI GS NFV-SOL 003 V2.7.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf basePath: "/vrqan/v1" @@ -42,7 +42,7 @@ paths: ############################################################################### # API Versions # ############################################################################### - '/api-versions': + '/api_versions': $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### @@ -137,14 +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. +# 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" diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml index 7702495b0822760916506c668e467aaaeb3e6678..1a3ef0121a043049e2fea506316d1b73e62f4f8b 100644 --- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml @@ -72,7 +72,6 @@ definitions: required: - id - managedObjectId - - rootCauseFaultyResource - alarmRaisedTime - ackState - perceivedSeverity @@ -90,9 +89,16 @@ definitions: description: > Identifier of the affected VNF instance. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfcInstanceIds: + description: > + Identifiers of the affected VNFC instances. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" rootCauseFaultyResource: description: > The virtualised resources that are causing the VNF fault. + Shall be present if the alarm affects virtualized resources. $ref: "#/definitions/FaultyResourceInfo" alarmRaisedTime: description: > @@ -109,6 +115,11 @@ definitions: Time stamp indicating when the alarm was cleared. It shall be present if the alarm has been cleared. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + alarmAcknowledgedTime: + description: > + Time stamp indicating when the alarm was acknowledged. + It shall be present if the alarm has been acknowledged. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" ackState: description: > Acknowledgement state of the alarm. @@ -143,7 +154,7 @@ definitions: 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. + "correlatedAlarmId" are caused by this fault. type: boolean correlatedAlarmIds: description: > @@ -272,6 +283,7 @@ definitions: alarmClearedTime: description: > The time stamp indicating when the alarm was cleared. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" _links: description: > Links to resources related to this notification. @@ -295,7 +307,8 @@ definitions: rebuilt, e.g. if the VNFM detects its storage holding the alarm list is corrupted. The notification shall be triggered by the VNFM when the alarm list has - been rebuilt. + been rebuilt, e.g. because the VNFM has detected that its storage + holding the alarm list was corrupted. type: object required: - id @@ -357,9 +370,11 @@ definitions: New value of the "ackState" attribute in "Alarm". Permitted values: * ACKNOWLEDGED + * UNACKNOWLEDGED type: string enum: - ACKNOWLEDGED + - UNACKNOWLEDGED EventType: description: > diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index e1328e0d4ac1406e1fe0c11f4402c2af49cb0698..36baa3834c9a4670d52028c46fedba180d7619ce 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -199,6 +199,7 @@ definitions: Links for this resource. type: object required: + - vnfInstance - subscription properties: vnfInstance: diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 68547f2f88f9086f3ebb6069af75be07c9cac042..658fcdfb5048fddce4656bf1700c8b94279ae316 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -223,6 +223,24 @@ definitions: attribute from the VNFD in the VNF Package identified by the "vnfdId” attribute. $ref: "SOL002SOL003_def.yaml#/definitions/Version" + vnfcInfoModifications: + description: > + If present, this attribute signals modifications of certain + entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance", as defined + in clause 5.5.2.12 + type: array + items: + $ref: "#/definitions/VnfcInfoModifications" + vnfcInfoModificationsDeleteIds: + description: > + If present, this attribute signals the deletion of certain + entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance", as defined + in clause 5.5.2.12 + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" VnfLcmOpOcc: description: > @@ -486,7 +504,7 @@ definitions: description: > URI of this resource. $ref: "SOL002SOL003_def.yaml#/definitions/Link" - + ExtVirtualLinkInfo: type: object required: @@ -516,6 +534,7 @@ definitions: required: - id - vnfVirtualLinkDescId + - networkResource properties: id: description: > @@ -577,6 +596,13 @@ definitions: description: > Reference to the VirtualCompute resource. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + zoneId: + description: > + The identifier of the resource zone, as managed by the + resource management layer (typically, the VIM), where + the referenced VirtualCompute resource is placed. + Shall be provided if this information is available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" storageResourceIds: description: > References to the VirtualStorage resources. The value refers to a @@ -659,6 +685,13 @@ definitions: description: > Reference to the VirtualNetwork resource. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM), where the referenced + VirtualNetwork resource is placed. Shall be provided if this + information is available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" reservationId: description: > The reservation identifier applicable to the resource. It shall be @@ -700,6 +733,13 @@ definitions: description: > Reference to the VirtualStorage resource. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM), where the referenced + VirtualStorage resource is placed. Shall be provided if this + information is available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" reservationId: description: > The reservation identifier applicable to the resource. It shall be @@ -731,7 +771,7 @@ definitions: 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 + this attribute represents the identifier of 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. @@ -781,26 +821,6 @@ definitions: "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: > - Identifier of this link port as provided by the entity that - has created the link port. - $ref: 'SOL002SOL003_def.yaml#/definitions/Identifier' - resourceHandle: - description: > - 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 @@ -843,6 +863,7 @@ definitions: Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet. + At least one of "macAddress" or "ipAddresses" shall be present. type: array items: type: object @@ -895,7 +916,7 @@ definitions: the VIM. In case this attribute is present, IP addresses are bound to that subnet. - $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim" MonitoringParameter: type: object @@ -1017,6 +1038,24 @@ definitions: (for new and modified resources) or has been (for removed resources) available from the VIM. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + resourceDefinitionId: + description: > + The identifier of the "ResourceDefinition" in the granting exchange + related to the LCM operation occurrence. It shall be present when an + applicable GrantInfo for the granted resource exists. + The "resourceDefinitionId" attribute provides information to the API + consumer (i.e. the NFVO) to assist in correlating the resource changes + performed during the LCM operation with the granted resources in a + specific Grant exchange, which is identified by the "grantId" available + in the "Individual VNF lifecycle management operation occurrence" and + the "id" in the "Individual Grant". + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM), where the referenced VirtualNetwork + resource is placed. Shall be provided if this information is available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" metadata: description: > Metadata about this resource. @@ -1065,6 +1104,24 @@ definitions: (for new and modified resources) or has been (for removed resources) available from the VIM. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + resourceDefinitionId: + description: > + The identifier of the "ResourceDefinition" in the granting exchange + related to the LCM operation occurrence. It shall be present when an + applicable GrantInfo for the granted resource exists. + The "resourceDefinitionId" attribute provides information to the API + consumer (i.e. the NFVO) to assist in correlating the resource changes + performed during the LCM operation with the granted resources in a + specific Grant exchange, which is identified by the "grantId" available + in the "Individual VNF lifecycle management operation occurrence" and + the "id" in the "Individual Grant". + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM), where the referenced VirtualNetwork + resource is placed. Shall be provided if this information is available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" metadata: description: > Metadata about this resource. @@ -1210,7 +1267,7 @@ definitions: 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: + which represents an occurrence of one the following LCM operations: * Instantiation of the VNF * Scaling of the VNF instance (including auto-scaling) * Healing of the VNF instance (including auto-healing) @@ -1363,6 +1420,8 @@ definitions: 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. + Only information about external VL instances that have been added or + modified shall be provided. type: array items: $ref: "#/definitions/ExtVirtualLinkInfo" @@ -1370,8 +1429,8 @@ definitions: 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. + Shall be present if the "operationState" attribute is "FAILED_TEMP", "FAILED" + or "ROLLED_BACK" and shall be absent otherwise. $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" _links: description: > @@ -1484,4 +1543,51 @@ definitions: vnfcConfigurableProperties: description: > Changes of the configurable properties of the VNFC instance. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + VnfcInfo: + description: > + This type represents the information about a VNFC instance that is part of a VNF instance. It shall comply with the + provisions defined in table 5.5.3.23-1. + type: object + required: + - id + - vduId + - vnfcResourceInfoId + - vnfcState + properties: + id: + description: > + Identifier of the VNFC instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU information element in + the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfcResourceInfoId: + description: > + Identifier of the VnfcResourceInfo instance representing + the virtualised resources used by this VNFC instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfcState: + description: > + Identifier of the VnfcResourceInfo instance representing + the virtualised resources used by this VNFC instance. + State of the VNFC instance. + Permitted values: + • STARTED: The VNFC instance is up and + running. + • STOPPED: The VNFC instance has been shut down + type: string + enum: + - STARTED + - STOPPED + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfcConfigurableProperties: + description: > + Current values of the configurable properties of the + VNFC instance. + Configurable properties referred in this attribute are + declared in the VNFD. + This attribute can be modified with the PATCH method $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 61160e4ffb4ad6db374ae33d63b2b8e33ed7b5fb..9b6e1c4733b90ce00746d91069b6ffc7c42257ac 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -7,36 +7,104 @@ definitions: This type represents a request to create a threshold. type: object required: + - objectType - objectInstanceId - criteria + - callbackUri properties: + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string objectInstanceId: description: > Identifier of the VNF instance associated with this threshold. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with this threshold. + May be present if a sub-object is defined in clause 6.2 + of ETSI GS NFV-IFA 027 for the related measured object type. + If this attribute is absent and a sub-object is defined in + clause 6.2 of ETSI GS NFV-IFA 027 for the measured object type, + measurements will be taken for all sub-object instances of + the measured object instance. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" criteria: description: > Criteria that define this threshold. $ref: "#/definitions/ThresholdCriteria" + 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 threshold, + as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the API consumer requires + authorization of notifications. + $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" CreatePmJobRequest: description: > This type represents a request to create a PM job. type: object required: + - objectType + - objectInstanceIds - criteria + - callbackUri properties: + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string objectInstanceIds: description: > - Identifiers of the VNF instances for which performance information - is requested to be collected. + Identifiers of the measured object instances for + which performance information is requested to be collected. type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which performance information is requested to be collected. + May be present if a sub-object is defined in clause 6.2 + of ETSI GS NFV-IFA 027for the related measured object type. + If this attribute is present, the cardinality of the "objectInstanceIds" + attribute shall be 1. + If this attribute is absent and a sub-object is defined in clause 6.2 + of ETSI GS NFV IFA 027 for the related measured object type, measurements + will be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" criteria: description: > Criteria of the collection of performance information. $ref: "#/definitions/PmJobCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to configure the use of Authorization + when sending notifications corresponding to this PM job, as defined + in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the API consumer + requires authorization of notifications. + $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" CrossingDirectionType: type: string @@ -56,8 +124,8 @@ definitions: required: - id - notificationType - - subscriptionId - timeStamp + - objectType - objectInstanceId - _links properties: @@ -75,35 +143,44 @@ definitions: type: string enum: - PerformanceInformationAvailableNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" timeStamp: description: > Date and time of the generation of the notification. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string objectInstanceId: description: > - Identifier that identifies a VNF instance. + Identifier of the measured object instance. as per clause 6.2 of ETSI GS NFV-IFA 027. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which the measurements have been taken. + Shall be present if the related PM job has been set up to + measure only a subset of all sub-object instances of the + measured object instance and a sub-object is defined in clause + 6.2 of ETSI GS NFV-IFA 027 for the related measured object type. + Shall be absent otherwise. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" _links: description: > Links to resources related to this notification. type: object required: - - subscription - pmJob - performanceReport properties: - subscription: - description: > - Link to the related subscription. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" objectInstance: description: > - Link to the resource representing the VNF instance to which the - notified change applies. Shall be present if the VNF instance + Link to the resource representing the measured object instance to which the + notified change applies. Shall be present if the measured object instance information is accessible as a resource. $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" pmJob: @@ -124,6 +201,8 @@ definitions: of collecting performance information as part of a PM job. The type shall comply with the provisions defined in table 6.5.2.10-1. type: object + required: + - entries properties: entries: description: > @@ -141,23 +220,22 @@ definitions: properties: objectType: description: > - Defines the object type for which performance information is - reported (i.e. VNF type). The string value shall be set to the - vnfdId of the VNF instance to which the performance - information relates. + Type of the measured object. + The applicable measured object type for a measurement is defined + in clause 7.2 of ETSI GS NFV-IFA 027. type: string objectInstanceId: description: > - The object instance (i.e. VNF instance) for which the - performance metric is reported. + Identifier of the measured object instance for which the performance metric is reported $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" subObjectInstanceId: description: > - Identifier of the sub-object of the measured object (i.e. a VNFC instance) + Identifier of the sub-object instance of the measured object (i.e. of the measured object instance) for which the performance metric is reported. - Shall be present if this is required in the measurement specification. - The sub-object allows to structure the measured object, - but is not to be confused with sub-counters which allow to structure the measurement. + Shall be present if this is required in clause 6.2 of ETSI GS NFV-IFA 027 + for the related measured object type. + The sub-object allows to structure the measured object but is not to be confused + with sub-counters which allow to structure the measurement value. EXAMPLE: Measured object: VnfInstanceXYZ Sub-object: VnfcInstance1 @@ -178,7 +256,7 @@ definitions: type: object required: - timeStamp - - performanceValue + - value properties: timeStamp: description: > @@ -190,6 +268,12 @@ definitions: The type of this attribute shall correspond to the related "Measurement Unit" as defined in clause 7.2. of ETSI GS NFV-IFA 027. type: object + context: + description: > + Measurement context information related to the measured value. + The set of applicable keys is defined per measurement in the + related "Measurement Context" in clause 7.2 of ETSI GS NFV-IFA 027. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" PmJob: description: > @@ -197,13 +281,23 @@ definitions: type: object required: - id + - objectType - objectInstanceIds - criteria + - callbackUri + - _links properties: id: description: > Identifier of this PM job. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: + string objectInstanceIds: description: > Identifiers of the VNF instances for which performance information @@ -211,10 +305,28 @@ definitions: type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which performance information is requested to be collected. + May be present if a sub-object is defined in clause 6.2 of + ETSI GS NFV-IFA 027 for the related measured object type. + If this attribute is present, the cardinality of the "objectInstanceIds" + attribute shall be 1. + If this attribute is absent and a sub-object is defined in clause 6.2 of + ETSI GS NFV IFA 027 for the related measured object type, measurements will + be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" criteria: description: > Criteria of the collection of performance information. $ref: "#/definitions/PmJobCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" reports: description: > Information about available reports collected by this PM job. @@ -222,11 +334,10 @@ definitions: required: - href - readyTime - - _links properties: href: description: > - The Uri where the report can be obtained. + The URI where the report can be obtained. type: string format: url readyTime: @@ -240,8 +351,11 @@ definitions: fileSize: description: > The size of the report file in bytes, if known. - type: integer - # TODO: How to express unsigned int? + type: integer + minimum: 0 + maximum: 1024 + # TODO: How to express unsigned int? + # Done using min and max params to set a range for positive int. _links: description: > Links for this resource. @@ -255,23 +369,35 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" objects: description: > - Links for this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/Link" - objects: - description: > - Links to resources representing the VNF instances for which - performance information is collected. Shall be present if - the VNF instance information is accessible as a resource. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/Link" + Links to resources representing the measure + object instances for which performance + information is collected. Shall be present if the + measured object instance information is + accessible as a resource. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + + PmJobModifications: + description: > + This type represents modifications to a PM job. + It shall comply with the provisions defined in table 6.5.2.12-1. + type: object + properties: + callbackUri: + description: > + New value of the "callbackUri" attribute. + The value "null" is not permitted. See note. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" + authentication: + description: > + New value of the "authentication" attribute, or "null" + to remove the attribute. If present in a request body, + these modifications shall be applied according to the + rules of JSON Merge PATCH. + This attribute shall not be present in response bodies. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" PmJobCriteria: description: > @@ -312,7 +438,10 @@ definitions: collection periods within one reporting period are reported together. type: integer + minimum: 0 + maximum: 1024 # TODO: How to express unsigned int? + # Done using min and max params to set a range for positive int. reportingPeriod: description: > Specifies the periodicity at which the producer will report to the @@ -325,7 +454,10 @@ definitions: collection periods within one reporting period are reported together. type: integer + minimum: 0 + maximum: 1024 # TODO: How to express unsigned int? + # Done using min and max params to set a range for positive int. reportingBoundary: description: > Identifies a time boundary after which the reporting will stop. @@ -333,115 +465,53 @@ definitions: reporting up to the boundary. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" - PmNotificationsFilter: - description: > - This type represents a filter that can be used to subscribe for - notifications related to performance management events. - type: object - properties: - vnfInstanceSubscriptionFilter: - description: > - Filter criteria to select VNF instances about which to notify. - $ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter" - notificationTypes: - description: > - Match particular notification types. - Permitted values: - * ThresholdCrossedNotification - * PerformanceInformationAvailableNotification - The permitted values of the "notificationTypes" attribute are - spelled exactly as the names of the notification types to facilitate - automated code generation systems. - type: string - enum: - - ThresholdCrossedNotification - - PerformanceInformationAvailableNotification - - PmSubscription: - description: > - This type represents a subscription. - type: object - required: - - id - - callbackUri - - _links - properties: - id: - description: > - Identifier that identifies the subscription. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - filter: - description: > - Filter settings for this subscription, to define the subset of all - notifications this subscription relates to. A particular - notification is sent to the subscriber if the filter matches, or if - there is no filter. - $ref: "#/definitions/PmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - type: string - format: url - _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" - - PmSubscriptionRequest: - description: > - This type represents a subscription request. - type: object - required: - - callbackUri - properties: - filter: - description: > - Filter settings for this subscription, to define the subset of all - notifications this subscription relates to. A particular - notification is sent to the subscriber if the filter matches, or if - there is no filter. - $ref: "#/definitions/PmNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - type: string - format: url - 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" - Threshold: description: > This type represents a threshold. type: object required: - id + - objectType - objectInstanceId - criteria + - callbackUri - _links properties: id: description: > Identifier of this threshold resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement + is defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string objectInstanceId: description: > Identifier of the VNF instance associated with the threshold. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance associated with the threshold. + May be present if a sub-object is defined in clause 6.2 of + ETSI GS NFV-IFA 027 for the related measurement type. + If this attribute is absent and a sub-object is defined in clause 6.2 + of ETSI GS NFV-IFA 027 for the related measured object type, + measurements will be taken for all sub-object instances of the + measured object instance. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" criteria: description: > Criteria that define this threshold. $ref: "#/definitions/ThresholdCriteria" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" _links: description: > Links for this resource. @@ -455,9 +525,31 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" object: description: > - Link to a resource representing the VNF instance for which + Link to a resource representing the measured object instance for which performance information is collected. Shall be present if the - VNF instance information is accessible as a resource. + measured object instance information is accessible as a resource. + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + + ThresholdModifications: + description: > + This type represents modifications to a threshold. + It shall comply with the provisions defined in table 6.5.2.11-1. + type: object + properties: + callbackUri: + description: > + New value of the "callbackUri" attribute. + The value "null" is not permitted. See note. + $ref: "SOL002SOL003_def.yaml#/definitions/Uri" + authentication: + description: > + New value of the "authentication" attribute, or "null" + to remove the attribute. If present in a request body, + these modifications shall be applied according to the + rules of JSON Merge PATCH. + This attribute shall not be present in response bodies. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" ThresholdCriteria: description: > @@ -497,8 +589,10 @@ definitions: description: > The threshold value. Shall be represented as a floating point number. - # TODO: This should be floating. - type: integer + # TODO: This should be floating. + # Done using Number type and floating formate + type: number + format: float hysteresis: description: > The hysteresis of the threshold. Shall be represented as a @@ -513,8 +607,13 @@ definitions: threshold, implementations should enforce a suitable minimum value for this attribute (e.g. override the value or reject the request). - # TODO: This should be floating. - type: integer + # TODO: This should be floating. + # Done using Number type and floating format. + type: number + minimum: 0 + maximum: 1024 + format: float + ThresholdCrossedNotification: description: > @@ -528,10 +627,10 @@ definitions: required: - id - notificationType - - subscriptionId - timeStamp - thresholdId - crossingDirection + - objectType - objectInstanceId - performanceMetric - performanceValue @@ -550,10 +649,6 @@ definitions: type: string enum: - ThresholdCrossedNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" timeStamp: description: > Date and time of the generation of the notification. @@ -567,6 +662,11 @@ definitions: An indication of whether the threshold was crossed in upward or downward direction. $ref: "#/definitions/CrossingDirectionType" + objectType: + description: > + Type of the measured object. + The applicable measured object type for a measurement is defined in clause 7.2 of ETSI GS NFV-IFA 027. + type: string objectInstanceId: description: > Identifier that identifies a VNF instance. @@ -591,22 +691,23 @@ definitions: The type of this attribute shall correspond to the related "Measurement Unit" as defined in clause 7.2 of ETSI GS NFV-IFA 027. type: object + context: + description: > + Measurement context information related to the measured value. + The set of applicable keys is defined per measurement in the + related "Measurement Context" in clause 7.2 of ETSI GS NFV-IFA 027. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > Links to resources related to this notification. type: object required: - - subscription - threshold properties: - subscription: - description: > - Link to the related subscription. - $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" objectInstance: description: > - Link to the resource representing the VNF instance to which the - notified change applies. Shall be present if the VNF instance + Link to the resource representing the measured object instance to which the + notified change applies. Shall be present if the measured object instance information is accessible as a resource. $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" threshold: diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index c1827f3777ffb27cdd3c3dafbbe8fdac1fd1b867..abd9749817fd3b5d1e7679d504d1055e5640fe54 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -243,6 +243,20 @@ definitions: body, sensitive attributes that are children of this attribute (such as passwords) shall be present if they have not been provisioned out of band. + + If applicable, this attribute also provides information about the + resourceGroupIds that are accessible using a particular set of credentials. + See definition of "resourceGroupId" in clause 9.5.3.3. + + Once the connectivity between VNFM and VIM is provided through a secure + connection over HTTP Secure (HTTP over SSL/TLS), and the connection might + also be established through a VPN (for example TLS-based VPN tunnelling) + for site-to-site connection, the "accessInfo" JSON data structure, + and the sensitive data related information ("username"/"password" as required + properties for authentication purpose), will be transmitted as plain text through + a TLS tunnel without additional encoding/encryption before transmitting it, + making the sensitive data visible to the endpoint. The base64 encoded certificates + are only used by the VNFM to verify the authenticity of the interface endpoint of the VIM. $ref: "#/definitions/KeyValuePairs" extra: description: > @@ -253,7 +267,6 @@ definitions: ResourceHandle: required: - - vimConnectionId - resourceId type: object description: > @@ -887,6 +900,18 @@ definitions: (for new and modified resources) or has been (for removed resources) available from the VIM. $ref: "#/definitions/ResourceHandle" + resourceDefinitionId: + description: > + The identifier of the "ResourceDefinition" in the granting exchange + related to the LCM operation occurrence. It shall be present when + an applicable GrantInfo for thegranted resource exists. See note. + $ref: "#/definitions/IdentifierLocal" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource management + layer (typically, the VIM), where the referenced VirtualCompute resource is placed. + Shall be provided if this information is available from the VIM. + $ref: "#/definitions/Identifier" metadata: description: > Metadata about this resource.