diff --git a/.gitignore b/.gitignore index b92d66299da73b0469424fb704da6e59b27e038c..cb8927b689a77178613cbcc429f4760b2a649b83 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build/ *.pyc +.idea/ diff --git a/Readme.md b/Readme.md index d6dc8fec7fec55d501d01827b45d4deabd281733..8572a8f9f299081a5a11fa56ffd3dc40515956bb 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,7 @@ # NFV SOL005 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf). +for the APIs defined in ETSI NFV GSs SOL005 v3.3.1. The APIs described in this repository are defined for the `Os-Ma-nfvo` reference point. diff --git a/docker/Dockerfile b/docker/Dockerfile index d9edc42ecfe35a3b7c9e78f4a8ee2134719dc57e..9b3d8380bbce4da5163ba8292cbefad5963ab448 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,7 @@ # Copyright ETSI 2017 # See: https://forge.etsi.org/etsi-forge-copyright-statement.txt -FROM alpine:3.6 +FROM alpine:3.10.0 RUN env RUN apk update @@ -16,9 +16,9 @@ RUN gem install rdoc --pre || gem install rdoc --pre RUN gem install asciidoctor-pdf-cjk RUN wget https://forge.etsi.org/swagger2markup-cli-1.3.2.jar RUN npm config set proxy $http_proxy -RUN npm install -g swagger-tools@0.10.3 -RUN npm install -g json-refs@3.0.2 -RUN npm install -g yamljs@0.3.0 +RUN npm install -g swagger-cli +RUN npm install -g json-refs +RUN npm install -g yamljs ADD validate-in-docker.sh /validate-in-docker.sh RUN chmod +x /validate-in-docker.sh diff --git a/docker/validate-in-docker.sh b/docker/validate-in-docker.sh index f6738fe7463048c500981af0adee99734266ca8d..765269d5003e6ae38f6a66490966f6834907426e 100755 --- a/docker/validate-in-docker.sh +++ b/docker/validate-in-docker.sh @@ -32,7 +32,7 @@ function validate_api () { mv "${deliverable}-${api}-API.pdf" "../build/" echo "--- Validating ${merged_file}" - swagger-tools validate "${merged_file}" + swagger-cli validate "${merged_file}" vres=$? echo "--- Validation done ($vres)." diff --git a/src/SOL005/APIVersion/APIVersion.yaml b/src/SOL005/APIVersion/APIVersion.yaml index 64736fc666076f15e7049152126763e29df360db..ec432b993f53827d0a2a69118ddd6d8826cdb682 100644 --- a/src/SOL005/APIVersion/APIVersion.yaml +++ b/src/SOL005/APIVersion/APIVersion.yaml @@ -1,50 +1,39 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - API version interface" - description: > - SOL005 - API version Interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been - approved by the ETSI NFV ISG. In case of discrepancies the published ETSI - Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + title: SOL005 - API version interface + description: | + SOL005 - API version Interface IMPORTANT: Please note that this file might be not aligned to the current version of + the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the + published ETSI Group Specification takes precedence. + Please report bugs to Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - contact: - name: "NFV-SOL WG" + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf - -schemes: - - http - - https - -consumes: - - application/json + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -produces: - - application/json +servers: + - url: http://127.0.0.1/ + - url: https://127.0.0.1/ paths: - ############################################################################### - # API Versions # - ############################################################################### - '/nsd/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /nsd/api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - '/nsfm/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /nsfm/api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - '/nslcm/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /nslcm/api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - '/nspm/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /nspm/api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - '/vnfpkgm/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' \ No newline at end of file + /vnfpkgm/api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions \ No newline at end of file diff --git a/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml b/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml new file mode 100644 index 0000000000000000000000000000000000000000..01d262a0be1547c409485ac334a7afd125f29d7b --- /dev/null +++ b/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml @@ -0,0 +1,978 @@ +openapi: 3.0.2 + +info: + title: SOL005 - NFVI Capacity Information Interface + description: | + SOL005 - NFVI Capacity Information Interface + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it + refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification + takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG + license: + name: ETSI Forge copyright notice + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + +externalDocs: + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf + +servers: + - url: http://127.0.0.1/nfvici/v1 + - url: https://127.0.0.1/nfvici/v1 + +paths: + /api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions + + /nfvi_capacity_infos: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query NFVI capacity information + description: | + The API consumer can use this method to retrieve information about NFVI capacity information. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "200": + $ref: '#/components/responses/NfviCapacityInfos.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /nfvi_capacity_infos/{vimId}: + parameters: + - $ref: '#/components/parameters/VimId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query NFVI capacity information for a specific VIM + description: | + The API consumer can use this method for reading an individual VIM’s NFVI capacity information. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "200": + $ref: '#/components/responses/NfviCapacityInfo.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /capacity_thresholds: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query NFVI capacity thresholds + description: | + This resource represents NFVI capacity thresholds. + The API consumer can use this resource to create and query NFVI capacity thresholds. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + responses: + "200": + $ref: '#/components/responses/CapacityThresholds.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + post: + summary: Create a NFVI capacity threshold + description: | + The POST method creates a new NFVI capacity threshold. + As a result of successfully executing this method, a new "Individual capacity threshold" resource as defined + in clause 10.4.5 shall have been created. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NfviCapacityThresholdRequest' + responses: + "201": + $ref: '#/components/responses/CapacityThresholds.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /capacity_thresholds/{capacityThresholdId}: + parameters: + - $ref: '#/components/parameters/CapacityThresholdId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query Individual NFVI capacity threshold + description: | + The API consumer can use this method for reading information about an NFVI capacity threshold. + This method shall follow the provisions specified in the tables 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query + parameters, request and response data structures, and response codes. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "200": + $ref: '#/components/responses/IndividualCapacityThreshold.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + patch: + summary: Modify an "Individual capacity threshold" resource + description: | + This method iallows to modify an "Individual capacity threshold" resource. + This method shall follow the provisions specified in the Tables 10.4.5.3.4-1 and 10.4.5.3.4-2 for URI query + parameters, request and response data structures, and response codes. + requestBody: + $ref: '#/components/requestBodies/IndividualNfviCapacityThresholdRequest' + responses: + "200": + $ref: '#/components/responses/IndividualCapacityThreshold.Patch' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "412": + $ref: ../responses/SOL005_resp.yaml#/components/responses/412 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + delete: + summary: Delete an NFVI capacity threshold + description: | + This method allows to delete an NFVI capacity threshold. + As a result of successfully executing this method, the "Individual capacity threshold" resource shall not exist + any longer. + responses: + "204": + $ref: '#/components/responses/IndividualCapacityThreshold.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /subscriptions: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query multiple subscriptions. + description: | + The API consumer can use this method to query the list of active subscriptions to NFVI capacity information + notifications subscribed by the API consumer. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + responses: + "200": + $ref: '#/components/responses/NfviCiSubscriptions.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + post: + summary: Create an NFVI capacity subscription + description: | + The POST method creates a new subscription. + This method shall follow the provisions specified in the Tables 10.4.6.3.1-1 and 10.4.6.3.1-2 for URI query + parameters, request and response data structures, and response codes. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NfviCapacitySubscriptionRequest' + responses: + "201": + $ref: '#/components/responses/NfviCiSubscriptions.Post' + "303": + $ref: ../responses/SOL005_resp.yaml#/components/responses/303 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + callbacks: + CapacityShortageNotification: + $ref: '#/components/callbacks/CapacityShortageNotification' + + + /subscriptions/{subscriptionId}: + parameters: + - $ref: '#/components/parameters/SubscriptionId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Read an individual subscription resource + description: | + The API consumer can use this method for reading an individual subscription about NFVI capacity information + notifications subscribed by the API consumer. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "200": + $ref: '#/components/responses/NfviCiSubscription.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + delete: + summary: Terminate a subscription. + description: | + This method terminates an individual subscription. + This method shall follow the provisions specified in the Tables 10.4.7.3.5-1 and 10.4.7.3.5-2 for URI query + parameters, request and response data structures, and response codes. + responses: + "204": + $ref: '#/components/responses/NfviCiSubscription.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + +components: + parameters: + VimId: + name: vimId + in: path + description: | + Identifier of the VIM with associated NFVI capacity information. + This identifier can be retrieved from the "vimId" attribute in the CapacityShortageNotification. + It can also be retrieved from the "vimId" attribute in the payload body of the response. + required: true + style: simple + explode: false + schema: + type: string + + CapacityThresholdId: + name: capacityThresholdId + in: path + description: | + Identifier of the capacity threshold. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to + a POST request creating a new "Individual capacity threshold" resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + + SubscriptionId: + name: subscriptionId + in: path + description: | + Identifier of the subscription. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a + POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the payload + body of that response. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + NfviCapacityThresholdRequest: + description: | + Request parameters to create a new "Individual capacity threshold" resource. + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CreateCapacityThresholdRequest + required: true + + IndividualNfviCapacityThresholdRequest: + description: | + Parameters for the capacity threshold modification. + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications + required: true + + NfviCapacitySubscriptionRequest: + description: | + Details of the subscription to be created. + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfoSubscriptionRequest + required: true + + CapacityShortageNotificationRequest: + description: | + Notification about the available NFVI capacity having crossed below a threshold value or having re-covered from + a capacity shortage. + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityShortageNotification + required: true + + responses: + NfviCapacityInfos.Get: + description: | + Shall be returned when information about NFVI capacity information has been queried successfully. + The response body shall contain NFVI capacity information, as defined in clause 10.5.2.4. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clauses 5.2.2 of ETSI GS NFV-SOL 013. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfo + + NfviCapacityInfo.Get: + description: | + Shall be returned when information of an individual VIM’s NFVI capacity has been read successfully. + The response body shall contain a representation of the NFVI capacity information, as defined in clause 10.5.2.4. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfo + + CapacityThresholds.Get: + description: | + Shall be returned when information about zero or more capacity thresholds has been queried successfully. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + The response body shall contain in an array the representations of zero or more capacity thresholds, as + defined in clause 10.5.2.8. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold + + CapacityThresholds.Post: + description: | + Shall be returned when a capacity threshold has been created successfully. + The response body shall contain a representation of the created "Individual capacity threshold" resource, + as defined in clause 10.5.2.8. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold + + IndividualCapacityThreshold.Get: + description: | + Shall be returned when information about an individual capacity threshold has been read successfully. + The response body shall contain in a representation of the capacity threshold, as defined in clause 10.5.2.8. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold + + IndividualCapacityThreshold.Patch: + description: | + 200 OK + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "CapacityThresholdModifications". + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications + + IndividualCapacityThreshold.Delete: + description: | + Shall be returned when the NFVI capacity threshold has been deleted successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + NfviCiSubscriptions.Get: + description: | + 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 NFVI capacity information subscriptions, + as defined in clause 10.5.2.9. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfoSubscription + + NfviCiSubscriptions.Post: + description: | + Shall be returned when the subscription has been created successfully. + A representation of the created subscription resource shall be returned in the response body, as defined in + clause 10.5.2.9. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created subscription + resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfoSubscription + + NfviCiSubscription.Get: + description: | + Shall be returned when the subscription has been read successfully. + The response body shall contain a representation of the subscription resource, as defined in clause 10.5.2.9. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfoSubscription + + NfviCiSubscription.Delete: + description: | + Shall be returned when the subscription resource has been deleted successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + CapacityShortageNotification.Post: + description: | + Shall be returned when the notification has been delivered successfully. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + CapacityShortageNotification.Get: + description: | + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + callbacks: + CapacityShortageNotification: + '{$request.body#/callbackUri}': + description: >- + This resource represents a notification endpoint for NFVI capacity information. + The API producer can use this resource to send notifications related to log management events to a + subscribed API consumer, which has provided the URI of this resource during the capacity threshold + creation process. + post: + description: >- + The POST method delivers a notification regarding an NFVI capacity information event from the API producer + to an API consumer. The API consumer shall have previously created an "Individual capacity threshold" resource" + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + requestBody: + $ref: "#/components/requestBodies/CapacityShortageNotificationRequest" + responses: + "204": + $ref: '#/components/responses/CapacityShortageNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + get: + description: >- + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during creation of the capacity threshold resource. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + responses: + "204": + $ref: '#/components/responses/CapacityShortageNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 \ No newline at end of file diff --git a/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml b/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..75885475e1e35a0861438f6311c545023d3d1b34 --- /dev/null +++ b/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml @@ -0,0 +1,457 @@ +components: + schemas: + NfviCapacityInfo: + type: object + description: | + This type defines the format of the NFVI capacity information. The type shall comply with the provisions defined + in Table 10.5.2.4-1. + required: + - id + - vimId + - capacityInfoPerZone + properties: + id: + description: | + Identifier of this NFVI capacity information. Its value shall be the same as vimId. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + vimId: + description: | + Identifies the VIM to which the NFVI capacity information is associated. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + capacityInfoPerZone: + description: | + Capacity information on a per resource zone basis under control by the associated VIM. + type: array + items: + $ref: '#/components/schemas/NfviCapacityInfoPerZone' + totalCapacityInfo: + description: | + Total capacity information associated to the VIM. + $ref: '#/components/schemas/NfviCapacityMeasurement' + timeInterval: + description: | + Time interval of the NFVI capacity information. + $ref: '#/components/schemas/TimeInterval' + + CapacityThreshold: + type: object + description: | + This type represents a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. + required: + - id + - objectInstanceId + - criteria + - callbackUri + - _links + properties: + id: + description: | + Identifier of this capacity threshold resource. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + objectInstanceId: + description: | + Identifier of the VIM instance associated with the capacity threshold. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + subObjectInstanceIds: + description: | + Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. + If this attribute is absent, measurements are taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim + criteria: + description: | + Criteria that define this capacity threshold. + $ref: '#/components/schemas/CapacityThresholdCriteria' + callbackUri: + description: | + The URI of the endpoint to send the notification to. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri + _links: + type: object + description: | + Links for this resource. + required: + - self + properties: + self: + description: | + URI of this resource. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Link + object: + description: | + Link to a resource representing the VIM’s NFVI capacity information. Shall be present if the VIM’s NFVI + capacity information is accessible as a resource. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Link + + CreateCapacityThresholdRequest: + type: object + description: | + This type represents a request to create a capacity threshold. It shall comply with the provisions defined in + table 10.5.2.3-1. + required: + - objectInstanceId + - criteria + properties: + objectInstanceId: + description: | + Identifier of the VIM instance associated with this capacity threshold. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + subObjectInstanceIds: + description: | + Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. + If this attribute is absent, measurements will be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim + criteria: + description: | + Criteria that define this capacity threshold. + $ref: '#/components/schemas/CapacityThresholdCriteria' + callbackUri: + description: | + The URI of the endpoint to send the notification to. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri + authentication: + description: | + Authentication parameters to configure the use of Authorization when sending notifications corresponding to + this capacity threshold, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the API consumer requires authorization of notifications. + $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication + + NfviCapacityInfoSubscription: + type: object + description: | + This type represents a subscription. It shall comply with the provisions defined in Table 10.5.2.9-1. + required: + - id + - callbackUri + - _links + properties: + id: + description: | + Identifier that identifies the subscription. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + filter: + description: | + Filter settings for this subscription, to define the subset of all notifications this subscription relates to. + A particular notification is sent to the subscriber if the filter matches, or if there is no filter. + $ref: '#/components/schemas/NfviCapacityInfoNotificationsFilter' + callbackUri: + description: | + The URI of the endpoint to send the notification to. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri + _links: + type: object + description: | + Links to resources related to this resource. + required: + - self + properties: + self: + description: | + URI of this resource. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Link + + NfviCapacityInfoSubscriptionRequest: + type: object + description: | + This type represents a subscription request. It shall comply with the provisions defined in Table 10.5.2.2-1. + 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: '#/components/schemas/NfviCapacityInfoNotificationsFilter' + callbackUri: + description: | + The URI of the endpoint to send the notification to. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri + authentication: + description: | + Authentication parameters to configure the use of authorization when sending notifications corresponding to + this subscription, as defined in clause 8.3.4 of ETSI GS NFV SOL 013. + This attribute shall only be present if the subscriber requires authorization of notifications. + $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication + + CapacityShortageNotification: + type: object + description: | + This notification informs the receiver that the available NFVI capacity has crossed below a threshold value or + has re-covered from a capacity shortage. It shall comply with the provisions defined in Table 10.5.2.10-1. + required: + - id + - notificationType + - thresholdId + - timeStamp + - direction + - capacityInformation + - objectInstanceId + properties: + id: + description: | + Identifier of this notification. If a notification is sent multiple times due to multiple subscriptions, + the "id" attribute of all these notifications shall have the same value. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + notificationType: + description: | + Discriminator for the different notification types. + Shall be set to "CapacityShortageNotification" for this notification type. + type: string + thresholdId: + description: | + Identifier of the threshold which has been crossed + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + timeStamp: + description: | + Date and time of the generation of the notification. + $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime + objectInstanceId: + description: | + Identifies the VIM’s NFVI capacity information instance (measured object instance) in which the available + NFVI capacity has crossed a threshold value. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + subObjectInstanceId: + description: | + Identifier of the sub-object of the measured object to which the measurement applies. + Refer to the definition of the "CapacityThreshold" in clause 10.5.2.7. + $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim + direction: + description: | + Specifies if the threshold has been crossed in UP or DOWN direction. + type: string + enum: + - UP + - DOWN + capacityInformation: + description: | + Information about the available, reserved, allocated/used, and total capacity of the NFVI. + If the threshold creation process does specify a resource zone and/or vimId, the information is provided + for the resource zone/vimId where the NFVI capacity has crossed the thresholdas indicated by the + "subObjectInstanceId" and "objectInstanceId" attributes. + $ref: "#/components/schemas/NfviCapacityMeasurement" + _links: + description: | + Links to resources related to this notification. + type: object + required: + - threshold + properties: + objectInstance: + description: | + 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: ../../definitions/SOL005_def.yaml#/definitions/NotificationLink + threshold: + description: | + Link to the resource that represents the threshold that was crossed. + $ref: ../../definitions/SOL005_def.yaml#/definitions/NotificationLink + + NfviCapacityInfoNotificationsFilter: + type: object + description: | + This type represents a filter that can be used to subscribe for notifications related to NFVI capacity information events. + It shall comply with the provisions defined in Table 10.5.3.2-1. + properties: + notificationTypes: + description: | + Match particular notification types. + Permitted values: + - CapacityShortageNotification + type: array + items: + type: string + enum: + - CapacityShortageNotification + + CapacityThresholdCriteria: + type: object + description: | + This type represents criteria that define a capacity threshold. + It shall comply with the provisions defined in table 10.5.3.3-1. + required: + - capacityMetric + - thresholdType + properties: + capacityMetric: + description: | + Defines the capacity metric for which the threshold applies. + type: object + required: + - resourceType + - capacityMeasurementName + - capacityType + properties: + resourceType: + description: | + Type of resource. + $ref: '#/components/schemas/NfviCapacityResourceTypeEnumeration' + capacityMeasurementName: + description: | + Name of the capacity measurement. Different resource types can have different associated capacity measurements, + typically associated to different sub-types of the resource type. + type: string + capacityType: + description: | + The type of capacity for the threshold. + Permitted values: + - TOTAL: for total capacity. + - ALLOCATED: for allocated/used capacity. + - RESERVED: for reserved capacity. + - AVAILABLE: for available capacity. + type: string + enum: + - TOTAL + - ALLOCATED + - RESERVED + - AVAILABLE + thresholdType: + description: | + Type of capacity threshold. This attribute determines which other attributes are present in the data structure. + Permitted values: + - SIMPLE: Single-valued static threshold. + In the present document, simple thresholds are defined. The definition of additional threshold types is left + for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: | + Details of a simple threshold. Shall be present if thresholdType="SIMPLE". + type: array + items: + type: object + required: + - thresholdValue + - hysteresis + properties: + thresholdValue: + description: | + The threshold value. Shall be represented as a floating point number. + type: number + hysteresis: + description: | + The hysteresis of the threshold. + Shall be represented as a non-negative floating point number. + A notification with crossing direction "UP" will be generated if the measured value reaches or + exceeds "thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be + generated if the measured value reaches or undercuts "thresholdValue" - "hysteresis". + The hysteresis is defined to prevent storms of threshold crossing notifications. + When processing a request to create a threshold, implementations should enforce a suitable minimum + value for this attribute (e.g. override the value or reject the request). + type: number + + NfviCapacityInfoPerZone: + type: object + description: | + This type defines the format of the NFVI capacity information on a per resource zone basis. + The type shall comply with the provisions defined in table 10.5.2.5-1. + required: + - capacityMeasurements + properties: + resourceZoneId: + description: | + Identifies the resource zone of the applicable NFVI capacity information. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + capacityMeasurements: + description: | + Capacity measurement on a per resource type basis. + type: array + items: + $ref: '#/components/schemas/NfviCapacityMeasurement' + + TimeInterval: + type: object + description: | + This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1. + required: + - aTime + properties: + aTime: + description: | + First date and time of the interval. + When only the startTime is present, there is no time interval being defined, and therefore the provided timing + information refers to a specific point in time. + $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime + bTime: + description: | + Second date and time of the interval. Shall be present when a time interval is provided, and absent otherwise. + When provided, the bTime shall be greater than aTime. + When only the startTime is present, there is no time interval being defined, and therefore the provided timing + information refers to a specific point in time. + $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime + + NfviCapacityMeasurement: + type: object + description: | + This type defines the format of the NFVI capacity information on a per resource type basis. + The type shall comply with the provisions defined in table 10.5.2.6-1. + required: + - resourceType + - capacityMeasurementName + - totalCapacity + - allocatedCapacity + - availableCapacity + properties: + resourceType: + description: | + Type of resource. + $ref: '#/components/schemas/NfviCapacityResourceTypeEnumeration' + capacityMeasurementName: + description: | + Name of the capacity measurement. Different resource types can have different associated capacity measurements, + typically associated to different sub-types of the resource type. + The present document and referred documents do not specify the capacity measurements, thus the capacity + measurement names are not specified in the present document version. + type: string + totalCapacity: + description: | + The total capacity. + type: object + allocatedCapacity: + description: | + The allocated/used capacity. + type: object + reservedCapacity: + description: | + The reserved capacity. Shall be present if the capacity measurement relates to a resource type and + (and sub-type) that is reservable. + type: object + availableCapacity: + description: | + The available capacity. + type: object + + NfviCapacityResourceTypeEnumeration: + type: string + description: | + The enumeration NfviCapacityResourceTypeEnumeration shall comply with the provisions in table 10.5.4.3-1. + * VR_COMPUTE: For virtualised compute resource. + * VR_NETWORK: For virtualised network resource. + * VR_STORAGE: For virtualised storage resource. + * HOST_COMPUTE: For host compute resource. + enum: + - VR_COMPUTE + - VR_NETWORK + - VR_STORAGE + - HOST_COMPUTE + + CapacityThresholdModifications: + description: | + This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. + type: object + properties: + callbackUri: + description: | + New value of the "callbackUri" attribute. The value "null" is not permitted. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri + authentication: + description: | + New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, + these modifications shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396). + This attribute shall not be present in response bodies. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication \ No newline at end of file diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 4fe3238653cd38358835e3122889d80b6fb4a55d..928780342a6a76b3ac77164d0b00f5b03746818e 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -1,363 +1,151 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NSD Management Interface" - description: > + title: SOL005 - NSD Management Interface + description: | SOL005 - NSD Management Interface + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - contact: - name: "NFV-SOL WG" + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf - -basePath: /nsd/v2 - -schemes: - - http - - https - -consumes: - - application/json + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -produces: - - application/json +servers: + - url: http://127.0.0.1/nsd/v2 + - url: https://127.0.0.1/nsd/v2 paths: ############################################################################### # API Versions # ############################################################################### - '/api_versions': + /api_versions: $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### # NS Descriptors # ############################################################################### - '/ns_descriptors': + /ns_descriptors: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Create a new NS descriptor resource. - description: > + description: | The POST method is used to create a new NS descriptor resource. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231. - in: header - required: true - type: string - - name: CreateNsdInfoRequest - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreateNsdInfoRequest" - description: > - Parameters of creating an NS descriptor resource, as defined in clause 5.5.2.3. + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/CreateNsdInfoRequest' responses: 201: - description: > - 201 CREATED - - Shall be returned when a new "Individual NS descriptor" resource - and the associated NS descriptor identifier has been created successfully. - The response body shall contain a representation of the created NS descriptor - resource, as defined in clause 5.5.2.2. - The HTTP response shall include a "Location" HTTP header that contains the - resource URI of the created NS descriptor resource. - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NSDescriptors.Post.201' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" get: summary: Query information about multiple NS descriptor resources. - description: > + description: | The GET method queries information about multiple NS descriptor resources. - parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. - The NFVO shall support receiving this filtering parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the NsdInfo and in data types referenced from it shall - be supported by the NFVO in the filter expression. - - name: all_fields - in: query - required: false - type: string - description: > - Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. - The NFVO shall support this parameter. - - name: fields - in: query - required: false - type: string - description: > - Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV SOL 013 for - details. The NFVO should support this parameter. - - name: exclude_fields - in: query - required: false - type: string - description: > - Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV SOL 013 for - details. The NFVO should support this parameter. - - name: exclude_default - in: query - required: false - type: string - description: > - Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV SOL 013 for details. - The VNFM shall support this parameter. - The following attributes shall be excluded from the NsdInfo structure in the response body if this - parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" - are provided: - - userDefinedData - - onboardingFailureDetails - - name: nextpage_opaque_marker - in: query - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource. - required: false - type: string - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: - description: > - 200 OK - - Shall be returned when information about zero or - more NS descriptors has been queried successfully. - The response body shall contain in an array the - representations of zero or more NS descriptors, as - defined in clause 5.5.2.2. - If the NFVO supports alternative 2 (paging) according - to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for - this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause - 5.4.2.3 of ETSI GS NFV-SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" + $ref: '#/components/responses/NSDescriptors.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### # Individual NS Descriptor # ############################################################################### - '/ns_descriptors/{nsdInfoId}': + /ns_descriptors/{nsdInfoId}: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.3 parameters: - - name: nsdInfoId - description: > - Identifier of the individual NS descriptor resource. - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/NsdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Read information about an individual NS descriptor resource. - description: > + description: | The GET method reads information about an individual NS descriptor. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: 200: - description: > - 200 OK - - Shall be returned when information about the individual - NS descriptor has been read successfully. - The response body shall contain a representation of - the individual NS descriptor, as defined in - clause 5.5.2.2. - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualNSDescriptor.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" patch: summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource. - description: > + description: | The PATCH method modifies the operational state and/or user defined data of an individual NS descriptor resource. This method can be used to: 1) Enable a previously disabled individual NS descriptor resource, allowing again its use for instantiation of new @@ -367,192 +155,104 @@ paths: new network service(s) with this descriptor. The usage state (i.e. "IN_USE/NOT_IN_USE") shall not change as a result. 3) Modify the user defined data of an individual NS descriptor resource. - parameters: - - name: NsdInfoModifications - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" - description: > - Parameters for the modification of an individual NS descriptor resource, as defined in clause 5.5.2.1. - The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231. - in: header - required: true - type: string + requestBody: + $ref: '#/components/requestBodies/NsdInfoModifications' responses: 200: - description: > - 200 OK - - Shall be returned when the operation has been accepted and completed successfully. - The response body shall contain attribute modifications for an 'Individual NS Descriptor' - resource (see clause 5.5.2.6). - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + $ref: '#/components/responses/IndividualNSDescriptor.Patch.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: -# description: > -# 409 CONFLICT -# -# Error: The operation cannot be executed currently, -# due to a conflict with the state of the resource. -# Typically, this is due to an operational state -# mismatch, i.e. enable an already enabled or -# disable an already disabled individual NS -# descriptor resource, or the "nsdOnboardingState" -# is not ONBOARDED. -# The response body shall contain a ProblemDetails -# structure, in which the "detail" attribute shall convey -# more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + # description: | + # 409 CONFLICT + + # Error: The operation cannot be executed currently, + # due to a conflict with the state of the resource. + # Typically, this is due to an operational state + # mismatch, i.e. enable an already enabled or + # disable an already disabled individual NS + # descriptor resource, or the "nsdOnboardingState" + # is not ONBOARDED. + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" + $ref: "../responses/SOL005_resp.yaml#/components/responses/412" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" delete: summary: Delete an individual NS descriptor resource. - description: > + description: | The DELETE method deletes an individual NS descriptor resource. An individual NS descriptor resource can only be deleted when there is no NS instance using it (i.e. usageState = NOT_IN_USE) and has been disabled already (i.e. operationalState = DISABLED). Otherwise, the DELETE method shall fail. - 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 operation has completed successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualNSDescriptor.Delete.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: -# description: > -# 409 CONFLICT -# -# Error: The operation cannot be executed currently, -# due to a conflict with the state of the resource. -# Typically, this is due to the fact the NS descriptor -# resource is in the enabled operational state (i.e. -# operationalState = ENABLED) or there are running -# NS instances using the concerned individual NS -# descriptor resource (i.e. usageState = IN_USE). -# The response body shall contain a ProblemDetails -# structure, in which the "detail" attribute shall convey -# more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + # description: | + # 409 CONFLICT + + # Error: The operation cannot be executed currently, + # due to a conflict with the state of the resource. + # Typically, this is due to the fact the NS descriptor + # resource is in the enabled operational state (i.e. + # operationalState = ENABLED) or there are running + # NS instances using the concerned individual NS + # descriptor resource (i.e. usageState = IN_USE). + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### - # NSD Archive Content # + # NSD Archive Content # ############################################################################### - '/ns_descriptors/{nsdInfoId}/nsd_content': + /ns_descriptors/{nsdInfoId}/nsd_content: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4 parameters: - - name: nsdInfoId - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/NsdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Fetch the content of a NSD. - description: > + description: | The GET method fetches the content of the NSD archive. The NSD archive is implemented as a single zip file. The content of the NSD archive is provided as onboarded, @@ -568,209 +268,107 @@ paths: ables 5.4.4.3.2-1 and 5.4.4.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - application/zip - - name: Range - in: header - required: false - type: string - description: > - The request may contain a "Range" HTTP header to obtain single - range of bytes from the NSD archive. - This can be used to continue an aborted transmission. - - If the Range header is present in the request and the NFVO does - not support responding to range requests with a 206 response, - it shall return a 200 OK response instead as defined below. + - $ref: '#/components/parameters/AcceptTextOrZip' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range responses: 200: - description: > - 200 OK - - Shall be returned when the content of the NSD has been read successfully. - The payload body shall contain a copy of the ZIP file that contains the NSD file structure. - The "Content-Type" HTTP header shall be set to "application/zip". - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdArchiveContent.Get.200' 206: -# description: > -# 206 PARTIAL CONTENT -# -# On success, if the NFVO supports range requests, -# a single consecutive byte range from the content of -# the NSD file is returned. -# The response body shall contain the requested part -# of the NSD file. -# The "Content-Range" HTTP header shall be -# provided according to IETF RFC 7233. -# The "Content-Type" HTTP header shall be set as -# defined above for the "200 OK" response. - $ref: "../responses/SOL005_resp.yaml#/responses/206" + # description: | + # 206 PARTIAL CONTENT + + # On success, if the NFVO supports range requests, + # a single consecutive byte range from the content of + # the NSD file is returned. + # The response body shall contain the requested part + # of the NSD file. + # The "Content-Range" HTTP header shall be + # provided according to IETF RFC 7233. + # The "Content-Type" HTTP header shall be set as + # defined above for the "200 OK" response. + $ref: "../responses/SOL005_resp.yaml#/components/responses/206" 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: -# description: > -# 406 NOT ACCEPTABLE -# -# If the "Accept" header does not contain at least one -# name of a content type for which the NFVO can -# provide a representation of the NSD, the NFVO -# shall respond with this response code. -# The "ProblemDetails" structure may be included -# with the "detail" attribute providing more information -# about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/406" + # description: | + # 406 NOT ACCEPTABLE + + # If the "Accept" header does not contain at least one + # name of a content type for which the NFVO can + # provide a representation of the NSD, the NFVO + # shall respond with this response code. + # The "ProblemDetails" structure may be included + # with the "detail" attribute providing more information + # about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: -# description: > -# 409 CONFLICT -# -# Shall be returned upon the following error: The -# operation cannot be executed currently, due to a -# conflict with the state of the resource. -# Typically, this is due to the fact -# "nsdOnboardingState" has a value different from -# ONBOARDED. -# The response body shall contain a ProblemDetails -# structure, in which the "detail" attribute shall convey -# more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + # description: | + # 409 CONFLICT + + # Shall be returned upon the following error: The + # operation cannot be executed currently, due to a + # conflict with the state of the resource. + # Typically, this is due to the fact + # "nsdOnboardingState" has a value different from + # ONBOARDED. + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 416: -# description: > -# 416 RANGE NOT SATISFIABLE -# -# The byte range passed in the "Range" header did -# not match any available byte range in the NSD file -# (e.g. "access after end of file"). -# The response body may contain a ProblemDetails -# structure. - $ref: "../responses/SOL005_resp.yaml#/responses/416" + # description: | + # 416 RANGE NOT SATISFIABLE + + # The byte range passed in the "Range" header did + # not match any available byte range in the NSD file + # (e.g. "access after end of file"). + # The response body may contain a ProblemDetails + # structure. + $ref: "../responses/SOL005_resp.yaml#/components/responses/416" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" put: summary: Upload the content of a NSD. - description: > + description: | The PUT method is used to upload the content of an NSD archive. The NSD to be uploaded is implemented as a single ZIP file as defined in clause 5.4.4.3.2. The "Content-Type" HTTP header in the PUT request shall be set to "application/zip". This method shall follow the provisions specified in the Tables 5.4.4.3.3-1 and 5.4.4.3.3-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Content-Type - description: > - The payload body contains a ZIP file that represents the NSD archive, as specified above. - The request shall set the "Content-Type" HTTP header to "application/zip". - in: header - required: true - type: string - enum: - - application/zip + - $ref: '#/components/parameters/ContentTypeZip' responses: 202: - description: > - 202 ACCEPTED - - Shall be returned when the NSD archive has been accepted for uploading, - but the processing has not been completed. It is expected to take some - time for processing (asynchronous mode). - The response body shall be empty. - The API consumer can track the uploading progress by receiving the - "NsdOnBoardingNotification" and "NsdOnBoardingFailureNotification" - from the NFVO or by reading the status of the individual NS descriptor - resource using the GET method. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdArchiveContent.Put.202' 204: - description: > - 204 NO CONTENT - - The NSD content successfully uploaded and - validated (synchronous mode). - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdArchiveContent.Put.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: - # description: > + # description: | # 409 CONFLICT # # Error: The operation cannot be executed currently, @@ -781,40 +379,26 @@ paths: # The response body shall contain a ProblemDetails # structure, in which the "detail" attribute shall convey # more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### # NSD # ############################################################################### - '/ns_descriptors/{nsdInfoId}/nsd': + /ns_descriptors/{nsdInfoId}/nsd: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4a parameters: - - name: nsdInfoId - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/NsdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: - description: > + description: | The GET method reads the content of the NSD within an NSD archive. The NSD can be implemented as a single file or as a collection of multiple files. If the NSD is implemented in the form of multiple files, @@ -828,16 +412,22 @@ paths: • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the format to return for a single-file NSD; for a multi-file NSD, a ZIP file shall be returned. - The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 007 + The default format of the ZIP file shall comply with the CSAR format as specified in ETSI GS NFV-SOL 007 where only the YAML files representing the NSD, and information necessary to navigate the ZIP file and to identify the file that is the entry point for parsing the NSD and - (if requested) further security information are included. This means that the content + (if requested) further security information are included and other artifacts referenced from the YAML files are excluded. This means that the content of the ZIP archive shall contain the following files from the NSD archive: • TOSCA.meta (if available in the NSD archive); - • the main service template (either as referenced from TOSCA.meta or available as a + • The main TOSCA definitions YAML file (either as referenced by the Entry-Definitions keyword from TOSCA.meta or available as a file with the extension ".yml" or ".yaml" from the root of the archive); - • every component of the NSD referenced (recursively) from the main service template; - • the related security information, if the "include_signatures" URI parameter is provided, as follows: + • Other TOSCA YAML files, if any, as referenced by the Other-Definitions keyword from TOSCA.meta; + • Every component of the NSD referenced (recursively) from the theYAML files as mentioned above; + NOTE 1: For a NSD based on TOSCA, it includes all the imported type definition files as indicated + in the top level the main service template and in any of the lower level service template if it + has any as described in ETSI GS NFV-SOL 001. + NOTE 2: For a NSD based on YANG, it includes the file as indicated by the "yang_definitions" + keyname in the metadata section of the main yaml file as described in ETSI GS NFV-SOL 007. + • The related security information, if the "include_signatures" URI parameter is provided, as follows: - the manifest file; - the singleton certificate file in the root of the NSD archive (if available in the NSD archive); - the signing certificates of the individual files included in the ZIP archive @@ -846,610 +436,304 @@ paths: This method shall follow the provisions specified in the Tables 5.4.4a.3.2-1 and 5.4.4a.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: include_signatures - in: query - required: false - type: string - description: > - If this parameter is provided, the NFVO shall include in the ZIP - file the security information as specified above. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. - - name: Accept - in: header - required: true - type: string - enum: - - text/plain - - application/zip - description: > - The request shall contain the appropriate entries in the "Accept" - HTTP header as defined above. + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures + - $ref: '#/components/parameters/AcceptTextOrZip' responses: 200: - description: > - 200 OK - - Shall be returned when the content of the NSD has been read successfully. - The payload body shall contain a copy of the file representing the NSD or - a ZIP file that contains the file or multiple files representing the NSD, - as specified above. - The "Content-Type" HTTP header shall be set according to the format of - the returned file. It shall be set to "text/plain" for a YAML file. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NSD.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### # NSD Archive Manifest # ############################################################################### - '/ns_descriptors/{nsdInfoId}/manifest': + /ns_descriptors/{nsdInfoId}/manifest: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4b parameters: - - name: nsdInfoId - description: > - Identifier of the individual NS descriptor. - This identifier can be retrieved from the resource referenced by - the "Location" HTTP header in the response to a POST request creating - a new NS descriptor resource. It can also be retrieved from the "id" - attribute in the payload body of that response. - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/NsdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Fetch the content of the manifest in an NSD archive. - description: > + description: | The GET method reads the content of the manifest file within an NSD archive. This method shall follow the provisions specified in the Tables 5.4.4b.3.2-1 and 5.4.4b.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - application/zip - - name: include_signatures - in: query - required: false - type: string - description: > - If this parameter is provided, the NFVO shall return the manifest and - related security information (signature and certificate) either in a - single text file if the signature and certificate are included in the - manifest file, or in a zip file containing the manifest and the certificate - file, if this is provided as a separate file in the NSD archive. - If this parameter is not given, the NFVO shall provide only a copy of the - manifest file, as onboarded. If the security information is included in the - onboarded manifest, it shall also be included in the returned copy. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. + - $ref: '#/components/parameters/AcceptTextOrZip' + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures responses: 200: - description: > - 200 OK - - Shall be returned when the content of the manifest file has been read successfully. - - If the "include_signatures" URI query parameter was absent in the request, or if the - manifest file has all security-related information embedded (i.e. there is no separate - certificate file), the payload body shall contain a copy of the manifest file of the - NSD archive, and the "Content-Type" HTTP header shall be set to "text/plain". - If the "include_signatures" URI query parameter was present in the related request and - the manifest file does not have all the security-related information embedded (i.e. there - is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip" - and the payload body shall contain a ZIP archive which includes: - - a copy of the manifest file of the NSD archive; - - a copy of the related individual certificate file. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdArchiveManifest.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 409: -# description: > -# 409 CONFLICT -# -# Shall be returned upon the following error: The -# operation cannot be executed currently, due to a -# conflict with the state of the resource. -# Typically, this is due to the fact -# "nsdOnboardingState" has a value different from -# ONBOARDED. -# The response body shall contain a ProblemDetails -# structure, in which the "detail" attribute shall convey -# more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + # description: | + # 409 CONFLICT + + # Shall be returned upon the following error: The + # operation cannot be executed currently, due to a + # conflict with the state of the resource. + # Typically, this is due to the fact + # "nsdOnboardingState" has a value different from + # ONBOARDED. + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" + + ############################################################################### + # Individual NSD Archive Artifact # + ############################################################################### + /ns_descriptors/{nsdInfoId}/artifacts/{artifactPath}: + #ETSI GS NFV-SOL 005 V3.3.1 location: 5.4.4c + parameters: + - $ref: '#/components/parameters/NsdInfoId' + - $ref: '#/components/parameters/ArtifactPathInNSD' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + get: + description: | + The GET method fetches the content of an individual artifact within + a NSD archive. + + This method shall follow the provisions specified in the Tables 5.4.4c.3.2-1 + and 5.4.4c.3.2-2 for URI query parameters, request and response data structures, + and response codes. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures + responses: + 200: + $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.200' + 206: + $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.206' + 400: + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" + 406: + # description: | + # If the related request contained an "Accept" header not compatible with the Content type + # "application/zip" but the "include_signatures" flag was provided, the NFVO shall respond + # with this response code. + + # The "ProblemDetails" structure may be included with the "detail" attribute providing more + # information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" + 405: + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" + 409: + # description: | + # 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 "nsdOnboardingState" has a value different from + # "ONBOARDED". + # The response body shall contain a ProblemDetails structure, in which the "detail" attribute + # shall convey more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" + 416: + # description: | + # 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/SOL005_resp.yaml#/components/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" + ############################################################################### # PNF Descriptors # ############################################################################### - '/pnf_descriptors': + /pnf_descriptors: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.5 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version post: summary: Create a new PNF descriptor resource. - description: > + description: | The POST method is used to create a new PNF descriptor resource parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231. - in: header - required: true - type: string - - name: CreatePnfdInfoRequest - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreatePnfdInfoRequest" - description: > - Parameters of creating a PNF descriptor resource. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/CreatePnfdInfoRequest' responses: 201: - description: > - 201 CREATED - - Shall be returned when a new "Individual PNF descriptor" - resource and the associated PNF descriptor identifier - has been created successfully. - The response body shall contain a representation of the - created PNF descriptor resource, as defined in clause 5.5.2.5. - The HTTP response shall include a "Location" HTTP header that - contains the resource URI of the created PNF descriptor resource. - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PNFDescriptors.Post.201' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" get: summary: Query information about multiple PNF descriptor resources. - description: > + description: | "The GET method queries information about multiple PNF descriptor resources." parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 - of ETSI GS NFV-SOL 013. - The NFVO shall support receiving this filtering parameter as part - of the URI query string. The OSS/BSS may supply this parameter. - All attribute names that appear in the PnfdInfo and in data types - referenced from it shall be supported by the NFVO in the filter expression. - - name: all_fields - in: query - required: false - type: string - description: > - Include all complex attributes in the response. See clause 5.3 - of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter. - - name: fields - in: query - required: false - type: string - description: > - Complex attributes to be included into the response. See clause 5.3 of - ETSI GS NFV-SOL 013 for details. - The NFVO should support this parameter. - - name: exclude_fields - in: query - required: false - type: string - description: > - Complex attributes to be excluded from the response. See clause 5.3 - of ETSI GS NFV-SOL 013 for details. - The NFVO should support this parameter. - - name: exclude_default - in: query - required: false - type: string - description: > - Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support - this parameter. - The following attributes shall be excluded from the PnfdInfo structure in - the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - - userDefinedData - - onboardingFailureDetails - - name: nextpage_opaque_marker - in: query - type: string - required: false - description: > - Marker to obtain the next page of a paged response. Shall be supported by - the NFVO if the NFVO supports alternative 2 (paging) according to clause - 5.4.2.1 of ETSI GS NFV SOL 013 for this resource. + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: - description: > - 200 OK - - Shall be returned when information about zero or more PNF descriptors has - been queried successfully. - The response body shall contain in an array the representations of zero or - more PNF descriptors, as defined in clause 5.5.2.5. - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - description: > - Information about zero or more PNF descriptors. - The response body shall contain a representation in an array the representations - of zero or more PNF descriptors, as defined in clause 5.5.2.2. - If the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. - type: array - items: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + $ref: '#/components/responses/PNFDescriptors.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### # Individual PNF Descriptor # ############################################################################### - '/pnf_descriptors/{pnfdInfoId}': + /pnf_descriptors/{pnfdInfoId}: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.6 parameters: - - name: pnfdInfoId - description: > - Identifier of the individual PNF descriptor resource. - in: path - required: true - type: string + - $ref: '#/components/parameters/PnfdInfoId' get: summary: Read an individual PNFD resource. - description: > + description: | The GET method reads information about an individual PNF descriptor. parameters: - - name: Accept - in: header - required: true - type: string - description: > - Content-Types that are acceptable for the response. This header - field shall be present if the response is expected to have a non-empty - message body. - - name: Authorization - in: header - required: false - type: string - description: > - The authorization token for the request. Details are specified - in clause 4.5.3 of GS NFV-SOL 005. - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version responses: 200: - description: > - 200 OK - - Shall be returned when information about the individual PNFD - descriptor has been read successfully. - The response body shall contain a representation of the - individual PNF descriptor, as defined in clause 5.5.2.5. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + $ref: '#/components/responses/IndividualPnfDescriptor.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" patch: summary: Modify the user defined data of an individual PNF descriptor resource. - description: > + description: | The PATCH method modifies the user defined data of an individual PNF descriptor resource. parameters: - - name: Accept - in: header - required: true - type: string - description: > - Content-Types that are acceptable for the response. This header - field shall be present if the response is expected to have a non-empty - message body. - - name: Content-Type - in: header - required: true - type: string - description: > - The MIME type of the body of the request. This header field - shall be present if the request has a non-empty message body. - - name: PnfdInfoModifications - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" - description: > - Parameters for the modification of an individual - PNF descriptor resource, as defined in clause 5.5.2.4. - The Content-Type header shall be set to "application/merge-patch+json" - according to IETF RFC 7396. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/PnfdInfoModifications' responses: 200: - description: > - 200 OK - - Shall be returned when the operation has been accepted - and completed successfully. - The response body shall contain attribute modifications - for an 'Individual PNF Descriptor' resource (see clause 5.5.2.4). - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualPnfDescriptor.Patch.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" + $ref: "../responses/SOL005_resp.yaml#/components/responses/412" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" delete: summary: Delete an individual PNF descriptor resource. - description: > + description: | The DELETE method deletes an individual PNF descriptor resource. An individual PNF descriptor resource can only be deleted when t here is no NS instance using it or there is NSD referencing it. @@ -1464,79 +748,39 @@ paths: and response data structures, and response codes. responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the operation - has completed successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualPnfDescriptor.Delete.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### # PNFD Archive Content # ############################################################################### - '/pnf_descriptors/{pnfdInfoId}/pnfd_content': + /pnf_descriptors/{pnfdInfoId}/pnfd_content: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7 parameters: - - name: pnfdInfoId - description: > - Identifier of the individual PNF descriptor. - This identifier can be retrieved from the resource referenced - by the "Location" HTTP header in the response to a POST request - creating a new PNF descriptor resource. It can also be retrieved - from the "id" attribute in the payload body of that response. - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/PnfdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Fetch the content of a PNFD. - description: > + description: | The GET method fetches the content of the PNFD archive. The content of the PNFD archive is provided as onboarded, i.e. depending on the security option used, the CSAR or @@ -1550,260 +794,103 @@ paths: and 5.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. - in: header - required: true - type: string - enum: - - text/plain - - name: Range - description: > - The request may contain a "Range" HTTP header to obtain - single range of bytes from the PNFD archive. This can be - used to continue an aborted transmission. - If the NFVO does not support range requests, the NFVO - shall ignore the "Range" header, process the GET request, - and return the whole PNFD archive with a 200 OK response - (rather than returning a 4xx error status code). - in: header - required: false - type: string + - $ref: '#/components/parameters/AcceptText' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range responses: 200: - description: > - 200 OK - - Shall be returned when the content of the PNFD archive has - been read successfully. - The payload body shall contain a copy of the PNFD archive - The "Content-Type" HTTP header shall be set to "application/zip". - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdArchiveContent.Get.200' 206: - description: > - 206 PARTIAL CONTENT - - If the NFVO supports range requests, this response shall be returned - when a single consecutive byte range from the content of the PNFD archive - has been read successfully according to the request. - The response body shall contain the requested part of the PNFD archive. - The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. - The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. - headers: - Content-Type: - description: > - The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - Content-Range: - description: > - The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdArchiveContent.Get.206' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: -# description: > -# 409 CONFLICT -# -# Shall be returned upon the following error: The -# operation cannot be executed currently, due to a -# conflict with the state of the resource. -# Typically, this is due to the fact pnfdOnboardingState -# has a value different from ONBOARDED. -# The response body shall contain a ProblemDetails -# structure, in which the "detail" attribute shall convey -# more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + # description: | + # 409 CONFLICT + + # Shall be returned upon the following error: The + # operation cannot be executed currently, due to a + # conflict with the state of the resource. + # Typically, this is due to the fact pnfdOnboardingState + # has a value different from ONBOARDED. + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" + $ref: "../responses/SOL005_resp.yaml#/components/responses/416" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" put: summary: Upload the content of a PNFD. - description: > + description: | The PUT method is used to upload the content of a PNFD archive. This resource represents the content of the individual PNF descriptor, i.e. PNFD content. The client can use this resource to upload and download the content of the PNFD. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - name: Content-type - description: > - The request shall set the "Content-Type" HTTP header to "application/zip". - in: header - type: string - enum: - - application/zip + - $ref: '#/components/parameters/AcceptText' + - $ref: '#/components/parameters/ContentTypeZip' responses: 202: - description: > - 202 ACCEPTED - - Shall be returned when the PNFD archive has been accepted for uploading, - but the processing has not been completed. It is expected to take some - time for processing (asynchronous mode). - The response body shall be empty. - The API consumer can track the uploading progress by receiving the - "PnfdOnBoardingNotification" and "PnfdOnBoardingFailureNotification" - from the NFVO or by reading the status of the individual PNF descriptor - resource using the GET method. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdArchiveContent.Put.200' 204: - description: > - 204 NO CONTENT - - Shall be returned when the PNFD archive content has been - uploaded and validated successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdArchiveContent.Put.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: -# description: > -# 409 CONFLICT -# -# Error: The operation cannot be executed currently, -# due to a conflict with the state of the resource. -# Typically, this is due to the fact that the -# PnfdOnboardingState has a value other than -# CREATED. -# The response body shall contain a ProblemDetails -# structure, in which the "detail" attribute shall convey -# more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" + # description: | + # 409 CONFLICT + + # Error: The operation cannot be executed currently, + # due to a conflict with the state of the resource. + # Typically, this is due to the fact that the + # PnfdOnboardingState has a value other than + # CREATED. + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # PNFD # ############################################################################### - '/pnf_descriptors/{pnfdInfoId}/pnfd': + /pnf_descriptors/{pnfdInfoId}/pnfd: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7a parameters: - - name: pnfdInfoId - description: > - Identifier of the individual PNF descriptor. - This identifier can be retrieved from the resource referenced - by the "Location" HTTP header in the response to a POST request - creating a new PNF descriptor resource. It can also be retrieved - from the "id" attribute in the payload body of that response. - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/PnfdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: - description: > + description: | The GET method reads the content of the PNFD within a PNFD archive. The PNFD can be implemented as a single file or as a collection of multiple files. If the PNFD is implemented in the form of multiple @@ -1844,236 +931,158 @@ paths: This method shall follow the provisions specified in the Tables 5.4.7a.3.2-1 and 5.4.7a.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - name: Range - description: > - The request may contain a "Range" HTTP header to obtain - single range of bytes from the PNFD archive. This can be - used to continue an aborted transmission. - If the NFVO does not support range requests, the NFVO - shall ignore the "Range" header, process the GET request, - and return the whole PNFD archive with a 200 OK response - (rather than returning a 4xx error status code). - in: header - required: false - type: string - - name: include_signatures - description: > - If this parameter is provided, the NFVO shall include in the - ZIP file the security information as specified above. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. - in: query - required: false - type: string + - $ref: '#/components/parameters/AcceptText' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures responses: 200: - description: > - 200 OK - - Shall be returned when the content of the PNFD has been read successfully. - The payload body shall contain a copy of the file representing the PNFD - or a ZIP file that contains the file or multiple files representing the - PNFD, as specified above. - The "Content-Type" HTTP header shall be set according to the format of - the returned file. It shall be set to "text/plain" for a YAML file. - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PNFD.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### - # PNFD Archive Manifest # + # PNFD Archive Manifest # ############################################################################### - '/pnf_descriptors/{pnfdInfoId}/manifest': + /pnf_descriptors/{pnfdInfoId}/manifest: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7b parameters: - - name: pnfdInfoId - description: > - Identifier of the individual PNF descriptor. - This identifier can be retrieved from the resource referenced - by the "Location" HTTP header in the response to a POST request - creating a new PNF descriptor resource. It can also be retrieved - from the "id" attribute in the payload body of that response. - in: path - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/PnfdInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: - description: > + description: | The GET method reads the content of the manifest file within a PNFD archive. This method shall follow the provisions specified in the Tables 5.4.7b.3.2-1 and 5.4.7b.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - application/zip - - name: include_signatures - description: > - If this parameter is provided, the NFVO shall return the manifest - and related security information (signature and certificate) either - in a single text file if the signature and certificate are included - in the manifest file, or in a zip file containing the manifest and - the certificate file, if this is provided as a separate file in the - PNFD archive. - If this parameter is not given, the NFVO shall provide only a copy - of the manifest file, as onboarded. If the security information is - included in the onboarded manifest, it shall also be included in - the returned copy. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. - in: query - required: false - type: string + - $ref: '#/components/parameters/AcceptTextOrZip' + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures responses: 200: - description: > - Shall be returned when the content of the manifest file has been - read successfully. - If the "include_signatures" URI query parameter was absent in the - request, or if the manifest file has all security-related information - embedded (i.e. there is no separate certificate file), the payload - body shall contain a copy of the manifest file of the PNFD archive, - and the "Content-Type" HTTP header shall be set to "text/plain". - If the "include_signatures" URI query parameter was present in the - related request and the manifest file does not have all the - security-related information embedded (i.e. there is a separate certificate file), - the "Content-Type" HTTP header shall be set to "application/zip" and - the payload body shall contain a ZIP archive which includes: - - a copy of the manifest file of the PNFD archive; - - a copy of the related individual certificate file. - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - enum: - - text/plain - - application/zip - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdArchiveManifest.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" + ############################################################################### + # Individual PNFD Archive Artifact # + ############################################################################### + /pnf_descriptors/{pnfdInfoId}/artifacts/{artifactPath}: + #ETSI GS NFV-SOL 005 V3.3.1 location: 5.4.7c + parameters: + - $ref: '#/components/parameters/PnfdInfoId' + - $ref: '#/components/parameters/ArtifactPathInPNFD' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + + get: + description: | + The GET method fetches the content of an individual artifact within a PNFD archive. + + This method shall follow the provisions specified in the Tables 5.4.7c.3.2-1 and + 5.4.7c.3.2-2 for URI query parameters, request and response data structures, and + response codes. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures + responses: + 200: + $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.200' + 206: + $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.206' + 400: + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" + 401: + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" + 403: + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" + 404: + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" + 406: + # description: | + # If the related request contained an "Accept" header not compatible with the Content type + # "application/zip" but the "include_signatures" flag was provided, the NFVO shall respond + # with this response code. + + # The "ProblemDetails" structure may be included with the "detail" attribute providing more + # information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" + 405: + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" + 409: + # description: | + # 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 "pnfdOnboardingState" has a value different from + # "ONBOARDED". + + # The response body shall contain a ProblemDetails structure, in which the "detail" attribute + # shall convey more information about the error. + $ref: "../responses/SOL005_resp.yaml#/components/responses/409" + 416: + # description: | + # 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/SOL005_resp.yaml#/components/responses/416" + 500: + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" + 504: + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" + ############################################################################### # Subscriptions # ############################################################################### - '/subscriptions': + /subscriptions: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.8 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version post: summary: Subscribe to NSD and PNFD change notifications. - description: > + description: | The POST method creates a new subscription. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in @@ -2089,97 +1098,50 @@ paths: return a "303 See Other" response code referencing the existing subscription resource with the same filter and callbackUricallback URI). parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231. - in: header - required: true - type: string - - name: NsdmSubscriptionRequest - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscriptionRequest" - description: > - Details of the subscription to be created, as defined in clause 5.5.2.7. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsdmSubscriptionRequest' 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 5.5.2.8. - The HTTP response shall include a "Location:" HTTP header that points - to the created "Individual subscription" resource. - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/Subscriptions.Post.201' 303: -# description: > -# 303 SEE OTHER -# -# Shall be returned when a subscription with the -# same callbackURI and the same filter already -# exits and the policy of the NFVO is to not create -# redundant subscriptions. -# The HTTP response shall include a "Location" -# HTTP header that contains the resource URI of -# the existing subscription resource. -# The response body shall be empty. - $ref: "../responses/SOL005_resp.yaml#/responses/303" + # description: | + # 303 SEE OTHER + + # Shall be returned when a subscription with the + # same callbackURI and the same filter already + # exits and the policy of the NFVO is to not create + # redundant subscriptions. + # The HTTP response shall include a "Location" + # HTTP header that contains the resource URI of + # the existing subscription resource. + # The response body shall be empty. + $ref: "../responses/SOL005_resp.yaml#/components/responses/303" 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 422: - $ref: "../responses/SOL005_resp.yaml#/responses/422" + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" get: summary: Query multiple subscriptions. - description: > + description: | TThe GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations. @@ -2187,135 +1149,44 @@ paths: response data structures, and response codes, as specified in the Tables 5.4.8.3.2-1 and 5.4.8.3.2-2. parameters: - - name: filter - in: query - required: false - type: string - description: > - AAttribute filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - the OSS/BSS may supply this parameter. - All attribute names that appear in the NsdmSubscription and in data types referenced - from it shall be supported by the NFVO in the filter expression. - - name: nextpage_opaque_marker - in: query - required: false - type: string - description: > - Marker to obtain the next page of a paged response. Shall be supported by - the NFVO if the NFVO supports alternative 2 (paging) according to clause - 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept 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 NSD management subscriptions as defined in clause 5.5.2.8. - If the "filter" URI parameter was supplied in the request, the data in the - response body shall have been transformed according to the rules specified in - clause 5.2.2 of ETSI GS NFV-SOL 013. - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header in this - response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - description: > - 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 NSD management - subscriptions as defined in clause 5.5.2.8. - If the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, - inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. - type: array - items: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" + $ref: '#/components/responses/Subscriptions.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" ############################################################################### # Individual Subscription # ############################################################################### - '/subscriptions/{subscriptionId}': + /subscriptions/{subscriptionId}: #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.9 parameters: - - name: subscriptionId - description: > - Identifier of this subscription. - This identifier can be retrieved from the resource referenced - by the "Location" HTTP header in the response to a POST request - creating a new subscription resource. It can also be retrieved - from the "id" attribute in the payload body of that response. - in: path - required: true - type: string - - name: Authorization - in: header - required: false - type: string - description: > - The authorization token for the request. Details are specified - in clause 4.5.3 of GS NFV-SOL 005. - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/SubscriptionId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Read an individual subscription resource. - description: > + description: | This resource represents an individual subscription. It can be used by the client to read and to terminate a subscription to notifications related to NSD management. @@ -2326,65 +1197,32 @@ paths: It can be used by the client to read and to terminate a subscription to notifications related to NSD management. parameters: - - name: Accept - in: header - required: true - type: string - description: > - Content-Types that are acceptable for the response. This header - field shall be present if the response is expected to have a non-empty - message body. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: 200: - description: > - 200 OK - - Shall be returned when information about an individual subscription has been read successfully. - The response body shall contain a representation of the subscription resource. - schema: - $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response. This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualSubscription.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" delete: summary: Terminate Subscription - description: > + description: | This resource represents an individual subscription. It can be used by the client to read and to terminate a subscription to notifications related to NSD management. @@ -2393,58 +1231,1260 @@ paths: This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.9.3.3-2. - parameters: - - name: Authorization - in: header - required: false - type: string - description: > - The authorization token for the request. - Details are specified in clause 4.5.3 of GS NFV-SOL 005. - - 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: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualSubscription.Delete.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" \ No newline at end of file + $ref: "../responses/SOL005_resp.yaml#/components/responses/504" + +components: + parameters: + AcceptTextOrZip: + name: Accept + description: > + The request shall contain the appropriate entries in the "Accept" HTTP header. + in: header + required: true + schema: + type: string + enum: + - text/plain + - application/zip + AcceptText: + name: Accept + description: > + The request shall contain the appropriate entries in the "Accept" HTTP header. + in: header + required: true + schema: + type: string + enum: + - text/plain + ContentTypeZip: + name: Content-Type + description: | + The payload body contains a ZIP file that represents the NSD archive, as specified above. + The request shall set the "Content-Type" HTTP header to "application/zip". + in: header + required: true + schema: + type: string + enum: + - application/zip + + NsdInfoId: + name: nsdInfoId + in: path + description: | + Identifier of the individual NS descriptor resource. + required: true + style: simple + explode: false + schema: + type: string + + PnfdInfoId: + name: pnfdInfoId + in: path + description: | + Identifier of the individual PNF descriptor resource. + required: true + style: simple + explode: false + schema: + type: string + + ArtifactPathInNSD: + name: artifactPath + in: path + description: | + For an artifact contained as a file in the NSD archive, this variable shall + contain a sequence of one or path segments representing the path of the + artifact within the NSD archive, relative to the root of the package. + + EXAMPLE: foo/bar/m%40ster.sh + + For an external artifact represented as a URI in the NSD archive manifest, + this variable shall contain the URI as provided in the NS archive. + + This identifier can be retrieved from the "artifactPath" attribute of the + applicable "artifacts" entry in the body of the response to a GET request + querying the "Individual NSD" resource. + + 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. + required: true + style: simple + explode: false + schema: + type: string + + ArtifactPathInPNFD: + name: artifactPath + in: path + description: | + For an artifact contained as a file in the PNFD archive, this variable shall contain + a sequence of one or path segments representing the path of the artifact within the + PNFD archive, relative to the root of the package. + + EXAMPLE: foo/bar/m%40ster.sh + + For an external artifact represented as a URI in the PNFD archive manifest, this variable + shall contain the URI as provided in the NS archive. + + This identifier can be retrieved from the "artifactPath" attribute of the applicable + "artifacts" entry in the body of the response to a GET request querying the "Individual PNFD" + resource. + + 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. + required: true + style: simple + explode: false + schema: + type: string + + SubscriptionId: + name: subscriptionId + in: path + description: | + Identifier of this subscription. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in + the response to a POST request creating a new subscription resource. It can also be retrieved + from the "id" attribute in the payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + CreateNsdInfoRequest: + description: | + Parameters of creating an NS descriptor resource, as defined in clause 5.5.2.3. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreateNsdInfoRequest" + required: true + + NsdInfoModifications: + description: | + Parameters for the modification of an individual NS descriptor resource, as defined in clause 5.5.2.1. + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + required: true + + CreatePnfdInfoRequest: + description: | + Parameters of creating a PNF descriptor resource. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreatePnfdInfoRequest" + required: true + + PnfdInfoModifications: + description: | + Parameters for the modification of an individual + PNF descriptor resource, as defined in clause 5.5.2.4. + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" + required: true + + NsdmSubscriptionRequest: + description: | + Details of the subscription to be created, as defined in clause 5.5.2.7. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscriptionRequest" + required: true + + responses: + NSDescriptors.Post.201: + description: | + 201 CREATED + + Shall be returned when a new "Individual NS descriptor" resource + and the associated NS descriptor identifier has been created successfully. + The response body shall contain a representation of the created NS descriptor + resource, as defined in clause 5.5.2.2. + The HTTP response shall include a "Location" HTTP header that contains the + resource URI of the created NS descriptor resource. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" + + NSDescriptors.Get.200: + description: | + 200 OK + + Shall be returned when information about zero or + more NS descriptors has been queried successfully. + The response body shall contain in an array the + representations of zero or more NS descriptors, as + defined in clause 5.5.2.2. + If the NFVO supports alternative 2 (paging) according + to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for + this resource, inclusion of the Link HTTP header in + this response shall follow the provisions in clause + 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" + + IndividualNSDescriptor.Get.200: + description: | + 200 OK + + Shall be returned when information about the individual + NS descriptor has been read successfully. + The response body shall contain a representation of + the individual NS descriptor, as defined in + clause 5.5.2.2. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" + + IndividualNSDescriptor.Patch.200: + description: | + 200 OK + + Shall be returned when the operation has been accepted and completed successfully. + The response body shall contain attribute modifications for an 'Individual NS Descriptor' + resource (see clause 5.5.2.6). + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + + IndividualNSDescriptor.Delete.204: + description: | + 204 NO CONTENT + + Shall be returned when the operation has completed 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdArchiveContent.Get.200: + description: | + 200 OK + + Shall be returned when the content of the NSD has been read successfully. + The payload body shall contain a copy of the ZIP file that contains the NSD file structure. + The "Content-Type" HTTP header shall be set to "application/zip". + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdArchiveContent.Put.202: + description: | + 202 ACCEPTED + + Shall be returned when the NSD archive has been accepted for uploading, + but the processing has not been completed. It is expected to take some + time for processing (asynchronous mode). + The response body shall be empty. + The API consumer can track the uploading progress by receiving the + "NsdOnBoardingNotification" and "NsdOnBoardingFailureNotification" + from the NFVO or by reading the status of the individual NS descriptor + resource using the GET method. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdArchiveContent.Put.204: + description: | + 204 NO CONTENT + + The NSD content successfully uploaded and + validated (synchronous mode). + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NSD.Get.200: + description: | + 200 OK + + Shall be returned when the content of the NSD has been read successfully. + The payload body shall contain a copy of the file representing the NSD or + a ZIP file that contains the file or multiple files representing the NSD, + as specified above. + The "Content-Type" HTTP header shall be set according to the format of + the returned file. It shall be set to "text/plain" for a YAML file. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdArchiveManifest.Get.200: + description: | + 200 OK + + Shall be returned when the content of the manifest file has been read successfully. + + If the "include_signatures" URI query parameter was absent in the request, or if the + manifest file has all security-related information embedded (i.e. there is no separate + certificate file), the payload body shall contain a copy of the manifest file of the + NSD archive, and the "Content-Type" HTTP header shall be set to "text/plain". + If the "include_signatures" URI query parameter was present in the related request and + the manifest file does not have all the security-related information embedded (i.e. there + is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip" + and the payload body shall contain a ZIP archive which includes: + - a copy of the manifest file of the NSD archive; + - a copy of the related individual certificate file. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + IndividualNsdArchiveArtifact.Get.200: + description: | + 200 OK + + Shall be returned when the 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 NSD archive, as defined + by ETSI GS NFV-SOL 007, 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 NFVSOL 007 + - 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 request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + IndividualNsdArchiveArtifact.Get.206: + description: | + 206 PARTIAL CONTENT + + If the NFVO supports range requests and the "include_signatures" request URI parameter was + not present in the related request, this response shall be returned when a single consecutive + byte range from the content of the artifact file has been read successfully according to the + request. + + The response body shall contain the requested part of the artifact file from the NSD archive, + as defined by ETSI GS NFV-SOL 007. + + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. + If the content type cannot be determined, the header shall be set to the value + "application/octet-stream". + + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PNFDescriptors.Post.201: + description: | + 201 CREATED + + Shall be returned when a new "Individual PNF descriptor" + resource and the associated PNF descriptor identifier + has been created successfully. + The response body shall contain a representation of the + created PNF descriptor resource, as defined in clause 5.5.2.5. + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created PNF descriptor resource. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + + PNFDescriptors.Get.200: + description: | + 200 OK + + Shall be returned when information about zero or more PNF descriptors has + been queried successfully. + The response body shall contain in an array the representations of zero or + more PNF descriptors, as defined in clause 5.5.2.5. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in + this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + description: | + Information about zero or more PNF descriptors. + The response body shall contain a representation in an array the representations + of zero or more PNF descriptors, as defined in clause 5.5.2.2. + If the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + type: array + items: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + + IndividualPnfDescriptor.Get.200: + description: | + 200 OK + + Shall be returned when information about the individual PNFD + descriptor has been read successfully. + The response body shall contain a representation of the + individual PNF descriptor, as defined in clause 5.5.2.5. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + + IndividualPnfDescriptor.Patch.200: + description: | + 200 OK + + Shall be returned when the operation has been accepted + and completed successfully. + The response body shall contain attribute modifications + for an 'Individual PNF Descriptor' resource (see clause 5.5.2.4). + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" + + IndividualPnfDescriptor.Delete.200: + description: | + 204 NO CONTENT + + Shall be returned when the operation + has completed 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdArchiveContent.Get.200: + description: | + 200 OK + + Shall be returned when the content of the PNFD archive has + been read successfully. + The payload body shall contain a copy of the PNFD archive + The "Content-Type" HTTP header shall be set to "application/zip". + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdArchiveContent.Get.206: + description: | + 206 PARTIAL CONTENT + + If the NFVO supports range requests, this response shall be returned + when a single consecutive byte range from the content of the PNFD archive + has been read successfully according to the request. + The response body shall contain the requested part of the PNFD archive. + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for the "200 OK" response. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + Content-Range: + description: The Content-Range response HTTP header indicates where in a full body message a partial message belongs. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdArchiveContent.Put.200: + description: | + 202 ACCEPTED + + Shall be returned when the PNFD archive has been accepted for uploading, + but the processing has not been completed. It is expected to take some + time for processing (asynchronous mode). + The response body shall be empty. + The API consumer can track the uploading progress by receiving the + "PnfdOnBoardingNotification" and "PnfdOnBoardingFailureNotification" + from the NFVO or by reading the status of the individual PNF descriptor + resource using the GET method. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdArchiveContent.Put.204: + description: | + 204 NO CONTENT + + Shall be returned when the PNFD archive content has been + uploaded and validated 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PNFD.Get.200: + description: | + 200 OK + + Shall be returned when the content of the PNFD has been read successfully. + The payload body shall contain a copy of the file representing the PNFD + or a ZIP file that contains the file or multiple files representing the + PNFD, as specified above. + The "Content-Type" HTTP header shall be set according to the format of + the returned file. It shall be set to "text/plain" for a YAML file. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdArchiveManifest.Get.200: + description: | + Shall be returned when the content of the manifest file has been + read successfully. + If the "include_signatures" URI query parameter was absent in the + request, or if the manifest file has all security-related information + embedded (i.e. there is no separate certificate file), the payload + body shall contain a copy of the manifest file of the PNFD archive, + and the "Content-Type" HTTP header shall be set to "text/plain". + If the "include_signatures" URI query parameter was present in the + related request and the manifest file does not have all the + security-related information embedded (i.e. there is a separate certificate file), + the "Content-Type" HTTP header shall be set to "application/zip" and + the payload body shall contain a ZIP archive which includes: + - a copy of the manifest file of the PNFD archive; + - a copy of the related individual certificate file. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + enum: + - text/plain + - application/zip + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + IndividualPnfdArchiveArtifact.Get.200: + description: | + 200 OK + + Shall be returned when the 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 PNFD archive, 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/octetstream". 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 NFVSOL 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 request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + IndividualPnfdArchiveArtifact.Get.206: + description: | + 206 PARTIAL CONTENT + + If the NFVO supports range requests and the "include_signatures" request URI parameter was + not present in the related request, this response shall be returned when a single consecutive + byte range from the content of the artifact file has been read successfully according to the + request. + + The response body shall contain the requested part of the artifact file from the PNFD archive, + as defined by ETSI GS NFV-SOL 004. + + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. + If the content type cannot be determined, the header shall be set to the value + "application/octet-stream". + + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + Subscriptions.Post.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 5.5.2.8. + The HTTP response shall include a "Location:" HTTP header that points + to the created "Individual subscription" resource. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" + + Subscriptions.Get.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 NSD management subscriptions as defined in clause 5.5.2.8. + If the "filter" URI parameter was supplied in the request, the data in the + response body shall have been transformed according to the rules specified in + clause 5.2.2 of ETSI GS NFV-SOL 013. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header in this + response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + description: | + 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 NSD management + subscriptions as defined in clause 5.5.2.8. + If the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3. + type: array + items: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" + + IndividualSubscription.Get.200: + description: | + 200 OK + + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the subscription resource. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" + + IndividualSubscription.Delete.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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml index 7daa3082980ba80803eaea6d103a2bb3b27da6b6..c246405cf40033b2609021fbff5e2cf75452788f 100644 --- a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -10,6 +10,11 @@ definitions: NsdInfo that can be modified are included in the NsdInfoModifications data type.NOTE: At least one of the attributes - nsdOperationalState and userDefinedData - shall be present. + oneOf: + - required: + - nsdOperationalState + - required: + - userDefinedData properties: nsdOperationalState: $ref: "#/definitions/NsdOperationalStateType" @@ -17,7 +22,7 @@ definitions: description: > Modifications of the userDefinedData attribute in NsdInfo data type. See note. If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]). + according to the rules of JSON Merge Patch (see IETF RFC 7396). NOTE- At least one of the attributes - nsdOperationalState and userDefinedData - shall be present. type: array items: @@ -25,6 +30,11 @@ definitions: NsdInfo: type: object + anyOf: + - required: + - vnfPkgIds + - required: + - nestedNsdInfoIds required: - id - nsdOnboardingState @@ -263,7 +273,7 @@ definitions: userDefinedData: description: > User defined data for the individual PNF descriptor resource. - This attribute can be modified with the PATCH method. + This attribute can be modified with the Patch method. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" _links: required: @@ -359,6 +369,17 @@ definitions: NOTE 2: The attributes "pnfdId" and "pnfdInfoId" are alternatives to reference to a particular PNFD in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. + anyOf: + - oneOf: + - required: + - nsdId + - required: + - nsdInfoId + - oneOf: + - required: + - pnfdId + - required: + - pnfdInfoIds properties: notificationTypes: description: > @@ -515,7 +536,8 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" checksum: description: > - Checksum of the artifact file. + Checksum of the artifact file. Permitted hash algorithms are + defined in ETSI GS NFV-SOL 007. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" metadata: description: > @@ -539,7 +561,8 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" checksum: description: > - Checksum of the artifact file. + Checksum of the artifact file. Permitted hash algorithms are + defined in ETSI GS NFV-SOL 004. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" nonManoArtifactSetId: description: > diff --git a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml index 8c836242c9a48d237439144a8d01bcf97c1eb88d..7de59c9a301af9b6351edd5a26456bd1981f8974 100644 --- a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml +++ b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml @@ -1,1010 +1,877 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL005 - NSD Management Notification interface - description: > + description: | SOL005 - NSD Management Notification interface + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf - -basePath: /callback/v2 - -schemes: - - http - - https + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -consumes: - - application/json -produces: - - application/json +servers: + - url: http://127.0.0.1/callback/v2 + - url: https://127.0.0.1/callback/v2 paths: ############################################################################### # Notification endpoint NsdOnBoardingNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdOnBoardingNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_NsdOnBoardingNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: NsdOnBoardingNotification - description: > - A notification about the successful on-boarding of an NSD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdOnBoardingNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsdOnBoardingNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdOnBoardingNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdOnBoardingNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Notification endpoint NsdOnBoardingFailureNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdOnBoardingFailureNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_NsdOnBoardingFailureNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: NsdOnBoardingFailureNotification - description: > - A notification about the failure of on-boarding an NSD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdOnBoardingFailureNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsdOnBoardingFailureNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdOnBoardingFailureNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdOnBoardingFailureNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Notification endpoint NsdChangeNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdChangeNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_NsdChangeNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: NsdChangeNotification - description: > - A notification about the state change of an on-boarded NSD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdChangeNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsdChangeNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdChangeNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdChangeNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Notification endpoint NsdDeletionNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdDeletionNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_NsdDeletionNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: NsdDeletionNotification - description: > - A notification about the deletion of an on-boarded NSD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdDeletionNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsdDeletionNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdDeletionNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/NsdDeletionNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Notification endpoint PnfdOnBoardingNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_PnfdOnBoardingNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_PnfdOnBoardingNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: PnfdOnBoardingNotification - description: > - A notification about the successful on-boarding of a PNFD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/PnfdOnBoardingNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/PnfdOnBoardingNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdOnBoardingNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdOnBoardingNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Notification endpoint PnfdOnBoardingFailureNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_PnfdOnBoardingFailureNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_PnfdOnBoardingFailureNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: PnfdOnBoardingFailureNotification - description: > - A notification about the failure of on-boarding a PNFD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/PnfdOnBoardingFailureNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/PnfdOnBoardingFailureNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdOnBoardingFailureNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdOnBoardingFailureNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Notification endpoint PnfdDeletionNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_PnfdDeletionNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_PnfdDeletionNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about NSD and PNFD changes - description: > + description: | The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Table 5.4.10.3.1-2. parameters: - - name: PnfdDeletionNotification - description: > - A notification about the deletion of an on-boarded PNFD. - in: body - required: true - schema: - $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/PnfdDeletionNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/PnfdDeletionNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdDeletionNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the Table 5.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PnfdDeletionNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" + +components: + requestBodies: + NsdOnBoardingNotification: + description: | + A notification about the successful on-boarding of an NSD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdOnBoardingNotification" + required: true + + NsdOnBoardingFailureNotification: + description: | + A notification about the failure of on-boarding an NSD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdOnBoardingFailureNotification" + required: true + + NsdChangeNotification: + description: | + A notification about the state change of an on-boarded NSD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdChangeNotification" + required: true + + NsdDeletionNotification: + description: | + A notification about the deletion of an on-boarded NSD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/NsdDeletionNotification" + required: true + + PnfdOnBoardingNotification: + description: | + A notification about the successful on-boarding of a PNFD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/PnfdOnBoardingNotification" + required: true + + PnfdOnBoardingFailureNotification: + description: | + A notification about the failure of on-boarding a PNFD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/PnfdOnBoardingFailureNotification" + required: true + + PnfdDeletionNotification: + description: | + A notification about the deletion of an on-boarded PNFD. + content: + application/json: + schema: + $ref: "definitions/SOL005NSDescriptorManagementNotification_def.yaml#/definitions/PnfdDeletionNotification" + required: true + + responses: + NsdOnBoardingNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdOnBoardingNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdOnBoardingFailureNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdOnBoardingFailureNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdChangeNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdChangeNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdDeletionNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + NsdDeletionNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdOnBoardingNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdOnBoardingNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdOnBoardingFailureNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + + PnfdOnBoardingFailureNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdDeletionNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PnfdDeletionNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 0f25c5cf4d7c353faeaeac9a198139258c3db398..29b31e42ecacf63c9e453ee55b37d9285659fce7 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -1,707 +1,586 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NS Fault Management Interface" - description: > + title: SOL005 - NS Fault Management Interface + description: | SOL005 - NS Fault Management Interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been - approved by the ETSI NFV ISG. In case of discrepancies the published ETSI - Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification + it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group + Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - contact: - name: "NFV-SOL WG" + version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /nsfm/v1 -schemes: - - http - - https -consumes: - - application/json -produces: - - application/json + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf + +servers: + - url: http://127.0.0.1/nsfm/v1 + - url: https://127.0.0.1/nsfm/v1 + paths: - ############################################################################### - # API Versions # - ############################################################################### - '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - ############################################################################### - # Alarms # - ############################################################################### - '/alarms': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.2 + /alarms: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Query alarms related to NS instances. - description: > + description: | Get Alarm List. - - The API consumer can use this method to retrieve information about the alarm list. - This method shall follow the provisions specified in the Tables 8.4.2.3.2-1 and 8.4.2.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The API consumer can use this method to retrieve information about the alarm list. This method shall follow the + provisions specified in the Tables 8.4.2.3.2-1 and 8.4.2.3.2-2 for URI query parameters, request and response + data structures, and response codes. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - The following attribute names shall be supported by the NFVO in the filter - expression: - - id - - nsInstanceId - - rootCauseFaultyComponent.faultyNestedNsInstanceId - - rootCauseFaultyComponent.faultyNsVirtualLinkInstanceId - - rootCauseFaultyComponent.faultyVnfInstanceId - - rootCauseFaultyResource.faultyResourceType - - eventType - - perceivedSeverity - - probableCause - - name: nextpage_opaque_marker - in: query - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV SOL 013. - required: false - type: string - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK - - Shall be returned when information about zero or more alarms has been queried successfully. - The response body shall contain the list of related alarms. - 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 clauses 5.2.2 of ETSI GS NFV-SOL 013. - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 - for this resource, inclusion of the Link HTTP header in this response shall follow the provisions - in clause 5.4.2.3 of ETSI GS NFV-SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - properties: - Alarm: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "200": + $ref: '#/components/responses/Alarms.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual alarm # - ############################################################################### - '/alarms/{alarmId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.3 + /alarms/{alarmId}: parameters: - - name: alarmId - description: > - Identifier of the alarm. - This identifier can be retrieved from the "id" attribute of the "alarm" attribute in the AlarmNotification or - AlarmClearedNotification. - It can also be retrieved from the "id" attribute of the applicable array element in the - payload body of the response to a GET request to the "Alarms" resource. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/AlarmId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read individual alarm. - description: > - The API consumer can use this method to read an individual alarm. - This method shall follow the provisions specified in the Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The API consumer can use this method to read an individual alarm. This method shall follow the provisions + specified in the Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, request and response data + structures, and response codes. parameters: - - name: Accept - description: > - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualAlarm.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about an individual alarm has been read successfully. - The response body shall contain a representation of the individual alarm. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - properties: - Alarm: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" patch: summary: Acknowledge individual alarm. - description: > + description: | Acknowledge Alarm - - This method modifies an individual alarm resource. - This method shall follow the provisions specified in the Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, - request and response data structures, and response codes. + This method modifies an individual alarm resource. This method shall follow the provisions specified in the + Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, request and response data structures, and response + codes. parameters: - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications" - description: > - The parameter for the alarm modification, as defined in clause 8.5.2.8. - - 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 Content-Type header shall be set to - "application/merge-patch+json" according to - IETF RFC 7396. - in: header - required: true - type: string - enum: - - application/merge-patch+json + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/AlarmModificationRequest' responses: - 200: - description: > - 200 OK - - Shall be returned when the request has been accepted and completed. - The response body shall contain attribute modifications for an 'Individual alarm' - resource (see clause 8.5.2.8). - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - properties: - AlarmModifications: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the "Individual alarm" - resource. - Typically, this is due to the fact that the alarm is - already in the state that is requested to be set (such - as trying to acknowledge an already-acknowledged - alarm). - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "200": + $ref: '#/components/responses/IndividualAlarm.Patch' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "412": + $ref: ../responses/SOL005_resp.yaml#/components/responses/412 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################## - #Subscriptions # - ############################################################################## - '/subscriptions': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.4 + /subscriptions: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - post: - summary: Subscribe to alarms related to NSs. - description: > - The POST method creates a new subscription. - This method shall follow the provisions specified in the Tables 8.4.4.3.1-1 and 8.4.4.3.1-2 for URI query - parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual subscription" resource shall exist - as defined in clause 8.4.5. This method shall not trigger any notification. - Creation of two subscription resources with the same callbackURI and the same filter can result in performance - degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare - use cases. Consequently, the NFVO may either allow creating a subscription resource if another subscription - resource with the same filter and callbackUri already exists (in which case it shall return the "201 Created" - response code), or may decide to not create a duplicate subscription resource (in which case it shall return - a "303 See Other" response code referencing the existing subscription resource with the same filter and callbackUri). - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" - description: > - Details of the subscription to be created, as defined in clause 8.5.2.2. - responses: - 201: - description: > - 201 Created - - Shall be returned when the subscription has been created successfully. - The response body shall contain a representation of the created subscription resource. - The HTTP response shall include a "Location:" HTTP header that points to the created subscription resource. - schema: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 303: - $ref: "../responses/SOL005_resp.yaml#/responses/303" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 422: - $ref: "../responses/SOL005_resp.yaml#/responses/422" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Query multiple subscriptions. - description: > + description: | Query Subscription Information - - The API consumer can use this method to retrieve the list of active subscriptions for alarms related to an NS subscribed - by the API consumer. It can be used e.g. for resynchronization after error situations. - This method shall follow the provisions specified in the Tables 8.4.4.3.2-1 and 8.4.4.3.2-2 for URI query parameters, + The API consumer can use this method to retrieve the list of active subscriptions for alarms related to an NS + subscribed by the API consumer. It can be used e.g. for resynchronization after error situations. This method + shall follow the provisions specified in the Tables 8.4.4.3.2-1 and 8.4.4.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. The - OSS/BSS may supply this parameter. - All attribute names that appear in the FmSubscription and in data types referenced from it - shall be supported by the NFVO in the filter expression. - - name: nextpage_opaque_marker - in: query - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO if the NFVO - supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - required: false - type: string - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/FmSubscriptions.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the list of subscriptions has - been queried successfully. - The response body shall contain in an array the - representations of all active subscriptions of the - functional block that invokes the method, i.e. zero or - more representations of FM subscriptions, as - defined in clause 8.5.2.3. - If the "filter" URI parameter was supplied in the - request, the data in the response body shall have - been transformed according to the rules specified in - clause 5.2.2 of ETSI GS NFV-SOL 013 [16]. - If the NFVO supports alternative 2 (paging) - according to clause 5.4.2.1 of ETSI - GS NFV-SOL 013 [16] for this resource, inclusion of - the Link HTTP header in this response shall follow - the provisions in clause 5.4.2.3 of ETSI - GS NFV-SOL 013 [16]. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + post: + summary: Subscribe to alarms related to NSs. + description: | + The POST method creates a new subscription. This method shall follow the provisions specified in the Tables + 8.4.4.3.1-1 and 8.4.4.3.1-2 for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual subscription" resource shall exist as + defined in clause 8.4.5. This method shall not trigger any notification. Creation of two subscription resources + with the same callbackURI and the same filter can result in performance degradation and will provide duplicates + of notifications to the OSS, and might make sense only in very rare use cases. Consequently, the NFVO may either + allow creating a subscription resource if another subscription resource with the same filter and callbackUri + already exists (in which case it shall return the "201 Created" response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing the + existing subscription resource with the same filter and callbackUri). + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/FmSubscriptionRequest' + responses: + "201": + $ref: '#/components/responses/FmSubscriptions.Post' + "303": + $ref: ../responses/SOL005_resp.yaml#/components/responses/303 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual subscription # - ############################################################################### - '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.5 + /subscriptions/{subscriptionId}: parameters: - - name: subscriptionId - description: > - Identifier of this subscription. - This identifier can be retrieved from the resource referenced by the - "Location" HTTP header in the response to a POST request creating a - new subscription resource. It can also be retrieved from the "id" - attribute in the payload body of that response. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/SubscriptionId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read an individual subscription. - description: > + description: | Query Subscription Information - - The API consumer can use this method for reading an individual subscription for alarms related to NSs subscribed by - the API consumer. - This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The API consumer can use this method for reading an individual subscription for alarms related to NSs subscribed + by the API consumer. This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualFmSubscription.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about an individual subscription has been read successfully. - The response body shall contain a representation of the subscription resource. - 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: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: summary: Terminate a subscription. - description: > + description: | Terminate Subscription - - 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 terminates an individual subscription. As the result of successfully executing this method, the + "Individual subscription" resource shall not exist any longer. This means that no notifications for that + subscription shall be sent to the formerly-subscribed API consumer. NOTE: Due to race conditions, some + notifications might still be received by the formerly-subscribed API consumer for a certain time period after + the deletion. responses: - 204: - description: > - 204 - No Content + "204": + $ref: '#/components/responses/IndividualFmSubscription.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + +components: + parameters: + AlarmId: + name: alarmId + in: path + description: | + Identifier of the alarm. This identifier can be retrieved from the "id" attribute of the "alarm" attribute + in the AlarmNotification or AlarmClearedNotification. It can also be retrieved from the "id" attribute of + the applicable array element in the payload body of the response to a GET request to the "Alarms" resource. + required: true + style: simple + explode: false + schema: + type: string + + SubscriptionId: + name: subscriptionId + in: path + description: | + Identifier of this subscription. This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a new subscription resource. It can also + be retrieved from the "id" attribute in the payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + AlarmModificationRequest: + description: | + The parameter for the alarm modification, as defined in clause 8.5.2.8. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications + required: true + + FmSubscriptionRequest: + description: | + Details of the subscription to be created, as defined in clause 8.5.2.2. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscriptionRequest + required: true + + responses: + Alarms.Get: + description: | + 200 OK + Shall be returned when information about zero or more alarms has been queried successfully. The response body + shall contain the list of related alarms. 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 clauses 5.2.2 of ETSI GS + NFV-SOL 013. If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause + 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm + + IndividualAlarm.Get: + description: | + 200 OK + Shall be returned when information about an individual alarm has been read successfully. The response body + shall contain a representation of the individual alarm. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm - Shall be returned when the subscription resource has been deleted successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + IndividualAlarm.Patch: + description: | + 200 OK + Shall be returned when the request has been accepted and completed. The response body shall contain attribute + modifications for an 'Individual alarm' resource (see clause 8.5.2.8). + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications + + FmSubscriptions.Get: + 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 FM subscriptions, as defined in clause 8.5.2.3. If the "filter" + URI parameter was supplied in the request, the data in the response body shall have been transformed according + to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013 [16]. If the NFVO supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] for this resource, inclusion of the Link HTTP header + in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013 [16]. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription + + FmSubscriptions.Post: + description: | + 201 Created + Shall be returned when the subscription has been created successfully. The response body shall contain a + representation of the created subscription resource. The HTTP response shall include a "Location:" HTTP + header that points to the created subscription resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription + + IndividualFmSubscription.Get: + description: | + 200 OK + Shall be returned when information about an individual subscription has been read successfully. The response + body shall contain a representation of the subscription resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription + + IndividualFmSubscription.Delete: + description: | + 204 - No Content + Shall be returned when the subscription resource has been deleted successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} \ No newline at end of file diff --git a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml index 2b3b9afc39b59851c7b184e527a87de77d384f29..1da3614c14c5e1675fff66b391cc4b558b66a85e 100644 --- a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -1,445 +1,351 @@ -swagger: "2.0" - +openapi: 3.0.2 info: - version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NS Fault Management Notification interface" - description: > + title: SOL005 - NS Fault Management Notification interface + description: | SOL005 - NS Fault Management Notification interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to. In case of - discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it + refers to. In case of discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf - -basePath: /callback/v1 - -schemes: - - http - - https + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -consumes: - - application/json -produces: - - application/json +servers: + - url: http://127.0.0.1/callback/v1 + - url: https://127.0.0.1/callback/v1 paths: - ################################################################################## - # Notification endpoint NS Fault Management # - ################################################################################## - '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Test the notification endpoint. + description: | + The GET method allows the server to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "204": + $ref: '#/components/responses/AlarmNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + post: summary: Notify about NS alarms - description: > - The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. - The API consumer shall have previously created an "individual subscription resource" with a matching filter. + description: | + The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. The API consumer + shall have previously created an "individual subscription resource" with a matching filter. parameters: - - name: alarmNotification - description: > - Information of an NS alarm. - in: body - required: true - schema: - $ref: "definitions/SOL005NSFaultManagementNotification_def.yaml#/definitions/AlarmNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/AlarmNotificationRequest' responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/AlarmNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - Shall be returned when the notification has been delivered successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Test the notification endpoint. - description: > - The GET method allows the server to test the notification endpoint that is provided by - the API consumer, e.g. during subscription. + description: | + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/AlarmClearedNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.6 post: summary: Notify about NS alarms - description: > + description: | The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. parameters: - - name: alarmClearedNotification - description: > - Information of the clearance of an NS alarm. - in: body - required: true - schema: - $ref: "definitions/SOL005NSFaultManagementNotification_def.yaml#/definitions/AlarmClearedNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/AlarmClearedNotificationRequest' responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/AlarmClearedNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - The notification was delivered successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Test the notification endpoint. - description: > - The GET method allows the server to test the notification endpoint that is provided by - the client, e.g. during subscription. + description: | + The GET method allows the server to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 204: - description: > - 204 No Content - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "204": + $ref: '#/components/responses/AlarmListRebuiltNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': post: summary: Notify about NS alarms - description: > + description: | The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. parameters: - - name: AlarmListRebuiltNotification - description: > - Information that the alarm list has been rebuilt by the NFVO. - in: body - required: true - schema: - $ref: "definitions/SOL005NSFaultManagementNotification_def.yaml#/definitions/AlarmListRebuiltNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/AlarmListRebuiltNotificationRequest' responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/AlarmListRebuiltNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - The notification was delivered successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - get: - summary: Test the notification endpoint. - description: > - The GET method allows the server to test the notification endpoint that is provided by - the API consumer, e.g. during subscription. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 204: - description: > - 204 No Content +components: + requestBodies: + AlarmNotificationRequest: + description: | + Information of an NS alarm. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagementNotification_def.yaml#/definitions/AlarmNotification + required: true + + AlarmClearedNotificationRequest: + description: | + Information of the clearance of an NS alarm. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagementNotification_def.yaml#/definitions/AlarmClearedNotification + required: true + + AlarmListRebuiltNotificationRequest: + description: | + Information that the alarm list has been rebuilt by the NFVO. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSFaultManagementNotification_def.yaml#/definitions/AlarmListRebuiltNotification + required: true + + responses: + AlarmNotification.Get: + description: | + 204 No Content + Shall be returned when the notification endpoint has been tested successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + AlarmNotification.Post: + description: | + 204 No Content + Shall be returned when the notification has been delivered successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + AlarmClearedNotification.Get: + description: | + 204 No Content + Shall be returned when the notification endpoint has been tested successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + AlarmClearedNotification.Post: + description: | + 204 No Content + The notification was delivered successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + AlarmListRebuiltNotification.Get: + description: | + 204 No Content + Shall be returned when the notification endpoint has been tested successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + AlarmListRebuiltNotification.Post: + description: | + 204 No Content + The notification was delivered successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index c1dabb7515fe47dc1fbd8cad458a505603ab4793..16c73d238527797fc72ccfe598a1bc7e6927305d 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -1,2175 +1,1850 @@ -swagger: "2.0" +openapi: 3.0.2 + info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NS Lifecycle Management Interface" - description: > + title: SOL005 - NS Lifecycle Management Interface + description: | SOL005 - NS Lifecycle Management Interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been - approved by the ETSI NFV ISG. In case of discrepancies the published ETSI - Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it + refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification + takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - contact: - name: "NFV-SOL WG" + version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /nslcm/v1 -schemes: - - http - - https -consumes: - - application/json -produces: - - application/json + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf + +servers: + - url: http://127.0.0.1/nslcm/v1 + - url: https://127.0.0.1/nslcm/v1 + paths: - ############################################################################### - # API Versions # - ############################################################################### - '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - ############################################################################### - # NSInstances # - ############################################################################### - '/ns_instances': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.2 + /ns_instances: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - post: - summary: Create a NS instance resource. - description: > - The POST method creates a new NS instance resource. - As the result of successfully executing this method, a new "Individual NS instance" resource as defined in clause 6.4.3 - shall have been created, and the value of the "instantiationState" attribute in the representation of that resource shall be - "NOT_INSTANTIATED". A notification of type NsIdentifierCreationNotification shall be triggered as part of - successfully executing this method as defined in clause 6.5.2.6. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest" - description: > - The NS creation parameters, as defined in clause 6.5.2.7. - responses: - 201: - description: > - 201 Created - - Shall be returned when a new "Individual NS - instance" resource and the associated NS instance - identifier has been created successfully. - The response body shall contain a representation of - the created NS instance, as defined in - clause 6.5.2.10. - The HTTP response shall include a "Location" HTTP - header that contains the resource URI of the created - NS instance. - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Query multiple NS instances. - description: > + description: | Query NS Instances. - - The GET method queries information about multiple NS instances. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + The GET method queries information about multiple NS instances. This method shall support the URI query parameters, + request and response data structures, and response codes, as specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. - The NFVO shall support receiving this parameter as part of the URI - query string. The OSS/BSS may supply this parameter. - All attribute names that appear in the NsInstance and in data types - referenced from it shall be supported by the NFVO in the filter expression. - - name: all_fields - in: query - required: false - type: string - description: > - Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. - The NFVO shall support this parameter. - - name: fields - in: query - required: false - type: string - description: > - "Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for - details. The NFVO should support this parameter." - - name: exclude_fields - in: query - required: false - type: string - description: > - "Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for - details. The NFVO should support this parameter." - - name: exclude_default - in: query - required: false - type: string - description: > - "Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter. - The following attributes shall be excluded from the NsInstance structure in - the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - - vnfInstances - - pnfInfo - - virtualLinkInfo - - vnffgInfo - - sapInfo - - nsScaleStatus - - additionalAffinityOrAntiAffinityRules" - - name: nextpage_opaque_marker - in: query - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource. - required: false - type: string - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/NsInstances.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about zero or - more NS instances has been queried successfully. - The response body shall contain in an array the - representations of zero or more NS instances, as - defined in clause 6.5.2.8. - If the "filter" URI parameter or one of the "all_fields", - "fields" (if supported), "exclude_fields" (if supported) - or "exclude_default" URI parameters was supplied in - the request, the data in the response body shall have - been transformed according to the rules specified in - clauses 5.2.2 and 5.3.2 of ETSI - GS NFV-SOL 013 [16], respectively. - If the NFVO supports alternative 2 (paging) - according to clause 5.4.2.1 of ETSI - GS NFV-SOL 013 [16] for this resource, inclusion of - the Link HTTP header in this response shall follow - the provisions in clause 5.4.2.3 of ETSI - GS NFV-SOL 013 [16]. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - properties: - NsInstance: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + post: + summary: Create a NS instance resource. + description: | + The POST method creates a new NS instance resource. As the result of successfully executing this method, a new + "Individual NS instance" resource as defined in clause 6.4.3 shall have been created, and the value of the + "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED". A notification + of type NsIdentifierCreationNotification shall be triggered as part of successfully executing this method as defined + in clause 6.5.2.6. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsInstanceCreateRequest' + responses: + "201": + $ref: '#/components/responses/NsInstances.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual NS instance # - ############################################################################### - '/ns_instances/{nsInstanceId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.3 + /ns_instances/{nsInstanceId}: parameters: - - name: nsInstanceId - description: > - Identifier of the NS instance. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/NsInstanceId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read an individual NS instance resource. - description: > - The GET method retrieves information about a NS instance by - reading an individual NS instance resource. + description: | + The GET method retrieves information about a NS instance by reading an individual NS instance resource. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType responses: - 200: - description: > - 200 OK - - Shall be returned when information about an - individual NS instance has been read successfully. - The response body shall contain a representation of - the NS instance, as defined in clause 6.5.2.10. - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + "200": + $ref: '#/components/responses/IndividualNsInstance.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 delete: summary: Delete NS instance resource. - description: > + description: | Delete NS Identifier - - This method deletes an individual NS instance resource. - As the result of successfully executing this method, the "Individual NS instance" resource shall not exist any longer. - A notification of type "NsIdentifierDeletionNotification" shall be triggered as part of successfully executing this method - as defined in clause 6.5.2.7. + This method deletes an individual NS instance resource. As the result of successfully executing this method, the + "Individual NS instance" resource shall not exist any longer. A notification of type "NsIdentifierDeletionNotification" + shall be triggered as part of successfully executing this method as defined in clause 6.5.2.7. responses: - 204: - description: > - 204 No Content - - Shall be returned when the "Individual NS instance" - resource and the associated NS identifier have been - deleted successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT + "204": + $ref: '#/components/responses/IndividualNsInstance.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "412": + $ref: ../responses/SOL005_resp.yaml#/components/responses/412 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the resource. - Typically, this is due to the fact that the NS instance - resource is in INSTANTIATED state. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Instantiate NS task # - ############################################################################### - '/ns_instances/{nsInstanceId}/instantiate': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.4 + /ns_instances/{nsInstanceId}/instantiate: parameters: - - name: nsInstanceId - description: > - Identifier of the NS instance to be instantiated. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsInstanceId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Instantiate a NS. - description: > - The POST method requests to instantiate a NS instance resource. - The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. - In addition, once the NFVO has successfully completed the underlying NS LCM operation occurrence, it shall set the - "nsState" attribute to the value "INSTANTIATED" in the representation of the "Individual NS instance" resource. + description: | + The POST method requests to instantiate a NS instance resource. The steps and conditions that apply as the result + of successfully executing this method are specified in clause 6.4.1.2. In addition, once the NFVO has successfully + completed the underlying NS LCM operation occurrence, it shall set the "nsState" attribute to the value "INSTANTIATED" + in the representation of the "Individual NS instance" resource. parameters: - - name: Accept - description: > - 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 - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest" - description: > - Parameters for the instantiate NS operation, as defined in - clause 6.5.2.11. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsInstanceInstantiateRequest' responses: - 202: - description: > - 202 ACCEPTED + "202": + $ref: '#/components/responses/InstantiateNsInstance.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the request has been - accepted for processing, but the processing has not - been completed. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP - header that contains the URI of the newly-created - "Individual NS LCM operation occurrence" resource - corresponding to the operation. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - 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 NS instance - resource is in the 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. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Scale NS task # - ############################################################################### - '/ns_instances/{nsInstanceId}/scale': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.5 + /ns_instances/{nsInstanceId}/scale: parameters: - - name: nsInstanceId - description: > - Identifier of the NS instance to be scaled. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsInstanceId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Scale a NS instance. - description: > - The POST method requests to scale a NS instance resource. - The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. - In addition, once the NFVO has successfully completed the underlying NS LCM operation occurrence, it shall reflect - the result of scaling the NS instance by updating the "nsScaleStatus" attribute in the representation of the "Individual - NS instance" resource. + description: | + The POST method requests to scale a NS instance resource. The steps and conditions that apply as the result of + successfully executing this method are specified in clause 6.4.1.2. In addition, once the NFVO has successfully + completed the underlying NS LCM operation occurrence, it shall reflect the result of scaling the NS instance by + updating the "nsScaleStatus" attribute in the representation of the "Individual NS instance" resource. parameters: - - name: Accept - description: > - 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 - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest" - description: > - Parameters for the scale NS operation, as defined in - clause 6.5.2.14. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsInstanceScaleRequest' responses: - 202: - description: > - 202 ACCEPTED - - Shall be returned when the request has been - accepted for processing, but the processing has not - been completed. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP - header that contains the URI of the newly-created - "Individual NS lifecycle operation occurrence" - resource corresponding to the operation. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT + "202": + $ref: '#/components/responses/ScaleNsInstance.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the resource. - Typically, this is due to the fact that the NS instance - resource is in NOT_INSTANTIATED state, or that - another lifecycle management operation is ongoing. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Update NS task # - ############################################################################### - '/ns_instances/{nsInstanceId}/update': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.6 + /ns_instances/{nsInstanceId}/update: parameters: - - name: nsInstanceId - description: > - Identifier of the NS instance to be updated. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsInstanceId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Updates a NS instance. - description: > + description: | The POST method updates an NS instance. 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: 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 - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest" - description: > - Parameters for the update NS operation, as defined in clause 6.5.2.12. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsInstanceUpdateRequest' responses: - 202: - description: > - 202 ACCEPTED - - Shall be returned when the request has been - accepted for processing, but the processing has not - been completed. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP - header that contains the URI of the newly-created - "Individual NS lifecycle operation occurrence" - resource corresponding to the operation. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - 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 NS instance - resource is in NOT_INSTANTIATED state, or that - another lifecycle management operation is ongoing. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + "202": + $ref: '#/components/responses/UpdateNsInstance.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Heal NS task # - ############################################################################### - '/ns_instances/{nsInstanceId}/heal': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.7 + /ns_instances/{nsInstanceId}/heal: parameters: - - name: nsInstanceId - description: > - Identifier of the NS instance to be healed. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsInstanceId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Heal a NS instance. - description: > - The POST method requests to heal an NS instance. - This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and 6.4.7.3.1-2 for URI query parameters, - request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. + description: | + The POST method requests to heal an NS instance. This method shall follow the provisions specified in the Tables + 6.4.7.3.1-1 and 6.4.7.3.1-2 for URI query parameters, request and response data structures, and response codes. + The steps and conditions that apply as the result of successfully executing this method are specified in clause + 6.4.1.2. parameters: - - name: Accept - description: > - 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 - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/HealNsRequest" - description: > - Parameters for the heal NS operation, as defined in clause 6.5.2.13. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsInstanceHealRequest' responses: - 202: - description: > - 202 ACCEPTED - - Shall be returned when the request has been - accepted for processing, but the processing has not - been completed. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP - header that contains the URI of the newly-created - "Individual NS lifecycle operation occurrence" - resource corresponding to the operation. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT + "202": + $ref: '#/components/responses/HealNsInstance.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the resource. - Typically, this is due to the fact that the NS instance - resource is in NOT_INSTANTIATED state, or that - another lifecycle management operation is ongoing. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Terminate NS task # - ############################################################################### - '/ns_instances/{nsInstanceId}/terminate': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.8 + /ns_instances/{nsInstanceId}/terminate: parameters: - - name: nsInstanceId - description: > - The identifier of the NS instance to be terminated. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsInstanceId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Terminate a NS instance. - description: > - Terminate NS task. - The POST method terminates an NS instance. - This method shall follow the provisions specified in the Tables 6.4.8.3.1-1 and 6.4.8.3.1-2 for URI query parameters, - request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. - In addition, once the NFVO has successfully completed the underlying NS LCM operation occurrence, it shall set the - "nsState" attribute in the representation of the "Individual NS instance" resource to the value "NOT_INSTANTIATED". - This method can only be used with an NS instance in the INSTANTIATED state. Terminating an NS instance does not - delete the NS instance identifier, but rather transitions the NS into the NOT_INSTANTIATED state. + description: | + Terminate NS task. The POST method terminates an NS instance. This method shall follow the provisions specified + in the Tables 6.4.8.3.1-1 and 6.4.8.3.1-2 for URI query parameters, request and response data structures, and + response codes. The steps and conditions that apply as the result of successfully executing this method are + specified in clause 6.4.1.2. In addition, once the NFVO has successfully completed the underlying NS LCM operation + occurrence, it shall set the "nsState" attribute in the representation of the "Individual NS instance" resource + to the value "NOT_INSTANTIATED". This method can only be used with an NS instance in the INSTANTIATED state. + Terminating an NS instance does not delete the NS instance identifier, but rather transitions the NS into the + NOT_INSTANTIATED state. parameters: - - name: Accept - description: > - 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 - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest" - description: > - The terminate NS request parameters, as defined in clause 6.5.2.15. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsInstanceTerminateRequest' responses: - 202: - description: > - 202 ACCEPTED + "202": + $ref: '#/components/responses/TerminateNsInstance.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the request has been - accepted for processing. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP - header that contains the URI of the newly-created - "NS lifecycle operation occurrence" resource - corresponding to the operation. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - 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 NS instance - resource is in NOT_INSTANTIATED state, or that - another lifecycle management operation is ongoing. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # NS LCM operation occurrences # - ############################################################################### - '/ns_lcm_op_occs': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.9 + /ns_lcm_op_occs: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Query multiple NS LCM operation occurrences. - description: > - Get Operation Status. - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the resource. - Typically, this is due to the fact that the NS instance - resource is in NOT_INSTANTIATED state, or that - another lifecycle management operation is ongoing. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error + description: | + Get Operation Status. Shall be returned upon the following error: The operation cannot be executed currently, + due to a conflict with the state of the resource. Typically, this is due to the fact that the NS instance resource + is in NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall + contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013[16]. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the NsLcmOpOcc and in data types referenced - from it shall be supported by the NFVO in the filter expression. - - name: fields - in: query - required: false - type: string - description: > - Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. The - NFVO should support this parameter. - - name: exclude_fields - in: query - required: false - type: string - description: > - Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. - The NFVO should support this parameter. - - name: exclude_default - in: query - required: false - type: string - description: > - Indicates to exclude the following complex attributes from the response. See - clause 5.3 of ETSI GS NFV SOL 013 for details. The NFVO shall support this parameter. - The following attributes shall be excluded from the NsLcmOpOcc structure in the - response body if this parameter is provided: - - operationParams - - changedVnfInfo - - error - - resourceChanges - - name: nextpage_opaque_marker - in: query - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV SOL 013 for this resource. - required: false - type: string - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK - - Shall be returned when status information for zero or - more NS lifecycle management operation occurrences - has been queried successfully. - The response body shall contain in an array the status - information about zero or more NS lifecycle operation - occurrences, as defined in clause 6.5.2.3. - If the "filter" URI parameter or one of the "all_fields", - "fields", "exclude_fields" or "exclude_default" URI - parameters was supplied in the request and is - supported, the data in the response body shall have - been transformed according to the rules specified in - clauses 5.2.2 and 5.3.2 of ETSI - GS NFV-SOL 013 [16], respectively. - If the NFVO supports alternative 2 (paging) according - to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] for - this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in - clause 5.4.2.3 of ETSI GS NFV-SOL 013 [16]. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - properties: - NsLcmOpOcc: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + "200": + $ref: '#/components/responses/NsLcmOpOccs.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual NS lifecycle operation occurrence # - ############################################################################### - '/ns_lcm_op_occs/{nsLcmOpOccId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.10 + /ns_lcm_op_occs/{nsLcmOpOccId}: parameters: - - name: nsLcmOpOccId - description: > - Identifier of a NS lifecycle management operation occurrence. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsLcmOpOccId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read an individual NS LCM operation occurrence resource. - description: > - The API consumer can use this method to retrieve status information about - a NS lifecycle management operation occurrence by - reading an individual "NS LCM operation occurrence" resource. - This method shall follow the provisions specified in the - Tables 6.4.10.3.2-1 and 6.4.10.3.2-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The API consumer can use this method to read status information about a NS lifecycle management operation + occurrence by reading an individual "NS LCM operation occurrence" resource. This method shall follow the provisions + specified in the Tables 6.4.10.3.2-1 and 6.4.10.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: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualNsLcmOpOcc.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about an NS - LCM operation occurrence has been read - successfully. - The response body shall contain status information - about an NS lifecycle management operation - occurrence (see clause 6.5.2.3). - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Retry operation task # - ############################################################################### - '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.11 + /ns_lcm_op_occs/{nsLcmOpOccId}/retry: parameters: - - name: nsLcmOpOccId - description: > - Identifier of a NS lifecycle management operation occurrence to be retried. - - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" - attribute in the NsLcmOperationOccurrenceNotification. - in: path - type: string - required: true + - $ref: '#/components/parameters/NsLcmOpOccId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Retry a NS lifecycle management operation occurrence. - description: > - The POST method initiates retrying a NS lifecycle management operation - if that operation has experienced a temporary - failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. - This method shall follow the provisions specified in the - Tables 6.4.11.3.1-1 and 6.4.11.3.1-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 + description: | + The POST method initiates retrying a NS lifecycle management operation if that operation has experienced a + temporary failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. This method shall + follow the provisions specified in the Tables 6.4.11.3.1-1 and 6.4.11.3.1-2 for URI query parameters, request + and response data structures, and response codes. responses: - 202: - description: > - 202 ACCEPTED + "202": + $ref: '#/components/responses/NsLcmOpOccRetry.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the request has been - accepted for processing, but processing has not been - completed. - The response shall have an empty payload body. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_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 [16], - including rules for the presence of the response body. - Specifically in case of this task resource, the response - code 404 shall also be returned if the task is not - supported for the NS LCM operation occurrence - represented by the parent resource, which means that - the task resource consequently does not exist. - In this case, the response body shall be present, and - shall contain a ProblemDetails structure, in which the - "detail" attribute shall convey more information about - the error. - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the NS LCM operation - occurrence resource. - Typically, this is due to the fact that the NS LCM - operation occurrence is not in FAILED_TEMP state, or - another error handling action is starting, such as - rollback or fail. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Rollback a NS lifecycle management operation occurrence. # - ############################################################################### - '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.12 + /ns_lcm_op_occs/{nsLcmOpOccId}/rollback: parameters: - - name: nsLcmOpOccId - description: > - Identifier of a NS lifecycle management operation occurrence to be rolled back. - - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" - attribute in the NsLcmOperationOccurrenceNotification. - in: path - required: true - type: string + - $ref: '#/components/parameters/NsLcmOpOccId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Rollback a NS lifecycle management operation occurrence. - description: > - The POST method initiates rolling back a NS lifecycle operation - if that operation has experienced a temporary failure, - i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. - This method shall follow the provisions specified in the - Tables 6.4.12.3.1-1 and 6.4.12.3.1-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 + description: | + The POST method initiates rolling back a NS lifecycle operation if that operation has experienced a temporary + failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. This method shall follow the + provisions specified in the Tables 6.4.12.3.1-1 and 6.4.12.3.1-2 for URI query parameters, request and response + data structures, and response codes. responses: - 202: - description: > - Shall be returned when the request has been - accepted for processing, but processing has not - been completed. - The response shall have an empty payload body. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_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 [16], including rules for the - presence of the response body. - Specifically, in case of this task resource, the - response code 404 shall also be returned if the task - is not supported for the NS LCM operation - occurrence represented by the parent resource, - which means that the task resource consequently - does not exist. - In this case, the response body shall be present, and - shall contain a ProblemDetails structure, in which the - "detail" attribute shall convey more information about - the error. - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the NS LCM operation - occurrence resource. - Typically, this is due to the fact that the NS LCM - operation occurrence is not in FAILED_TEMP state, - or another error handling action is starting, such as - retry or fail. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + "202": + $ref: '#/components/responses/NsLcmOpOccRollback.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Continue a NS lifecycle management operation occurrence. # - ############################################################################### - '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.13 + /ns_lcm_op_occs/{nsLcmOpOccId}/continue: parameters: - - name: nsLcmOpOccId - description: > - Identifier of a NS lifecycle management operation occurrence to be continued. - - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request triggering an NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" - attribute in the NsLcmOperationOccurrenceNotification. - in: path - required: true - type: string + - $ref: '#/components/parameters/NsLcmOpOccId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Continue a NS lifecycle management operation occurrence. - description: > - The POST method initiates continuing an NS lifecycle operation if that operation has experienced a temporary failure, - i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. - This method shall follow the provisions specified in the Tables 6.4.13.3.1-1 and 6.4.13.3.1-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 + description: | + The POST method initiates continuing an NS lifecycle operation if that operation has experienced a temporary + failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. This method shall follow the + provisions specified in the Tables 6.4.13.3.1-1 and 6.4.13.3.1-2 for URI query parameters, request and response + data structures, and response codes. responses: - 202: - description: > - 202 ACCEPTED + "202": + $ref: '#/components/responses/NsLcmOpOccContinue.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the request has been - accepted for processing, but processing has not - been completed. - The response shall have an empty payload body. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_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 [16], including rules for the - presence of the response body. - Specifically, in case of this task resource, the - response code 404 shall also be returned if the task - is not supported for the NS LCM operation - occurrence represented by the parent resource, - which means that the task resource consequently - does not exist. - In this case, the response body shall be present, and - shall contain a ProblemDetails structure, in which the - "detail" attribute shall convey more information about - the error. - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the NS LCM operation - occurrence resource. - Typically, this is due to the fact that the NS LCM - operation occurrence is not in FAILED_TEMP state, - or another error handling action is starting, such as - retry or fail. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Fail operation task # - ############################################################################### - '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.14 + /nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail: parameters: - - name: nsLcmOpOccId - description: > - Identifier of a NS lifecycle management operation occurrence to be marked as "failed". - - This identifier can be retrieved from the resource referenced by - he "Location" HTTP header in the response - to a POST request triggering a NS LCM operation. - It can also be retrieved from the "nsLcmOpOccId" - attribute in the NsLcmOperationOccurrenceNotification. - in: path - required: true - type: string + - $ref: '#/components/parameters/NsLcmOpOccId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Mark a NS lifecycle management operation occurrence as failed. - description: > - The POST method marks a NS lifecycle management operation - occurrence as "finally failed" if that operation + description: | + The POST method marks a NS lifecycle management operation occurrence as "finally failed" if that operation occurrence is in "FAILED_TEMP" state. 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK - - Shall be returned when the state of the NS lifecycle - management operation occurrence has been changed - successfully. - The response shall include a representation of the - "Individual NS lifecycle management operation occurrence" resource. - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - 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 [16], - including rules for the presence of the response body. - Specifically in case of this task resource, the response - code 404 shall also be returned if the task is not - supported for the NS LCM operation occurrence - represented by the parent resource, which means that - the task resource consequently does not exist. - In this case, the response body shall be present, and - shall contain a ProblemDetails structure, in which the - "detail" attribute shall convey more information about - the error. - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT - - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the NS LCM operation - occurrence resource. - Typically, this is due to the fact that the NS LCM - operation occurrence is not in FAILED_TEMP state, or - another error handling action is starting, such as retry - or rollback. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + "200": + $ref: '#/components/responses/NsLcmOpOccFail.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Cancel operation task # - ############################################################################### - '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.15 + /nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel: parameters: - - name: nsLcmOpOccId - description: > - Identifier of a NS lifecycle management operation occurrence to be canceled. - - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" - attribute in the NsLcmOperationOccurrenceNotification. - in: path - required: true - type: string + - $ref: '#/components/parameters/NsLcmOpOccId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: summary: Cancel a NS lifecycle management operation occurrence. - description: > + description: | The POST method initiates cancelling an ongoing NS lifecycle management operation while it is being executed or - rolled back, i.e. the related "NS LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. - This method shall follow the provisions specified in the Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query parameters, - request and response data structures, and response codes. - Before returning the "202 Accepted" response, the NFVO shall update the "isCancelPending" and "cancelMode" - attributes in the representation of the parent resource according to the provisions in clause 6.5.2.3. - In case of success of processing the asynchronous request: - 1) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state, the "operationState" - attribute in the representation of the parent resource shall be changed to "FAILED_TEMP". - In both cases, the NFVO shall update the "isCancelPending" and "cancelMode" attributes in the representation of the - parent resource according to the provisions in clause 6.5.2.3 to reflect the new status, and the applicable "result" - notification according to clause 6.6.2.2 shall be emitted to indicate that the execution of the underlying NS LCM - operation occurrence has temporarily failed. - Due to race conditions, the processing of the actual operation that is to be cancelled may eventually still succeed, in - which case the "operationState" attribute in the representation of the parent resource shall represent the result of that - operation, rather than the result of the cancellation. + rolled back, i.e. the related NS LCM operation occurrence\" is either in "PROCESSING" or "ROLLING_BACK" state. + This method shall follow the provisions specified in the Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query + parameters, request and response data structures, and response codes. Before returning the "202 Accepted" response, + the NFVO shall update the "isCancelPending" and "cancelMode" attributes in the representation of the parent resource + according to the provisions in clause 6.5.2.3. In case of success of processing the asynchronous request: + 1) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state, the "operationState" attribute in + the representation of the parent resource shall be changed to "FAILED_TEMP". In both cases, the NFVO shall update + the "isCancelPending" and "cancelMode" attributes in the representation of the parent resource according to the + provisions in clause 6.5.2.3 to reflect the new status, and the applicable "result" notification according to + clause 6.6.2.2 shall be emitted to indicate that the execution of the underlying NS LCM operation occurrence + has temporarily failed. Due to race conditions, the processing of the actual operation that is to be cancelled + may eventually still succeed, in which case the "operationState" attribute in the representation of the parent + resource shall represent the result of that operation, rather than the result of the cancellation. parameters: - - name: Accept - description: > - 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 - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CancelMode" - description: > - The POST request to this resource shall include a CancelMode - structure in the payload body to choose between "graceful" and - "forceful" cancellation. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsLcmOpOccCancelRequest' responses: - 202: - description: > - 202 ACCEPTED - - Shall be returned when the request has been - accepted for processing, but processing has not been - completed. - The response shall have an empty entity body. - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_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 [16], - including rules for the presence of the response body. - Specifically, in case of this task resource, the - response code 404 shall also be returned if the task is - not supported for the NS LCM operation occurrence - represented by the parent resource, which means that - the task resource consequently does not exist. - In this case, the response body shall be present, and - shall contain a ProblemDetails structure, in which the - "detail" attribute shall convey more information about - the error. - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - description: > - 409 CONFLICT + "202": + $ref: '#/components/responses/NsLcmOpOccCancel.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the NS LCM operation - occurrence resource. - Typically, this is due to the fact that the operation - occurrence is not in STARTING, PROCESSING or - ROLLING_BACK state. - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" - - ############################################################################### - # Subscriptions # - ############################################################################### - '/subscriptions': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.16 + /subscriptions: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query multiple subscriptions. + description: | + Query Subscription Information. + The GET method queries the list of active subscriptions of the functional block that invokes the method. It can + be used e.g. for resynchronization after error situations. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "200": + $ref: '#/components/responses/NsLcmSubscriptions.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + post: summary: Subscribe to NS lifecycle change notifications. - description: > - The POST method creates a new subscription. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.16.3.1-1 and 6.4.16.3.1-2. - Creation of two subscription resources with the same callbackURI and the same filter can result in performance - degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. - Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the - same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide - to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing - the existing subscription resource with the same filter and callbackUri). + description: | + The POST method creates a new subscription. This method shall support the URI query parameters, request and + response data structures, and response codes, as specified in the Tables 6.4.16.3.1-1 and 6.4.16.3.1-2. Creation + of two subscription resources with the same callbackURI and the same filter can result in performance degradation + and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with + the same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate subscription resource (in which case it shall return a "303 See Other" + response code referencing the existing subscription resource with the same filter and callbackUri). parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest" - description: > - Details of the subscription to be created, as defined in clause 6.5.2.2. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsLcmSubscriptionRequest' responses: - 201: - description: > - 201 Created - - Shall be returned when the subscription has been - created successfully. - The response body shall contain a representation - of the created "Individual subscription" resource. - The HTTP response shall include a "Location:" - HTTP header that points to the created - "Individual subscription" resource. - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 303: - description: > - 303 SEE OTHER - - Shall be returned if a subscription with the same - callback URI and the same filter already exits and - the policy of the NFVO is to not create redundant - subscriptions. - The HTTP response shall include a "Location" - HTTP header that contains the resource URI of - the existing "Individual subscription" resource. - The response body shall be empty. - $ref: "../responses/SOL005_resp.yaml#/responses/303" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 422: - $ref: "../responses/SOL005_resp.yaml#/responses/422" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + "201": + $ref: '#/components/responses/NsLcmSubscriptions.Post' + "303": + $ref: ../responses/SOL005_resp.yaml#/components/responses/303 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + /subscriptions/{subscriptionId}: + parameters: + - $ref: '#/components/parameters/SubscriptionId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: - summary: Query multiple subscriptions. - description: > - Query Subscription Information. - - The GET method queries the list of active subscriptions of the - functional block that invokes the method. It can be used e.g. for - resynchronization after error situations. + summary: Read an individual subscription resource. + description: | + The GET method retrieves information about a subscription by reading an individual subscription resource. This + method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.17.3.2-1 and 6.4.17.3.2-2 parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the LccnSubscription and in data types - referenced from it shall be supported by the NFVO in the filter expression. - - name: nextpage_opaque_marker - in: query - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV SOL 013 for this resource. - required: false - type: string - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualNsLcmSubscription.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the list of subscriptions has - been queried successfully. - The response body shall contain in an array the - representations of all active subscriptions of the - functional block that invokes the method, i.e. zero or - more representations of lifecycle change notification - subscriptions as defined in clause 6.5.2.4. - If the "filter" URI parameter was supplied in the - request, the data in the response body shall have - been transformed according to the rules specified in - clause 5.2.2 of ETSI GS NFV-SOL 013 [16]. - If the NFVO supports alternative 2 (paging) according - to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] for - this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in - clause 5.4.2.3 of ETSI GS NFV-SOL 013 [16]. - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 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/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + delete: + summary: Terminate a subscription. + description: | + The DELETE method terminates an individual subscription. This method shall support the URI query parameters, + request and response data structures, and response codes, as specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2. + As the result of successfully executing this method, the "Individual subscription" resource shall not exist any + longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed API consumer for + a certain time period after the deletion. + responses: + "204": + $ref: '#/components/responses/IndividualNsLcmSubscription.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual subscription # - ############################################################################### - '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.17 + /vnf_snapshots: parameters: - - name: subscriptionId - description: > - Identifier of this subscription. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: - summary: Read an individual subscription resource. - description: > - The GET method retrieves information about a subscription by reading an individual subscription resource. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.17.3.2-1 and 6.4.17.3.2-2 + summary: Query VNF snapshots + description: | + The GET method queries information about multiple VNF snapshots. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/VnfSnapshots.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about an individual - subscription has been read successfully. - The response body shall contain a representation of - the "Individual subscription" resource. - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + /vnf_snapshots/{vnfSnapshotInfoId}: + parameters: + - $ref: '#/components/parameters/VnfSnapshotInfoId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Query an Individual VNF snapshot + description: | + The GET method retrieves information about a VNF snapshot by reading an "Individual VNF snapshot" resource. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "200": + $ref: '#/components/responses/IndividualVnfSnapshot.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 delete: - summary: Terminate a subscription. - description: > - The DELETE method terminates an individual subscription. - This method shall support the URI query parameters, request and response data structures, and response codes, as - specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2. - As the result of successfully executing this method, the "Individual subscription" resource shall not exist any longer. - This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. - NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed API - consumer for a certain time period after the deletion. + summary: Delete an Individual VNF snapshot + description: | + This method deletes an "Individual VNF snapshot" resource and the associated VNF snapshot information managed by + the NFVO and corresponding VNFM, and any resource associated to the VNF snapshot managed by the VIM. + As the result of successfully executing this method, the "Individual VNF snapshot" resource shall not exist any + longer. In addition, the NFVO shall delete any references pointing to the "Individual VNF snapshot" resource from + the "NsInstance" data structures representing the "Individual NS instance" resources. responses: - 204: - description: > - 204 NO CONTENT + "204": + $ref: '#/components/responses/IndividualVnfSnapshot.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + +components: + parameters: + NsInstanceId: + name: nsInstanceId + in: path + description: | + Identifier of the NS instance. + required: true + style: simple + explode: false + schema: + type: string + + NsLcmOpOccId: + name: nsLcmOpOccId + in: path + description: | + Identifier of a NS lifecycle management operation occurrence. + required: true + style: simple + explode: false + schema: + type: string + + SubscriptionId: + name: subscriptionId + in: path + description: | + Identifier of this subscription. + required: true + style: simple + explode: false + schema: + type: string + + VnfSnapshotInfoId: + name: vnfSnapshotInfoId + in: path + description: | + Identifier of the "Individual VNF snapshot" resource. + This identifier can be retrieved from the "id" attribute in the payload body of a response to a query to + "VNF snapshots" resource. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + NsInstanceCreateRequest: + description: | + The NS creation parameters, as defined in clause 6.5.2.7. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest + required: true + + NsInstanceInstantiateRequest: + description: | + Parameters for the instantiate NS operation, as defined in clause 6.5.2.11. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest + required: true + + NsInstanceScaleRequest: + description: | + Parameters for the scale NS operation, as defined in clause 6.5.2.14. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest + required: true + + NsInstanceUpdateRequest: + description: | + Parameters for the update NS operation, as defined in clause 6.5.2.12. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest + required: true + + NsInstanceHealRequest: + description: | + Parameters for the heal NS operation, as defined in clause 6.5.2.13. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/HealNsRequest + required: true - Shall be returned when the "Individual subscription" - resource has been deleted successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" \ No newline at end of file + NsInstanceTerminateRequest: + description: | + The terminate NS request parameters, as defined in clause 6.5.2.15. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest + required: true + + NsLcmOpOccCancelRequest: + description: | + The POST request to this resource shall include a CancelMode structure in the payload body to choose between + "graceful" and "forceful" cancellation. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CancelMode + required: true + + NsLcmSubscriptionRequest: + description: | + Details of the subscription to be created, as defined in clause 6.5.2.2. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest + required: true + + responses: + NsInstances.Get: + description: | + 200 OK + Shall be returned when information about zero or more NS instances has been queried successfully. The response + body shall contain in an array the representations of zero or more NS instances, as defined in clause 6.5.2.8. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" (if supported) + or "exclude_default" URI parameters was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013 [16], respectively. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013 [16]. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance + + NsInstances.Post: + description: | + 201 Created + Shall be returned when a new "Individual NS instance" resource and the associated NS instance identifier has + been created successfully. The response body shall contain a representation of the created NS instance, as + defined in clause 6.5.2.10. The HTTP response shall include a "Location" HTTP header that contains the resource + URI of the created NS instance. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance + + IndividualNsInstance.Get: + description: | + 200 OK + Shall be returned when information about an individual NS instance has been read successfully. The response + body shall contain a representation of the NS instance, as defined in clause 6.5.2.10. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance + + IndividualNsInstance.Delete: + description: | + 204 No Content + Shall be returned when the "Individual NS instance" resource and the associated NS identifier have been deleted + successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + InstantiateNsInstance.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + ScaleNsInstance.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + UpdateNsInstance.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + HealNsInstance.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + TerminateNsInstance.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + NsLcmOpOccs.Get: + description: | + 200 OK + Shall be returned when status information for zero or more NS lifecycle management operation occurrences has + been queried successfully. The response body shall contain in an array the status information about zero or + more NS lifecycle operation occurrences, as defined in clause 6.5.2.3. If the "filter" URI parameter or one + of the "all_fields", "fields", "exclude_fields" or "exclude_default" URI parameters was supplied in the request + and is supported, the data in the response body shall have been transformed according to the rules specified + in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013 [16], respectively. If the NFVO supports alternative 2 + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] for this resource, inclusion of the Link HTTP + header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013 [16]. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc + + IndividualNsLcmOpOcc.Get: + description: | + 200 OK + Shall be returned when information about an NS LCM operation occurrence has been read successfully. The response + body shall contain status information about an NS lifecycle management operation occurrence (see clause 6.5.2.3). + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc + + NsLcmOpOccRetry.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + NsLcmOpOccRollback.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + NsLcmOpOccContinue.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + NsLcmOpOccFail.Post: + description: | + 200 OK + Shall be returned when the state of the NS lifecycle management operation occurrence has been changed + successfully. The response shall include a representation of the "Individual NS lifecycle management + operation occurrence" resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc + + NsLcmOpOccCancel.Post: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + NsLcmSubscriptions.Get: + 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 lifecycle change notification subscriptions as defined in + clause 6.5.2.4. If the "filter" URI parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013 [16]. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] for this + resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV-SOL 013 [16]. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription + + NsLcmSubscriptions.Post: + description: | + 201 Created\nShall be returned when the subscription has been + created successfully. The response body shall contain a representation + of the created "Individual subscription" resource. The HTTP response + shall include a "Location:" HTTP header that points to the created + "Individual subscription" resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription + + IndividualNsLcmSubscription.Get: + description: | + 200 OK + Shall be returned when information about an individual + subscription has been read successfully. The response body shall contain + a representation of the "Individual subscription" resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription + + IndividualNsLcmSubscription.Delete: + description: | + 204 NO CONTENT + Shall be returned when the "Individual subscription" resource has been deleted successfully. The response + body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + VnfSnapshots.Get: + description: | + 200 OK + Shall be returned when information about zero or more VNF snapshots was queried successfully. + The response body shall contain in an array the representations of zero or more "Individual VNF snapshot" resources, + as defined in clause 6.5.2.17. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo + + IndividualVnfSnapshot.Get: + description: | + 200 OK + Shall be returned when information about an individual VNF snapshot was read successfully. + The response body shall contain a representation of the "Individual VNF snapshot" resource, as defined in clause + 6.5.2.17. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo + + IndividualVnfSnapshot.Delete: + description: | + 204 NO CONTENT + Shall be returned when the VNF snapshot resource and the associated VNF snapshot were deleted successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index 30f35a382a1d2a2ba27b50c19e51c7225e527bbf..5b85bb1c730c2a58dc5d59cfeb6f83c2a9e81966 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -9,6 +9,11 @@ definitions: NS. It shall comply with the provisions defined in Table 6.5.2.13-1. Either the parameter healNsData or the parameter healVnfData, but not both shall be provided. type: object + oneOf: + - required: + - healNsData + - required: + - healVnfData properties: healNsData: description: > @@ -41,6 +46,11 @@ definitions: type: object required: - degreeHealing + oneOf: + - required: + - actionsHealing + - required: + - healScript properties: degreeHealing: description: > @@ -87,8 +97,7 @@ definitions: HealVnfData: description: > This type represents the information to heal a VNF that is part of an NS. - The NFVO shall then invoke the HealVNF - operation towards the appropriate VNFM. + The NFVO shall then invoke the Heal VNF operation towards the appropriate VNFM. It shall comply with the provisions defined in Table 6.5.3.44-1. type: object required: @@ -192,7 +201,7 @@ definitions: type: string nsdId: description: > - Identifier of the NSD on which the NS instance is based. + Identifier of the NSD on which the NS instance is based. The value is copied from the NSD. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsdInfoId: description: > @@ -244,6 +253,12 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshotInfoIds: + description: > + Identifier of information on VNF snapshots of VNF instances that are part of this NS instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsState: description: > The state of the NS instance. @@ -281,6 +296,12 @@ definitions: type: array items: $ref: "#/definitions/AffinityOrAntiAffinityRule" + wanConnectionInfo: + description: > + Information about WAN related connectivity enabling multi-site VLs. + type: array + items: + $ref: "#/definitions/WanConnectionInfo" _links: type: object description: Links to resources related to this resource. @@ -297,6 +318,12 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" + vnfSnapshotInfos: + description: > + Links to the VNF snapshots associated to VNF instances which are part of this NS instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" instantiate: description: > Link to the "instantiate" task resource, if the related @@ -359,16 +386,17 @@ definitions: vnfInstanceName: description: > Name of the VNF instance. - This attribute can be modified with the PATCH method. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. type: string vnfInstanceDescription: description: > Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. type: string vnfdId: description: > Identifier of the VNFD on which the VNF instance is based. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -391,8 +419,6 @@ definitions: Identifier of information held by the NFVO about the specific VNF package on which the VNF is based. This identifier has been allocated by the NFVO. - This attribute can be modified with the PATCH - method. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > @@ -430,7 +456,7 @@ definitions: set to true, auto-healing is currently enabled. If set to false, auto-healing is currently disabled. - These attributea can be modified with the PATCH method. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" vimId: description: > @@ -480,6 +506,9 @@ definitions: extCpInfo: description: > Information about the external CPs exposed by the VNF instance. + When trunking is enabled, the list of entries includes both, + external CPs corresponding to parent ports of a trunk, and external + CPs associated to sub-ports of a trunk. type: array minItems: 1 items: @@ -493,6 +522,10 @@ definitions: extManagedVirtualLinkInfo: description: > External virtual links the VNF instance is connected to. + It is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case of a multi-site + VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding to the same VNF internal VL + shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance + (refer to clause 6.5.3.59). type: array items: $ref: "#/definitions/ExtManagedVirtualLinkInfo" @@ -536,8 +569,6 @@ definitions: description: > Additional VNF-specific attributes that provide metadata describing the VNF instance. - Metadata that are writeable are declared in the - VNFD (see note 2). These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that @@ -548,10 +579,8 @@ definitions: effect on the VNF instance, it only affects the information represented in the VnfInstance structure. - Metadata that are writeable are declared in the - VNFD (see note 2). - These attributes can be modified with the - PATCH method + Metadata that the VNF provider foresees are expected to be declared in the VNFD. + Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" extensions: description: > @@ -562,14 +591,11 @@ definitions: Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified attribute values can be considered during subsequent VNF lifecycle management operations, which means that the modified values can indirectly affect the configuration of the VNF instance. - Extensions that are writeable are declared in the VNFD. - This attribute These attributes can be modified with the PATCH method. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + Extensions that are allowed for the VNF are declared in the VNFD. + Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" LccnLinks: - description: > - This type represents the links to resources that a notification can contain. type: object required: - nsInstance @@ -606,6 +632,12 @@ definitions: description: > Identifier of the scaling aspect. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change + current VNF package" operation or due to its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" scaleLevel: description: > Indicates the scale level. The minimum value shall be 0 and the @@ -702,8 +734,13 @@ definitions: $ref: "#/definitions/IdentifierInNsd" resourceHandle: description: > - Identifier(s) of the virtualised network resource(s) - realizing the VL instance. See note. + Identifier(s) of the virtualised network resource(s) and/or multi-site connectivity service(s) + realizing the VL instance. + As an NS can include NFs deployed in NFVI PoPs under the control of several different VIMs, therefore deploying + an NS VL can involve several VIMs, each allocating different virtualised network resources, as well as WIMs + handling the connectivity in between the NFVI-PoPs in the form of multi-site connectivity services. When this + NsVirtualLink is provided as an ExtVirtualLink as input of a VNF LCM operation, the id of the ExtVirtualLink + shall be the same as the corresponding NsVirtualLink. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" @@ -826,6 +863,16 @@ definitions: It shall comply with the provisions defined in Table 6.5.3.56-1. type: object + oneOf: + - required: + - vnfInstanceId + - vnfExtCpInstanceId + - required: + - pnfInfoId + - pnfExtCpInstanceId + - required: + - nsInstanceId + - nsSapInstanceId properties: vnfInstanceId: description: > @@ -932,6 +979,12 @@ definitions: description: > Identifier of the monitoring parameter defined in the VNFD. $ref: "#/definitions/IdentifierInNsd" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a + "Change current VNF package" operation or due to its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" name: description: > Human readable name of the monitoring parameter, as defined in the VNFD. @@ -950,6 +1003,11 @@ definitions: required: - id - cpdId + oneOf: + - required: + - associatedVnfcCpId + - required: + - associatedVnfVirtualLinkId properties: id: description: > @@ -959,6 +1017,18 @@ definitions: description: > Identifier of the external CPD, VnfExtCpd, in the VNFD. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + cpConfigId: + description: > + Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig" + map of the "currentVnfExtCpData" in the "ExtVirtualLinkInfo" structure. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the + VnfInstance (e.g. during a "Change current VNF package" operation or due to + its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" cpProtocolInfo: description: > Network protocol information for this CP. @@ -970,7 +1040,7 @@ definitions: description: > Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" structure. Shall be present if the CP is associated to a link port. - $ref: "#/definitions/CpProtocolInfo" + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" metadata: description: > Metadata about this external CP. @@ -982,7 +1052,7 @@ definitions: Shall be present in case this CP instance maps to a VNFC CP(s). The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. One and only one shall be present. - $ref: "#/definitions/IdentifierInVnf" + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" associatedVnfVirtualLinkId: description: > Identifier of the "VnfVirtualLinkResourceInfo" structure that represents @@ -990,7 +1060,7 @@ definitions: present in case this CP instance maps to an internal VL. The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. One and only one shall be present. - $ref: "#/definitions/IdentifierInVnf" + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" CpGroupInfo: description: > @@ -1132,14 +1202,27 @@ definitions: This type represents information about a network address that has been assigned. It shall comply with the provisions defined in Table 6.5.3.18-1. type: object - required: - - macAddress - - ipAddresses + anyOf: + - required: + - macAddress + - required: + - ipAddresses properties: macAddress: description: > Assigned MAC address. $ref: "#/definitions/MacAddress" + segmentationId: + description: > + Identification of the network segment to which the Cp instance connects to. + If the Cp instance represents a subport in a trunk, "segmentationId" shall be present. + Otherwise it shall not be present. + Depending on the NFVI networking infrastructure, the "segmentationId" may indicate the actual network segment + value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an + identifier used between the application and the NFVI networking infrastructure to identify the network sub-interface + of the trunk port in question. In the latter case the NFVI infrastructure will map this local "segmentationId" + to whatever "segmentationId" is actually used by the NFVI’s transport technology. + type: string ipAddresses: description: > Addresses assigned to the CP instance. Each entry represents IP @@ -1150,6 +1233,11 @@ definitions: type: object required: - type + oneOf: + - required: + - addresses + - required: + - addressRange properties: type: description: > @@ -1277,6 +1365,12 @@ definitions: type: array items: $ref: "#/definitions/ExtLinkPortInfo" + currentVnfExtCpData: + description: > + Allows the API consumer to read the current CP configuration information + for the connection of external CPs to the external virtual link, as + specified in clause 5.5.3.2 of ETSI GS NFV-SOL 003. + $ref: "#/definitions/VnfExtCpData" ExtLinkPortInfo: description: > @@ -1317,13 +1411,19 @@ definitions: The identifier is assigned by the NFV-MANO entity that manages this VL instance. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a + "Change current VNF package" operation or due to its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfVirtualLinkDescId: description: > Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" networkResource: description: > - Reference to the VirtualNetwork resource. + Reference to the VirtualNetwork resource or multi-site connectivity service providing this VL. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" vnfLinkPorts: description: > @@ -1331,6 +1431,14 @@ definitions: type: array items: $ref: "#/definitions/VnfLinkPortInfo" + extManagedMultisiteVirtualLinkId: + description: > + Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFV-MANO entity + that manages the externally managed multi-site VL instance. It shall be present when the present externally-managed + internal VL is part of a multi-site VL, e.g., in support of multi-site VNF spanning several VIMs. + All externally-managed internal VL instances corresponding to an internal VL created based on the same virtualLinkDescId + shall refer to the same extManagedMultisiteVirtualLinkId. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" VnfLinkPortInfo: type: object @@ -1344,7 +1452,7 @@ definitions: $ref: "#/definitions/IdentifierInVnf" resourceHandle: description: > - Reference to the virtualised network resource realizing this link port. + Reference to the virtualised resource realizing this link port. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" cpInstanceId: description: > @@ -1420,6 +1528,12 @@ definitions: description: > Identifier of this VnfcResourceInfo instance. $ref: "#/definitions/IdentifierInVnf" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a + "Change current VNF package" operation or due to its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vduId: description: > Reference to the applicable VDU in the VNFD. @@ -1444,8 +1558,12 @@ definitions: description: > CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is - associated to an external CP of the VNF instance. - May be present otherwise. + exposed as an external CP of the VNF instance or is connected to + an external CP of the VNF instance. + A VNFC CP is "connected to" an external CP if the VNFC CP is + connected to an internal VL that exposes an external CP. A VNFC + CP is "exposed as" an external CP if it is connected directly to + an external VL. May be present otherwise. type: array items: type: object @@ -1464,20 +1582,23 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" vnfExtCpId: description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. + Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an external CP + of the VNF instance or connected to an external CP of the VNF instance and shall be absent otherwise. + A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes + an external CP. A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL. $ref: "#/definitions/IdentifierInVnf" cpProtocolInfo: description: > Network protocol information for this CP. + May be omitted if the VNFC CP is exposed as an external CP. + The information can be omitted because it is already available as part of the external CP information. type: array items: $ref: "#/definitions/CpProtocolInfo" vnfLinkPortId: description: > - Identifier of the "vnfLinkPorts" structure in the - "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. + Identifier of the "vnfLinkPorts" structure in the "VnfVirtualLinkResourceInfo" structure. Shall be present if + the CP is associated to a link port on an internal VL of the VNF instance and shall be absent otherwise. $ref: "#/definitions/IdentifierInVnf" metadata: description: > @@ -1502,6 +1623,12 @@ definitions: description: > Identifier of this VnfVirtualLinkResourceInfo instance. $ref: "#/definitions/IdentifierInVnf" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a + "Change current VNF package" operation or due to its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfVirtualLinkDescId: description: > Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. @@ -1547,6 +1674,12 @@ definitions: description: > Identifier of the VirtualStorageDesc in the VNFD. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the VnfInstance + (e.g. during a "Change current VNF package" operation or due to its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" storageResource: description: > Reference to the VirtualStorage resource. @@ -1577,7 +1710,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" resourceHandle: description: > - Identifier of the virtualised network resource realizing + Identifier of the virtualised resource realizing this link port. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" nsCpHandle: @@ -1717,6 +1850,13 @@ definitions: type: array items: $ref: "#/definitions/VnfLocationConstraint" + nestedNslocationConstraints: + description: > + Defines the location constraints for the nested NS to be instantiated as part of the NS instantiation. + An example can be a constraint for the nested NS to be in a specific geographic location. + type: array + items: + $ref: "#/definitions/NsLocationConstraint" additionalParamsForNs: description: > Allows the OSS/BSS to provide additional parameter(s) @@ -1762,6 +1902,16 @@ definitions: default NS instantiation level as declared in the NSD shall be used. $ref: "#/definitions/IdentifierInNsd" + wanConnectionData: + description: > + Information for connecting VNs to the WAN when VLs are deployed across a WAN. + When the NS is deployed over several sites, the VLs of this NS will include VNs in each site connected over + the WAN. In this case, the "wanConnectionData" provides the needed information required to connect each VN + to the WAN. Annex E provides additional information and guidelines about the usage of the "wanConnectionData" + attribute. + type: array + items: + $ref: "#/definitions/WanConnectionData" additionalAffinityOrAntiAffinityRule: description: > Specifies additional affinity or anti-affinity constraint for @@ -1840,20 +1990,26 @@ definitions: LocationConstraints: description: > This type represents location constraints for a VNF to be instantiated. - The location constraints shall be presented as a - country code, optionally followed by a civic address based on - the format defined by IETF RFC 4776 [13]. + The location constraints can be represented as follows: + • as a country code + • as a civic address combined with a country code + • as an area, conditionally combined with a country code + The LocationConstraints data type shall comply with the provisions defined in Table 6.5.3.21-1. type: object - required: - - countryCode properties: countryCode: description: > The two-letter ISO 3166 [29] country code in capital letters. + Shall be present in case the "area" attribute is absent. May be absent if the "area" attribute is present. + If both "countryCode" and "area" are present, no conflicts should exist between the values of these two attributes. + In case of conflicts, the API producer (i.e. the NFVO) shall disregard parts of the geographic area signalled + by "area" that are outside the boundaries of the country signalled by "countryCode". If "countryCode" is absent, + it is solely the "area" attribute that defines the location constraint. type: string civicAddressElement: description: > Zero or more elements comprising the civic address. + Shall be absent if the "area" attribute is present. type: array items: type: object @@ -1873,6 +2029,16 @@ definitions: caType. The format caValue shall comply with Section 3.4 of IETF RFC 4776 [13]. type: string + area: + description: > + Geographic area. Shall be absent if the "civicAddressElement" attribute is present. + The content of this attribute shall follow the provisions for the "Polygon" geometry object as defined in + IETF RFC 7946, for which the "type" member shall be set to the value "Polygon". + If both "countryCode" and "area" are present, no conflicts should exist between the values of these two attributes. + In case of conflicts, the API producer (i.e. the NFVO) shall disregard parts of the geographic area signalled + by "area" that are outside the boundaries of the country signalled by "countryCode". If "countryCode" is absent, + it is solely the "area" attribute that defines the location constraint. + type: object VnfLocationConstraint: description: > @@ -1973,6 +2139,11 @@ definitions: type: object required: - scaleType + oneOf: + - required: + - scaleNsData + - required: + - scaleVnfData properties: scaleType: description: > @@ -2013,31 +2184,22 @@ definitions: properties: updateType: description: > - The type of update. It determines also which one of the - following parameters is present in the operation. + The type of update. It determines also which one of the following parameters is present in the operation. Possible values include: * ADD_VNF: Adding existing VNF instance(s) * REMOVE_VNF: Removing VNF instance(s) * INSTANTIATE_VNF: Instantiating new VNF(s) * CHANGE_VNF_DF: Changing VNF DF * OPERATE_VNF: Changing VNF state, - * MODIFY_VNF_INFORMATION: Modifying - VNF information and/or the configurable - properties of VNF instance(s) - * CHANGE_EXTERNAL_VNF_CONNECTIVITY: - Changing the external connectivity of VNF - instance(s) + * MODIFY_VNF_INFORMATION: Modifying VNF information and/or the configurable properties of VNF instance(s) + * CHANGE_EXTERNAL_VNF_CONNECTIVITY: Changing the external connectivity of VNF instance(s) + * CHANGE_VNFPKG: Changing the VNF package(s) on which (a) VNF instance(s) is/are based * ADD_SAP: Adding SAP(s) * REMOVE_SAP: Removing SAP(s) - * ADD_NESTED_NS: Adding existing NS - instance(s) as nested NS(s) - * REMOVE_NESTED_NS: Removing existing - nested NS instance(s) - * ASSOC_NEW_NSD_VERSION: Associating a - new NSD version to the NS instance - * MOVE_VNF: Moving VNF instance(s) from one - origin NS instance to another target NS - instance + * ADD_NESTED_NS: Adding existing NS instance(s) as nested NS(s) + * REMOVE_NESTED_NS: Removing existing nested NS instance(s) + * ASSOC_NEW_NSD_VERSION: Associating a new NSD version to the NS instance + * MOVE_VNF: Moving VNF instance(s) from one origin NS instance to another target NS instance * ADD_VNFFG: Adding VNFFG(s) * REMOVE_VNFFG: Removing VNFFG(s) * UPDATE_VNFFG: Updating VNFFG(s) @@ -2045,6 +2207,16 @@ definitions: * ADD_PNF: Adding PNF * MODIFY_PNF: Modifying PNF * REMOVE_PNF: Removing PNF + * CREATE_VNF_SNAPSHOT: Creating VNF Snapshots of VNF instances belonging to the NS instance. + It depends on the VNF capabilities, and is declared in the VNFD whether the operation is supported for a particular VNF. + * REVERT_VNF_TO_SNAPSHOT: Reverting a VNF instance belonging to the NS instance to a VNF Snapshot. + It depends on the VNF capabilities, and is declared in the VNFD whether the operation is supported for a particular VNF. + The operation might be service-disruptive. + * DELETE_VNF_SNAPSHOT_INFO: Deleting available VNF Snapshot information for a VNF instance belonging to the NS instance. + It depends on the VNF capabilities, and is declared in the VNFD whether the operation is supported for a particular VNF. + * MODIFY_WAN_CONNECTION_INFO: Modify WAN related connectivity information. + * CREATE_NS_VIRTUAL_LINK: Create an NsVirtualLink instance. + * DELETE_NS_VIRTUAL_LINK: Delete an NsVirtualLink instance. type: string enum: - ADD_VNF @@ -2054,6 +2226,7 @@ definitions: - OPERATE_VNF - MODIFY_VNF_INFORMATION - CHANGE_EXTERNAL_VNF_CONNECTIVITY + - CHANGE_VNFPKG - ADD SAP - REMOVE_SAP - ADD_NESTED_NS @@ -2067,6 +2240,12 @@ definitions: - ADD_PNF - MODIFY_PNF - REMOVE_PNF + - CREATE_VNF_SNAPSHOT + - REVERT_VNF_TO_SNAPSHOT + - DELETE_VNF_SNAPSHOT_INFO + - MODIFY_WAN_CONNECTION_INFO + - CREATE_NS_VIRTUAL_LINK + - DELETE_NS_VIRTUAL_LINK addVnfIstance: description: > Identifies an existing VNF instance to be added to the @@ -2124,6 +2303,13 @@ definitions: type: array items: $ref: "#/definitions/ChangeExtVnfConnectivityData" + changeVnfPackageData: + description: > + Specifies the details to change the VNF package on which the VNF instance is based. + It shall be present only if updateType = "CHANGE_VNFPKG". + type: array + items: + $ref: "#/definitions/ChangeVnfPackageData" addSap: description: > Identifies a new SAP to be added to the NS instance. @@ -2219,12 +2405,48 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + modifyWanConnectionInfoData: + description: > + Specifies the data to modify about WAN related connectivity information. + It shall be present only if updateType = "MODIFY_WAN_CONNECTION_INFO". + type: array + items: + $ref: "#/definitions/ModifyWanConnectionInfoData" updateTime: description: > Timestamp indicating the update time of the NS, i.e. the NS will be updated at this timestamp. Cardinality "0" indicates the NS update takes place immediately. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + createSnapshotData: + description: > + Specify the VNF instance to be snapshotted. It shall be present only if updateType = "CREATE_VNF_SNAPSHOT". + $ref: '#/definitions/CreateVnfSnapshotData' + revertVnfToSnapshotData: + description: > + Specify the VNF instance to be reverted and the VNF Snapshot to be reverted to. It shall be present only if + updateType = "REVERT_VNF_TO_SNAPSHOT". + $ref: '#/definitions/CreateVnfSnapshotData' + $ref: '#/definitions/RevertVnfToSnapshotData' + deleteVnfSnapshotData: + description: > + Specify the VNF Snapshot info to be deleted and the related VNF instance. It shall be present only if + updateType = "DELETE_VNF_SNAPSHOT_INFO". + $ref: '#/definitions/DeleteVnfSnapshotData' + addNsVirtualLinkData: + description: > + Specify data to be used to create a new NsVirtualLink instance. This parameter shall be present only if + updateType = “CREATE_NS_VIRTUAL_LINK”. + type: array + items: + $ref: '#/definitions/AddNsVirtualLinkData' + deleteNsVirtualLinkId: + description: > + Identify an existing NsVirtualLink instance to be deleted. The parameter shall be present only if + updateType = “DELETE_NS_VIRTUAL_LINK”. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" InstantiateVnfData: description: > @@ -2271,6 +2493,10 @@ definitions: extManagedVirtualLinks: description: > Information about internal VLs that are managed by other entities than the VNFM. + It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a multi-site + VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall + indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance + (refer to clause 6.5.3.27). type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -2342,6 +2568,14 @@ definitions: extManagedVirtualLinks: description: > information about internal VLs that are managed by NFVO. + The indication of externally-managed internal VLs is needed in case networks have been pre-configured for use + with certain VNFs, for instance to ensure that these networks have certain properties such as security or + acceleration features, or to address particular network topologies. The present document assumes that + xternally-managed internal VLs are managed by the NFVO and created towards the VIM. + It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a multi-site + VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall + indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance + (refer to clause 6.5.3.27). type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -2351,6 +2585,16 @@ definitions: process, specific to the VNF being modified, as declared in the VNFD as part of "ChangeVnfFlavourOpConfig". $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + This attribute provides values for the "extensions" input parameter of the Change VNF Flavour + operation defined in ETSI GS NFV-SOL 003. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + vnfConfigurableProperties: + description: > + This attribute provides values for the "vnfConfigurableProperties" input parameter of the Change VNF Flavour + operation defined in ETSI GS NFV-SOL 003. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" OperateVnfData: description: > @@ -2458,12 +2702,23 @@ definitions: This type describes the information invoked by the NFVO to change the external VNF connectivity information maintained by the VNFM. The types of changes that this operation supports are: 1) Disconnect the external CPs that are connected to a particular external VL, and connect them to a different - external VL. - 2) Change the connectivity parameters of the existing external CPs, including changing addresses. - NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP - address assignment) might not be supported without deleting the resource and creating another one with - the modified configuration. - This type shall comply with the provisions defined in Table 6.5.3.33-1. + external VL. + 2) Disconnect and delete external CPs that are connected to a particular external VL and that represent subports + in a trunk, i.e. CP instances that are created from external CPDs that have trunk mode configured according to + clause 7.1.6.3 in ETSI GS NFV-IFA 011. If the parent port is exposed as an "extCp", the VNFM shall ensure that + the parent port is not deleted. If the parent port is exposed as an "extCp" and there are other subports connected, + the VNFM shall ensure that the parent port is not disconnected, unless it is reconnected to a different external + VL in the same operation. + 3) Change the connectivity parameters of the existing external CPs, including changing addresses. + + NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP address + assignment) might not be supported without deleting the resource and creating another one with the modified + configuration. + + 4) Create new CPs that represent supports in a trunk, i.e. CP instances that are created from external CPDs that + have trunk mode configured according to clause 7.1.6.3 in ETSI GS NFV-IFA 011, and connect them to a particular + external VL. Creation of the parent port with this operation is not supported. This type shall comply with the + provisions defined in Table 6.5.3.33-1. type: object required: - vnfInstanceId @@ -2652,6 +2907,29 @@ definitions: it is met only if all the values expressed in the condition are matched by those in the packet. It shall comply with the provisions defined in Table 6.5.3.40-1. type: object + anyOf: + - required: + - etherDestinationAddress + - required: + - etherSourceAddress + - required: + - etherType + - required: + - vlanTag + - required: + - protocol + - required: + - dscp + - required: + - sourcePortRange + - required: + - destinationPortRange + - required: + - sourceIpAddressPrefix + - required: + - destinationIpAddressPrefix + - required: + - extendedCriteria properties: etherDestinationAddress: description: > @@ -2809,6 +3087,11 @@ definitions: type: object required: - pnfId + anyOf: + - required: + - pnfName + - required: + - cpData properties: pnfId: description: > @@ -2864,6 +3147,18 @@ definitions: - TEMPORARY - LINK_PORT_ADDED - LINK_PORT_REMOVED + linkPortIds: + description: > + Identifiers of the link ports of the affected VL related to the change. + Each identifier references an "NsLinkPortInfo" structure. + Shall be set when changeType is equal to "ADD_LINK_PORT" or "REMOVE_LINK_PORT", and the related "NsLinkPortInfo" + structures are present (case "add") or have been present (case "remove") in the NsVirtualLinkInfo structure + that is represented by the "virtualLink¬Info" attribute in the "NsInstance" structure. + The resource handles of the affected NS link ports can be found by dereferencing the identifiers in the + "linkPortIds" attribute. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" networkResource: description: > Reference to the VirtualNetwork resource. Detailed information is @@ -2937,6 +3232,14 @@ definitions: - vnfName - changeType - changeResult + anyOf: + - required: + - changedExtConnectivity + - oneOf: + - required: + - changedVnfInfo + - required: + - modificationsTriggeredByVnfPkgChange properties: vnfInstanceId: description: > @@ -2968,6 +3271,7 @@ definitions: - OPERATE - MODIFY_INFORMATION - CHANGE_EXTERNAL_VNF_CONNECTIVITY + - CHANGE_VNFPKG type: string enum: - ADD @@ -2980,6 +3284,7 @@ definitions: - OPERATE - MODIFY_INFORMATION - CHANGE_EXTERNAL_VNF_CONNECTIVITY + - CHANGE_VNFPKG changeResult: description: > Signals the result of change identified by the @@ -3001,8 +3306,18 @@ definitions: either the "changedVnfInfo" attribute or the "changedExtConnectivity" attribute or both shall be present. type: object - required: - - self + anyOf: + - required: + - changedVnfInfo + - required: + - changedVnfInfo + - required: + - modificationsTriggeredByVnfPkgChange + oneOf: + - required: + - changedVnfInfo + - required: + - modificationsTriggeredByVnfPkgChange properties: changedVnfInfo: description: > @@ -3014,7 +3329,16 @@ definitions: description: > Information about changed external connectivity, if applicable. - $ref: "#/definitions/ExtVirtualLinkInfo" + type: array + items: + $ref: "#/definitions/ExtVirtualLinkInfo" + modificationsTriggeredByVnfPkgChange: + description: > + Information about performed changes of "VnfInstance" attributes triggered by changing the current + VNF package, if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG". + At least one of the attributes "changedVnfInfo", "changedExtConnectivity" or "modificationsTriggeredByVnfPkgChange" + shall be present. Not more than one of "changedVnfInfo" and "modificationsTriggeredByVnfPkgChange" shall be present. + $ref: "#/definitions/ModificationsTriggeredByVnfPkgChange" AffectedPnf: description: > @@ -3226,6 +3550,17 @@ definitions: - ROLLED_BACK - FAILED - PARTIALLY_COMPLETED + changedInfo: + description: > + Information about the changed NS instance information, if applicable. + type: object + properties: + wanConnectionInfoModifications: + description: > + Information about the modified WAN related connectivity information, if applicable. + type: array + items: + $ref: "#/definitions/WanConnectionInfoModification" AffectedSap: description: > @@ -3341,6 +3676,11 @@ definitions: This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" + verbosity: + description: > + This attribute signals the requested verbosity of LCM operation occurrence notifications. + If it is not present, it shall default to the value "FULL". + $ref: "#/definitions/LcmOpOccNotificationVerbosityType" LccnSubscription: description: > @@ -3367,6 +3707,10 @@ definitions: description: > The URI of the endpoint to send the notification to. $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + verbosity: + description: > + This attribute signals the verbosity of LCM operation occurrence notifications. + $ref: "#/definitions/LcmOpOccNotificationVerbosityType" _links: description: > Links to resources related to this resource. @@ -3541,6 +3885,13 @@ definitions: type: array items: $ref: "#/definitions/VnfLocationConstraint" + nestedNslocationConstraints: + description: > + Defines the location constraints for the nested NS to be instantiated as part of the NS instantiation. + An example can be a constraint for the nested NS to be in a specific geographic location. + type: array + items: + $ref: "#/definitions/NestedNsLocationConstraint" ScaleVnfData: description: > @@ -3550,8 +3901,13 @@ definitions: required: - vnfInstanceid - scaleVnfType + oneOf: + - required: + - scaleToLevelData + - required: + - scaleByStepData properties: - vnfInstanceid: + vnfInstanceId: description: > Identifier of the VNF instance being scaled. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -3618,6 +3974,11 @@ definitions: instantiation levels, the NS scaling aspects and their corresponding NS scale levels applicable to the NS instance are declared in the NSD. type: object + oneOf: + - required: + - nsInstantiationLevel + - required: + - nsScaleInfo properties: nsInstantiationLevel: description: > @@ -3639,6 +4000,11 @@ definitions: DF. Instantiation levels and scaling aspects are declared in the VNFD. The NFVO shall then invoke the ScaleVnfToLevel operation towards the appropriate VNFM.. type: object + anyOf: + - required: + - vnfInstantiationLevelId + - required: + - vnfScaleInfo properties: vnfInstantiationLevelId: description: > @@ -4011,11 +4377,27 @@ definitions: description: > This type represents network address data for IP over Ethernet. type: object + anyOf: + - required: + - ipAddresses + - required: + - macAddress properties: macAddress: description: > MAC address. If this attribute is not present, it shall be chosen by the NFV MANO. $ref: "#/definitions/MacAddress" + segmentationId: + description: > + Identification of the network segment to which the Cp instance connects to. + If the Cp instance represents a subport in a trunk, "segmentationId" shall be present. + Otherwise it shall not be present. + Depending on the NFVI networking infrastructure, the "segmentationId" may indicate the actual network segment + value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an + identifier used between the application and the NFVI networking infrastructure to identify the network sub-interface + of the trunk port in question. In the latter case the NFVI infrastructure will map this local "segmentationId" + to whatever "segmentationId" is actually used by the NFVI’s transport technology. + type: string ipAddresses: description: > List of IP addresses to assign to the CP instance. Each entry @@ -4027,6 +4409,13 @@ definitions: type: object required: - type + oneOf: + - required: + - fixedAddresses + - required: + - numDynamicAddresses + - required: + - addressRange properties: type: description: > @@ -4163,6 +4552,22 @@ definitions: The identifier of the resource in the scope of the VIM or the resource provider. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim" + vnfLinkPort: + description: > + Externally provided link ports to be used to connect VNFC connection points to this externally-managed VL on + this network resource. If this attribute is not present, the VNFM shall create the link ports on the + externally-managed VL. + type: array + items: + $ref: "#/definitions/VnfLinkPortData" + extManagedMultisiteVirtualLinkId: + description: > + Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFV-MANO entity + that manages the externally managed multi-site VL instance. It shall be present when the present externally-managed + internal VL (indicated by extManagedVirtualLinkId) is part of a multi-site VL, e.g., in support of multi-site VNF + spanning several VIMs. All externally-managed internal VL instances corresponding to an internal VL created based + on the same virtualLinkDescId shall refer to the same extManagedMultisiteVirtualLinkId. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" VnfExtCpData: description: > @@ -4175,13 +4580,26 @@ definitions: cpdId: description: > The identifier of the CPD in the VNFD. + In case this identifier refers to a CPD with trunking enabled, the external CP instances created from this CPD + will represent ports in a trunk. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" cpConfig: description: > - List of instance data that need to be configured on the CP instances - created from the respective CPD. - type: array - items: + Map of instance data that need to be configured on the CP instances created from the respective CPD. + The key of the map which identifies the individual VnfExtCpConfig entries is managed by the API consumer. + The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). + The map entry value shall be set to "null" in order to delete a "VnfExtCpConfig" entry identified by a + particular key value from the map, i.e. for the disconnection of an existing external CP instance addressed + by cpInstanceId in the deleted map entry from a particular external virtual link, and deletion of that + instance in case it represents a subport. Deleting the last key from the map removes the affected instance + of the "VnfExtCpData" structure from its parent data structure. + Within one VNF instance, all VNFC instances created from a particular VDU have the same external connectivity. + Thus, given a particular value of the “cpdId’ attribute, there shall be one “cpConfig” entry for each VNFC + instance that has been or can be created from a VDU which includes a CPD identified by the “cpdId” attribute. + If the cpConfig represents a subport in a trunk, all “cpConfig” entries in this list shall have the same + segmentationId, which means they are connected to the same set of external VLs via the trunk. + type: object + additionalProperties: $ref: "#/definitions/VnfExtCpConfig" ExtLinkPortData: @@ -4212,12 +4630,17 @@ definitions: shall create a link port on the external VL, and use that link port to connect the external CP to the external VL. type: object + anyOf: + - required: + - linkPortId + - required: + - cpProtocolData properties: - cpInstanceId: + parentCpConfigId: description: > - Identifier of the external CP instance to which this set of - configuration parameters is requested to be applied. - Shall be present if this instance has already been created. + Value of the key that identifies to the "VnfExtCpConfig" entry that corresponds to the parent port of the trunk. + Only present in "VnfExtCpConfig" map structures which provide configuration information for a CP which represents + a subport in a trunk, and if parent ports are supported. $ref: "#/definitions/IdentifierInVnf" linkPortId: description: > @@ -4225,12 +4648,9 @@ definitions: will be associated. The following conditions apply to the attributes "linkPortId" and "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. + * At least one of the "linkPortId" and "cpProtocolData" attributes + shall be present for a to-be-created external CP instance or an + existing external CP instance. * If the "linkPortId" attribute is absent, the VNFM shall create a link port. * If the "cpProtocolData" attribute is absent, the "linkPortId" @@ -4246,14 +4666,10 @@ definitions: description: > Parameters for configuring the network protocols on the link port that connects the CP to a VL. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. + The following conditions apply to the attributes "linkPortId" and "cpProtocolData": + * At least one of the "linkPortId" and "cpProtocolData" attributes + shall be present for a to-be-created external CP instance or an + existing external CP instance. * If the "linkPortId" attribute is absent, the VNFM shall create a link port. * If the "cpProtocolData" attribute is absent, the "linkPortId" @@ -4289,8 +4705,6 @@ definitions: It is expected to be unique within the VIM instance. Representation: string of variable length. type: string - - IdentifierInVnf: description: > An identifier that is unique for the respective type within a VNF @@ -4363,3 +4777,1307 @@ definitions: description: > Provide the sequence of bit values to be matched. type: string + + VnfSnapshotInfo: + description: | + This type represents an "Individual VNF snapshot" resource. The "id" attributed is used by the NFVO to index and + identify the VNF snapshots information resources that are accessible via the NFVO. The identifier is still + generated by the VNFM and copied into the present "VnfSnapshotInfo" representing the "Individual VNF snapshot" + resource hold by the NFVO. + type: object + required: + - id + properties: + id: + description: > + Identifier of the "Individual VNF snapshot" resource. This identifier is allocated by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshotPkgId: + description: > + Identifier of the VNF snapshot package information held by the NFVO. Shall be present when the + "Individual VNF snapshot" resource is created from a VNF snapshot package extraction. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshot: + description: > + Information about the VNF snapshot, content and/or references to its content. Shall be present when the + "Individual VNF snapshot" resource is associated to a VNF snapshot on a VNFM, either created via the + corresponding "Create VNF Snapshot" task resource or extracted from a VNF snapshot package. + $ref: '#/definitions/VnfSnapshot' + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" + + VnfSnapshot: + description: > + This type represents a VNF Snapshot. It shall comply with the provisions defined in table 6.5.2.18-1. + type: object + required: + - id + - vnfInstanceId + - triggeredAt + - createdAt + - vnfdId + - vnfInstance + - vnfcSnapshots + properties: + id: + description: > + Identifier of the VNF snapshot. This identifier is allocated by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfInstanceId: + description: > + Identifier of the snapshotted VNF instance. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + creationStartedAt: + description: > + Timestamp indicating when the VNF Snapshot creation has been started by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + creationFinishedAt: + description: > + Timestamp indicating when the VNF Snapshot has been completed by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + vnfdId: + description: > + Identifier of the VNFD in use at the time the snapshot of the VNF instance has been created. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfInstance: + description: > + VNF instance information of the snapshotted VNF instance. This is a copy of the "Individual VNF instance" resource. + $ref: '#/definitions/VnfInstance' + vnfcSnapshots: + description: > + Information about VNFC Snapshots constituting this VNF Snapshot. + type: array + items: + $ref: '#/definitions/VnfcSnapshotInfo' + userDefinedData: + description: > + User defined data for the VNF Snapshot. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + WanConnectionInfo: + description: | + This type provides information about the connectivity to the WAN of network resources realizing a VL, e.g., + when the VL is deployed on several sites across a WAN. It shall comply with the provisions defined in table 6.5.3.90-1. + type: object + required: + - wanConnectionInfoId + oneOf: + - required: + - nsVirtualLinkInfoId + - required: + - vnfVirtualLinkResourceInfoId + properties: + wanConnectionInfoId: + description: > + Identifies this WAN connection information. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" + nsVirtualLinkInfoId: + description: > + References the NS VL instance to which the connection information is associated. Shall be present if a + corresponding NS VL instance has been created. + Either a "nsVirtualLinkInfoId" or a "vnfVirtualLinkResourceInfoId" shall be provided, but not both. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" + vnfVirtualLinkResourceInfoId: + description: > + References the VNF VL instance to which the connection information is associated. Shall be present if a + corresponding VNF VL instance has been created. + Either a "nsVirtualLinkInfoId" or a "vnfVirtualLinkResourceInfoId" shall be provided, but not both. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" + protocolInfo: + description: > + Protocol specific information for connecting to the WAN. + $ref: "#/definitions/WanConnectionProtocolInfo" + + WanConnectionProtocolInfo: + description: | + This type provides protocol specific information about the connectivity to the WAN of network resources realizing + a VL, e.g., when the VL is deployed on several sites and across a WAN, and the related multi-site connectivity + service (MSCS) enabling the connectivity through the WAN. This type supports providing information about both + pre-provisioned WAN connectivity realized by external entities to NFV-MANO but parts of such connectivity is known + to the NFVO, as well as information about MSCS created under NFV-MANO responsibility (i.e., connectivity is realized + when NFVO communicates with the WIM). It shall comply with the provisions defined in table 6.5.3.91-1. + type: object + properties: + mscsInfo: + description: > + Information about the provisioned MSCS, if already available. + $ref: "#/definitions/MscsInfo" + connectivityServiceEndpoints: + description: > + Configuration information about the network resources in the NFVI-PoP and their connectivity to the WAN. + type: array + items: + $ref: "#/definitions/ConnectivityServiceEndpointInfo" + + NsLocationConstraint: + description: | + + type: object + + WanConnectionData: + description: | + This type provides information used to connect the comprising network resources realizing a VL, e.g., when the VL + is deployed on several sites and across a WAN. It shall comply with the provisions defined in table 6.5.3.80-1. + type: object + required: + - protocolData + oneOf: + - required: + - nsVirtualLink + - required: + - vnfVirtualLink + properties: + nsVirtualLink: + description: > + Information used to identify the NS VL for which the WAN connectivity data is applicable. + Either a "nsVirtualLink" or a "vnfVirtualLink" shall be provided, but not both. + type: object + required: + - nsVirtualLinkDescId + - nsVirtualLinkProfileId + properties: + nsVirtualLinkDescId: + description: > + Identifier of the VLD in the NSD from which the VL is created in the case of a multi-site NS VL. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + nsVirtualLinkProfileId: + description: > + Identifier of the VL profile in the NSD. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + vnfVirtualLink: + description: > + Information used to identify the VNF VL for which the WAN connectivity data is applicable. + Either a "nsVirtualLink" or a "vnfVirtualLink" shall be provided, but not both. + type: object + required: + - vnfProfileId + - vnfVirtualLinkDescId + - vnfVirtualLinkProfileId + properties: + vnfProfileId: + description: > + Identifier of the VNF profile. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + vnfVirtualLinkDescId: + description: > + Identifier of the VLD in the VNFD from which the VL is created in the case of a multi-site internal VNF VL. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfVirtualLinkProfileId: + description: > + Identifier of the VL profile in the VNFD. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + protocolData: + description: > + Protocol specific information for connecting to the WAN. + $ref: "#/definitions/WanConnectionProtocolData" + + ChangeVnfPackageData: + description: | + This type specifies the information needed to change the current VNF package for a VNF instance. Clause B.3 of the + ETSI GS NFV-IFA 007 illustrates the variants of changes to the current VNF Package and information flow procedures. + This operation encompasses the following scenarios: + * Changes of the VNF virtualised resources, such as requirements, composition and structure between the VNF versions, + without changing the VNF software version. + * Changes of both the VNF software version and the VNF virtualised resources. This case includes replacing the VNF + software version by means of virtualised resources management, such as terminating the current virtualized resource + instances running the current software version and instantiating new virtualized resource instances with the + destination VNF software version. The new virtualized resource instances may have the same characteristics as the + current virtualized resource instances. + * Changes related to the VNFD, such as correction of bugs in the VNFD, changes in the naming scheme of VNFD components + (e.g. name of the VDU, vduId), and adding/removing descriptors of VNF Package changes (VnfPackageChangeInfo). + NOTE: For software updates that are executed by functional entities outside NFV-MANO and that require synchronization + of the information held by the NFV-MANO entities with a new VNF package that reflects the same changes, an + alternative procedure using the PATCH method on the "Individual VNF instance" resource has been defined, as + illustrated in annex B.2 of ETSI GS NFV-IFA 007 [19]. This procedure assumes certain restrictions on the + characteristics of the new VNF package, as defined in note 1 in table 5.5.2.2-1 of ETSI GS NFV-SOL 003. + This type shall comply with the provisions defined in Table 6.5.3.54-1. + type: object + required: + - vnfInstanceId + - vnfdId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + Identifier of the VNFD which defines the destination VNF Package for the change. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. Entries in the list that are unchanged need not be + supplied as part of this request. + type: array + items: + $ref: "#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about internal VLs that are managed by the NFVO. + type: array + items: + $ref: "#/definitions/ExtManagedVirtualLinkData" + additionalParams: + description: > + Additional parameters passed by the OSS/BSS as input to the change current VNF package process, specific to the + VNF of which the underlying VNF package is changed, as declared in the VNFD as part of "ChangeCurrentVnfPkgOpConfig". + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute provides modifications to the values of the "extensions" attribute in "VnfInstance", + as defined in clause 6.5.3.57. Provisions for handling extensions during the operation, and needed passed + parameter values in case of conflicts, are defined in clause 5.4.11a.3.1 of ETSI GS NFV-SOL 003. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + vnfConfigurableProperties: + description: > + If present, this attribute provides modifications to the values of the VNF configurable properties attribute in + the "VnfInstance", as defined in clause 6.5.3.57. Provisions for handling VNF configurable properties during the + operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1 of ETSI + GS NFV-SOL 003. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + DeleteVnfSnapshotData: + description: > + This type specifies the identifier of information of an available VNF Snapshot to be deleted and the identifier of + the related VNF instance of the NS instance. It shall comply with the provisions defined in Table 6.5.3.74-1. + type: object + required: + - vnfInstanceId + - vnfSnapshotInfoId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance to identify the VNFM holding the VNF Snapshot information to be deleted. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshotInfoId: + description: > + Identifier of information held by the VNFM about the VNF Snapshot to be deleted. + This identifier was allocated by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + RevertVnfToSnapshotData: + description: > + This type specifies the identifier of an existing VNF instance of the NS instance to be reverted and the identifier + of an existing VNF Snapshot to be reverted to. It shall comply with the provisions defined in Table 6.5.3.75-1. + type: object + required: + - vnfInstanceId + - vnfSnapshotInfoId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance to identify the VNFM holding the VNF Snapshot information to be reverted. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshotInfoId: + description: > + Identifier of information held by the VNFM about the VNF Snapshot to be reverted. + This identifier was allocated by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + additionalParams: + description: > + Additional input parameters for the revert to VNF snapshot process, specific for the VNF being “reverted”, + as declared in the VNFD as part of “RevertToSnapshotVnfOpConfig”. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + CreateVnfSnapshotData: + description: > + This type represents the information that are needed for VNF snapshot creation. When the NFVO invokes the Create + VNF snapshot operation, a set of these parameters are then passed by the NFVO to the VNFM. It shall comply with + the provisions defined in Table 6.5.3.76-1. + type: object + required: + - vnfInstanceId + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance to perform the snapshot from. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + additionalParams: + description: > + Additional input parameters for the snapshot creation process, specific for the VNF being “snapshotted”, as + declared in the VNFD as part of “CreateSnapshotVnfOpConfig”. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + userDefinedData: + description: > + User defined data for the VNF snapshot. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + VnfcSnapshotInfo: + description: > + This type represents a VNFC Snapshot. It shall comply with the provisions defined in table 6.5.3.77-1. + type: object + required: + - id + - vnfcInstanceId + - triggeredAt + - createdAt + - vnfcInfoId + properties: + id: + description: > + Identifier of the information held by the VNFM about a specific VNFC Snapshot. This identifier is allocated by + the VNFM and is unique within the scope of a VNF snapshot. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfcInstanceId: + description: > + Identifier of the snapshotted VNFC instance. + $ref: "#/definitions/IdentifierInVnf" + creationStartedAt: + description: > + Timestamp indicating when the VNFC Snapshot creation has been started by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + creationFinishedAt: + description: > + Timestamp indicating when the VNFC Snapshot has been completed by the VNFM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + vnfcResourceInfoId: + description: > + Reference to the "VnfcResourceInfo" structure that represents the resources of the snapshotted VNFC instance. + A snapshot of that structure is available in the "vnfInstance" attribute of the "VnfSnapshot" structure. + $ref: "#/definitions/IdentifierInVnf" + computeSnapshotResource: + description: > + Reference to a compute snapshot resource. + The identifier of the compute snapshot resource is assigned during creation of a VNFC Snapshot being returned + from the VIM as output data in the response message of the individual resource operations. + This attribute shall only be present for a VNFC snapshot that has been newly created by the VNFM as a result + of the "Create VNF snapshot task". + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + storageSnapshotResources: + description: > + Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure that represents + the virtual storage resource. + type: array + items: + type: object + required: + - storageResourceId + properties: + storageResourceId: + description: > + Reference to the virtual storage resource. + $ref: "#/definitions/IdentifierInVnf" + storageSnapshotResources: + description: > + Reference to a storage snapshot resource. + The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot being + returned from the VIM as output data in the response message of the individual resource operations. + This attribute shall only be present for a VNFC snapshot with an associated storage resource and that + has been newly created by the VNFM as a result of the "Create VNF snapshot task". + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + userDefinedData: + description: > + User defined data for the VNF Snapshot. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + VnfLinkPortData: + description: > + This type represents an externally provided link port to be used to connect a VNFC connection point to an + externally-managed VL. It shall comply with the provisions defined in table 6.5.3.78-1. + type: object + required: + - vnfLinkPortId + - resourceHandle + properties: + vnfLinkPortId: + description: > + Identifier of this link port as provided by the entity that has created the link port. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Resource handle of the virtualised resource that realizes the link port. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + + ModificationsTriggeredByVnfPkgChange: + description: > + This type represents attribute modifications that were performed on an "Individual VNF instance" resource when + changing the current VNF package. The attributes that can be included consist of those requested to be modified + explicitly in the "ChangeCurrentVnfPkgRequest" data structure, and additional attributes of the "VnfInstance" data + structure that were modified implicitly during the operation. + The "ModificationsTriggeredByVnfPkgChange" data type shall comply with the provisions defined in table 6.5.3.79-1. + type: object + properties: + vnfConfigurableProperties: + description: > + This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" + performed by the operation and shall be present if that attribute was modified during the operation. + This attribute represents the delta (semantics as per IETF RFC 7396 [11], JSON Merge Patch) between + the value of the attribute at the start of the "Change current VNF package" operation and the value + of the attribute at its completion. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + This attribute signals the modifications of the "metadata" attribute in "VnfInstance" performed by the operation + and shall be present if that attribute was modified during the operation. This attribute represents the delta + (semantics as per IETF RFC 7396, JSON Merge Patch) between the value of the attribute at the start of the + "Change current VNF package" operation and the value of the attribute at its completion. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation + and shall be present if that attribute was modified during the operation. This attribute represents the delta + (semantics as per IETF RFC 7396 [11], JSON Merge Patch) between the value of the attribute at the start of the + "Change current VNF package" operation and the value of the attribute at its completion. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + vnfdId: + description: > + If present, this attribute signals the new value of the "vnfdId" attribute in "VnfInstance". + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals the new value of the "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly + during the related operation, and contains a copy of the value of the related attribute from the VNFD in the + VNF Package identified by the "vnfdId" attribute. + type: string + vnfProductName: + description: > + If present, this attribute signals the new value of the "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly + during the related operation, and contains a copy of the value of the related attribute from the VNFD in the + VNF Package identified by the "vnfdId" attribute. + type: string + vnfSoftwareVersion: + description: > + If present, this attribute signals the new value of the "vnfSoftwareVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly + during the related operation, by copying the value of this attribute from the VNFD in the VNF Package + identified by the "vnfdId" attribute. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly + during the related operation, by copying the value of this attribute from the VNFD in the VNF Package + identified by the "vnfdId" attribute. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" + + WanConnectionProtocolData: + description: > + This type provides protocol specific information used to connect the comprising network resources realizing a VL, + e.g., when the VL is deployed on several sites and across a WAN. This type supports signalling input information + about both pre-provisioned WAN connectivity realized by external entities to NFV-MANO, as well as for the creation + of MSCS under NFV-MANO responsibility (i.e., when connectivity is realized when NFVO communicates with the WIM). + It shall comply with the provisions defined in table 6.5.3.81-1. + type: object + anyOf: + - required: + - mscsInfo + - required: + - connectivityServiceEndpointConfigDatas + - required: + - mscsConfigData + properties: + mscsInfo: + description: > + Information about the pre-provisioned multi-site connectivity service (MSCS), if already available. + At least one of these attributes shall be present. Annex E documents the applicability of certain attributes + depending on the WAN and NFVI-PoP network management and the responsibilities of NFV-MANO in its provisioning. + $ref: "#/definitions/MscsInfo" + connectivityServiceEndpointConfigDatas: + description: > + Configuration data for the network resources in the NFVI-PoP. + At least one of these attributes shall be present. Annex E documents the applicability of certain attributes + depending on the WAN and NFVI-PoP network management and the responsibilities of NFV-MANO in its provisioning. + type: array + items: + $ref: "#/definitions/ConnectivityServiceEndpointInfo" + mscsConfigData: + description: > + Configuration data for the provisioning of the MSCS, if such MSCS is to be created by NFV-MANO. + At least one of these attributes shall be present. Annex E documents the applicability of certain attributes + depending on the WAN and NFVI-PoP network management and the responsibilities of NFV-MANO in its provisioning. + $ref: "#/definitions/MscsConfigData" + + MscsInfo: + description: > + This type provides information about an already provisioned multi-site connectivity service (MSCS) deployed across + a WAN. It shall comply with the provisions defined in Table 6.5.3.82-1. + type: object + required: + - mscsId + - mscsType + properties: + mscsId: + description: > + Identifier of the MSCS established over the WAN. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mscsName: + description: > + Human readable name of the MSCS. + type: string + mscsDescription: + description: > + Human readable description of the MSCS. + type: string + mscsType: + description: > + The type of connectivity that is provided to the virtualized networks in the NFVI-PoP and characterizes the + connectivity service across the WAN. + Permitted values: + - L2 + - L3 + type: string + enum: + - L2VPN + - L3VPN + mscsLayerProtocol: + description: > + Type of underlying connectivity service and protocol associated to the MSCS. + Permitted values are as listed below and restricted by the type of MSCS: + - EVPN_BGP_MPLS: as specified in IETF RFC 7432. Only applicable for mscsType="L2". + - EVPN_VPWS: as specified in IETF RFC 8214. Only applicable for mscsType="L2". + - VPLS_BGP: as specified in IETF RFC 4761 and IETF RFC 6624. Only applicable for mscsType="L2". + - VPLS_LDP_L2TP: as specified in IETF RFC 4762. Only applicable for mscsType="L2". + - VPWS_LDP_L2TP: as specified in IETF RFC 6074. Only applicable for mscsType="L2". + - BGP_IP_VPN: BGP/MPLS based IP VPN as specified in IETF RFC 4364. Only applicable for mscsType="L3". + type: string + enum: + - EVPN_BGP_MPLS + - EVPN_VPWS + - VPLS_BGP + - VPLS_LDP + - VPWS + - BGP_IP_VPN + siteAccessProtectionSchemes: + description: > + Information to determine the proper MSCS endpoints configuration to fulfil certain resiliency/protection + requirements, e.g., by considering certain availability and redundancy of connectivity service endpoints + in between NFVI-PoP and WAN. + type: array + items: + type: object + properties: + locationConstraints: + description: > + Defines the location constraints according to an NFVI-PoP (site). + $ref: "#/definitions/LocationConstraints" + protectionScheme: + description: > + Defines the protection scheme. + Permitted values: + - UNPROTECTED: to indicate no protection. + - ONE_TO_ONE: to indicate an active-passive access protection. + - ONE_PLUS_ONE: to indicate an active-active access protection. + - ONE_TO_N: to indicate an N active to 1 passive access protection. + type: string + enum: + - UNPROTECTED + - ONE_TO_ONE + - ONE_PLUS_ONE + - ONE_TO_N + mtuMscs: + description: > + Maximum Transmission Unit (MTU) that can be forwarded over the MSCS (in bytes). Default value is "1500" (bytes). + type: number + mscsEndpoints: + description: > + Information about the MSCS endpoints of the MSCS. + type: array + items: + $ref: "#/definitions/MscsEndpointInfo" + + MscsEndpointInfo: + description: > + This type provides encapsulates information about an MSCS endpoint of the MSCS. It shall comply with the provisions + defined in table 6.5.3.83-1. + type: object + required: + - mscsEndpointId + - directionality + - connectivityServiceEndpoinId + properties: + mscsEndpointId: + description: > + Identifier of the MSCS endpoint. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + directionality: + description: > + Directionality of the data traffic in the context of the terminating MSCS endpoint from WAN’s perspective. + Permitted values: + - INBOUND: to indicate into the WAN. + - OUTBOUND: to indicate from the WAN. + - BOTH: to indicate bidirectional data traffic to/from the WAN. + type: string + enum: + - INBOUND + - OUTBOUND + - BOTH + connectivityServiceEndpoinId: + description: > + References the connectivity service endpoint configuration information applicable to support the MSCS endpoint. + More than one connectivity service endpoint can be referred when endpoints are in LAG mode. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + ConnectivityServiceEndpointInfo: + description: > + This type provides configuration data for the NFVI-PoP network gateway providing connectivity service endpoints. + The connectivity service endpoints are used as endpoints by an MSCS. It shall comply with the provisions defined + in Table 6.5.3.84-1. + type: object + required: + - connectivityServiceEndpointId + - vimId + properties: + connectivityServiceEndpointId: + description: > + Identifier of the connectivity service endpoint of the NFVI-PoP (site) providing the UNI in between the + NFVI-PoP and the WAN. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vimId: + description: > + Identifier of the VIM responsible for the management of the virtualized networks in the NFVI-PoP of the + applicable VL, and for which the connection data is applicable. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + siteToWanLayer2ProtocolData: + description: > + Layer 2 protocol specific information for the configuration of the NFVI-PoP network gateway to enable the + stitching of the intra-site VN to the MSCS over the WAN. + $ref: "#/definitions/SiteToWanLayer2ProtocolData" + siteToWanLayer3ProtocolData: + description: > + Layer 3 protocol specific information for the configuration of NFVI-PoP network gateway to enable the stitching + of the intra-site VN to the MSCS over the WAN. + $ref: "#/definitions/SiteToWanLayer3ProtocolData" + + SiteToWanLayer2ProtocolData: + description: > + This type provides information about Layer 2 protocol specific information for the configuration of the NFVI-PoP + network gateway to enable the stitching of the intra-site VN to the MSCS over the WAN. It shall comply with the + provisions defined in Table 6.5.3.85-1. + type: object + required: + - layer2ConnectionInfo + properties: + layer2ConnectionInfo: + description: > + Layer 2 protocol parameters of the connectivity service endpoint (CSE). + type: object + required: + - connectionType + - interfaceType + - interfaceTagging + - encapsulationType + properties: + connectionType: + description: > + The type of connection to be established on the connectivity service point. + Permitted values: + - CSE: defined by the characteristics of the existing referred connectivity service point. + - AGGREGATE_CSE: create an aggregation of the connectivity service endpoints. + type: string + enum: + - CSE + - AGGREGATE_CSE + interfaceType: + description: > + To indicate whether to create logical interfaces on the referred connectivity service endpoint or new + aggregated connectivity service endpoint. + Permitted values: + - PARENT: use the mapped interface to the connectivity service endpoint as is, i.e., do not create logical interfaces. + - LOGICAL: create logical interfaces. + type: string + enum: + - PARENT + - LOGICAL + interfaceTagging: + description: > + The type of frames to forward on the connectivity service point. + Permitted values: + - UNTAGGED: an interface where frames are not tagged. + - TAGGED: an interface configured to forward tagged frames (i.e., enabled for VLAN tagging). + type: string + enum: + - UNTAGGED + - TAGGED + encapsulationType: + description: > + The type of encapsulation. If the interfaceTagging="TAGGED", either "VLAN" or "VXLAN" shall be set. + Permitted values: + - ETH: generic Ethernet encapsulation. + - VLAN: encapsulation based on VLAN. + - VXLAN: encapsulation based on VXLAN. + type: string + enum: + - ETH + - VLAN + - VXLAN + vlanTaggingType: + description: > + Type of encapsulation method for VLAN tagging. Shall be present if interfaceTagging="TAGGED" and + encapsulationType="VLAN". + Permitted values: + - DOT1Q: used when packets on the CSE are encapsulated with one or a set of customer VLAN identifiers. + - QINQ: used when packets on the CSE are encapsulated with multiple customer VLAN identifiers and a single + service VLAN identifier. + - QINANY: used when packets on the CSE have no specific customer VLAN and a service VLAN identifier is used. + type: string + enum: + - DOT1Q + - QINQ + - QINANY + wanSegmentIds: + description: > + Segment identifiers to pass on the tagged interface. Shall be present if encapsulationType="VLAN" or “VXLAN". + type: object + required: + - wanSegmentIdValue + properties: + wanSegmentIdValue: + description: > + Identifier of the network segment (e.g., VLAN id or VNI). + type: string + wanSegmentIdUpperRange: + description: > + Identifier of the upper range network segment, in case the "wanSegmentIds" is used to define a range. + type: string + vxlanConfig: + description: > + Additional configuration needed when using VXLAN encapsulation. Shall be present if interfaceTagging="TAGGED" + and encapsulationType="VXLAN". + type: object + required: + - peerMode + properties: + peerMode: + description: > + Type of VXLAN access mode. Default value is "STATIC". + + Permitted values: + - STATIC + - BGP_EVPN + type: string + enum: + - STATIC + - BGP_EVPN + peers: + description: > + List of IP addresses of VTEP peers when using static mode. + type: array + items: + $ref: "#/definitions/IpAddress" + lagInterfaceData: + description: > + Information for setting up a LAG interface aggregating multiple connectivity service endpoints. + type: object + required: + - aggregatedEndpoints + - lacpActivation + - lacpConfig + properties: + aggregatedEndpoints: + description: > + List of the connectivity service endpoints that are to be aggregated. Shall be present if + connectionType="AGGREGATE_CSE". In case of aggregating connectivity service endpoints, only one + SiteToWanLayer2ProtocolData shall be provided for the whole set of aggregated endpoints. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + lacpActivation: + description: > + Indicates whether to activate LACP on the interface. If "TRUE", the LACP is to be activated, or "FALSE" + otherwise. Default value is "FALSE". + type: boolean + lacpConfig: + description: > + Specific configuration for the LACP. Examples include configuration to indicate the minimum number of + active connectivity service endpoints, the time internal and priority of LACP packet data units (PDU). + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + layer2ControlProtocol: + description: > + Configuration enabling the L2 control protocol in between the NFVI-PoP network gateway and the WAN. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + mtuL2: + description: > + Maximum Transmission Unit (MTU) that can be forwarded at layer 2 (in bytes). Default value is "1500" (bytes). + type: number + virtualRoutingAndForwarding: + description: > + Configuration related to the L2 virtual routing and forwarding (MAC-VRF). + type: object + required: + - macVrfName + properties: + macVrfName: + description: > + Name (or identifier) of the MAC-VRF instance. + type: string + forwardingConfig: + description: > + Information related to the forwarding of the VN in the NFVI-PoP to the connectivity service endpoint, + if information about the VN to "stitch" is already known. . by the OSS/BSS. Shall not be provided otherwise, + in which case the NFVO will infer the forwarding configuration based on the NS VL, or external VL, or + externally-managed VL provisioning. + type: object + oneOf: + - required: + - networkResources + - required: + - vnSegmentIds + properties: + networkResources: + description: > + Reference to the VN resource to be forwarded into/from the MSCS. + Either "networkResources" or "vnSegmentsIds" shall be provided, but not both. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + vnSegmentIds: + description: > + Identifiers of the network segments of the VN resources to be forwarded into/from the MSCS. + type: object + required: + - vnSegmentIdValue + properties: + vnSegmentIdValue: + description: > + Identifier of the network segment. + type: string + vnSegmentIdUpperRange: + description: > + Identifier of the upper range network segment, in case the "vnSegmentIds" is used to define a range. + type: string + + SiteToWanLayer3ProtocolData: + description: > + This type provides information about Layer 3 protocol specific information for the stitching of the intra-site VN + to the multi-site connectivity service over the WAN. It shall comply with the provisions defined in Table 6.5.3.86-1. + type: object + required: + - routingInfo + properties: + logicalInterfaceIpAddress: + description: > + IP addressing information associated to a logical interface. Shall be present if the "interfaceType" of the + SiteToWanLayer2ProtocolData is equal to "LOGICAL". + type: object + required: + - ipAddress + - associatedSegmentId + properties: + ipAddress: + description: > + The IP address to be assigned to the interface. + $ref: "#/definitions/IpAddress" + associatedSegmentId: + description: > + The associated segment identifier that has triggered the creation of the logical interface. + The value shall be one of the values listed in the "wanSegmentIds" of the "siteToWanLayer2ProtocolData". + type: string + routingInfo: + description: > + The routing information that is activated on the connectivity service endpoint. More than one "routingInfo" is + allowed to enable stacking different routing protocols (e.g., one routing protocol for IPv4 and another one for IPv6). + type: object + required: + - routingProtocol + - routingAddressFamily + properties: + routingProtocol: + description: > + The routing protocol that is activated on the connectivity service endpoint. + Permitted values: + - BGP: used for dynamic routing BGPv4. + - RIP: used for dynamic routing RIPv2. + - OSPF: used for dynamic routing (OSPF version 2 for IPv4; and OSPF version 3 for IPv6). + - STATIC: used for static routing. + - DIRECT: used when the NFVI-PoP network is directly connected to the WAN provider network. + - VRRP: used when the NFVI-PoP network is directly connected to the WAN provider network with virtual + router redundancy protocol support (VRRP). + type: string + enum: + - BGP + - RIP + - OSPF + - STATIC + - DIRECT + - VRRP + staticRouting: + description: > + Defines a static route. It shall only be present if the routingProtocol="STATIC". + type: object + required: + - ipVersion + - ipPrefix + - prefixSize + - nextHop + properties: + ipVersion: + description: > + The IP version applicable to the routing entry. + Permitted values: + - IPV4 + - IPV6 + type: string + enum: + - IPV4 + - IPV6 + ipPrefix: + description: > + The IP network prefix. + $ref: '#/definitions/IpAddress' + prefixSize: + description: > + The IP prefix size. + type: number + nextHop: + description: > + The next hop’s IP address. + $ref: '#/definitions/IpAddress' + routingAddressFamily: + description: > + The IP version applicable to the dynamic routing protocol. Shall be present for dynamic routing protocols. + Permitted values: + - IPV4 + - IPV6 + type: string + enum: + - IPV4 + - IPv6 + ospfRouting: + description: > + Defines parameters for OSPF routing. It shall only be present if the routingProtocol="OSPF". + type: object + required: + - areaId + properties: + areaId: + description: > + The routing area identifier, e.g., a number or an IP address. + type: string + bgpRouting: + description: > + Defines parameters for BGP routing. It shall only be present if the routingProtocol="BGP". + type: object + required: + - bgpAs + properties: + bgpAs: + description: > + The Autonomous System (AS) identification applicable to the BGP routing info entry. + type: object + bgpNeighbour: + description: > + The IP address of the BGP neighbour. + $ref: '#/definitions/IpAddress' + bgpAdditionalParam: + description: > + Additional parameters for setting up the BGP neighbour, such as information about the remote AS. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + routeMapsDistribution: + description: > + Maps of routes that are permitted or denied for redistribution. + type: object + required: + - policy + - sequence + - matchAndSetRule + properties: + policy: + description: > + The policy to apply to the route distribution. + + Permitted values: + - PERMIT + - DENY + type: string + enum: + - PERMIT + - DENY + sequence: + description: > + Sequence or index number assigned to the route-map. + type: number + matchAndSetRule: + description: > + Set of "match" and "set" rules for the distribution of routing information. "Match" key entries define + the routes that are selected. "Set" key entries define what information to modify when distributing the + routing information. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + mtuL3: + description: > + Maximum Transmission Unit (MTU) that can be forwarded at layer 3 (in bytes). Default value is "1500" (bytes). + type: number + virtualRoutingAndForwarding: + description: > + Configuration related to the virtual routing and forwarding (VRF). + type: object + required: + - vrfName + properties: + vrfName: + description: > + Name (or identifier) of the VRF instance. + type: string + bfdConfig: + description: > + Configuration related to bidirectional forwarding detection (BFD). + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + MscsConfigData: + description: > + This type provides configuration data for the creation of an MSCS. It shall comply with the provisions defined in + Table 6.5.3.87-1. + type: object + required: + - mscsType + properties: + mscsType: + description: > + The type of connectivity that is requested to be provided to the virtualized networks in the NFVI-PoP and + characterizes the connectivity service across the WAN. + Permitted values: + - L2 + - L3 + type: string + enum: + - L2 + - L3 + siteAccessProtectionSchemes: + description: > + Information to determine the proper MSCS endpoints configuration to fulfil certain resiliency/protection + requirements, e.g., by considering certain availability and redundancy of connectivity service endpoints in + between NFVI-PoP and WAN. + type: array + items: + type: object + required: + - locationConstraints + - protectionScheme + properties: + locationConstraints: + description: > + Defines the location constraints according to an NFVI-PoP (site). + $ref: '#/definitions/LocationConstraints' + protectionScheme: + description: > + Defines the protection scheme. + Permitted values: + - UNPROTECTED + - ONE_TO_ONE + - ONE_PLUS_ONE + - ONE_TO_N + type: string + enum: + - UNPROTECTED + - ONE_TO_ONE + - ONE_PLUS_ONE + - ONE_TO_N + mtuMscs: + description: > + Maximum Transmission Unit (MTU) that can be forwarded over the MSCS (in bytes). Default value is "1500" (bytes). + type: number + wanLayer2ProtocolData: + description: > + Layer 2 protocol specific information for the configuration of the multi-site connectivity service over the WAN. + $ref: '#/definitions/WanLayer2ProtocolData' + wanLayer3ProtocolData: + description: > + Layer 3 protocol specific information for the configuration of the multi-site connectivity service over the WAN. + $ref: '#/definitions/WanLayer3ProtocolData' + + WanLayer2ProtocolData: + description: > + This type provides information about Layer 2 protocol specific information for the configuration of the MSCS over + the WAN. It shall comply with the provisions defined in Table 6.5.3.88-1. + type: object + required: + - isSegmentPreservation + - isSegmentCosPreservation + properties: + mscsLayer2Protocol: + description: > + Type of underlying connectivity service and protocol associated to the type of MSCS. + Permitted values are as listed below and restricted by the type of MSCS: + - EVPN_BGP_MPLS: as specified in IETF RFC 7432. + - EVPN_VPWS: as specified in IETF RFC 8214. + - VPLS_BGP: as specified in IETF RFC 4761 and IETF RFC 6624. + - VPLS_LDP_L2TP: as specified in IETF RFC 4762 and IETF RFC 6074. + - VPWS_LDP_L2TP: as specified in IETF RFC 6074. + type: string + enum: + - EVPN_BGP_MPLS + - EVPN_VPWS + - VPLS_BGP + - VPLS_LDP_L2TP + - VPWS_LDP_L2TP + isSegmentPreservation: + description: > + Indicates the requirement of whether to ensure network segment (e.g., VLAN id) preservation across the MSCS + endpoints (i.e., from/to the NFVI-PoPs). If "TRUE", segment identifiers shall be preserved, "FALSE" otherwise. + Default value is "FALSE". + type: boolean + isSegmentCosPreservation: + description: > + Indicates the requirement of whether to ensure network segment class of service preservation across the MSCS + endpoints (i.e., from/to the NFVI-PoPs). If "TRUE", segment class of service shall be preserved, "FALSE" otherwise. + Default value is "FALSE". + type: boolean + + WanLayer3ProtocolData: + description: > + Type of underlying connectivity service and protocol associated to the type of MSCS. + Permitted values are as listed below and restricted by the type of MSCS: + - BGP_IP_VPN: BGP/MPLS based IP VPN as specified in IETF RFC 4364. + type: string + enum: + - BGP_IP_VPN + + ModifyWanConnectionInfoData: + description: > + This type represents attribute modifications for WAN connection information. The attributes of the "WanConnectionInfo" + that can be modified according to the provisions of the "UpdateNsRequest" in clause 6.5.2.12 related to WAN connection + information are included in the "ModifyWanConnectionInfoData" data type. It shall comply with the provisions defined + in table 6.5.3.92-1. + type: object + required: + - wanConnectionInfoId + properties: + wanConnectionInfoId: + description: > + Identifier of the WAN connection information to modify. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mscsName: + description: > + New value of the "mscsName" attribute in "MscsInfo", or "null" to remove the attribute. + type: string + mscsDescription: + description: > + New value of the "mscsDescription" attribute in "MscsInfo", or "null" to remove the attribute. + type: string + mscsEndpoints: + description: > + New content of certain entries of MSCS endpoints in the "mscsEndpoints" attribute in "MscsInfo", + as defined below this table. + type: array + items: + $ref: "#/definitions/MscsEndpointInfo" + removeMscsEndpointIds: + description: > + List of identifier entries to be deleted from the "mscsEndpoints" attribute array in "MscsInfo", to be used + as "deleteIdList" as defined below this table. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + connectivityServiceEndpoints: + description: > + New content of certain entries of connectivity service endpoints in the "connectivityServiceEndpointInfos" + attribute in "WanConnectionProtocolInfo", as defined below this table. + type: array + items: + $ref: "#/definitions/ConnectivityServiceEndpointInfo" + removeConnectivityServiceEndpoints: + description: > + List of identifier entries to be deleted from the "connectivityServiceEndpointInfos" attribute array in + "WanConnectionProtocolInfo", to be used as "deleteIdList" as defined below this table. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + WanConnectionInfoModification : + description: > + This type represents attribute modifications that were performed on WAN connection information. + The attributes that can be included consist of those requested to be modified explicitly with the "UpdateNsRequest" + data structure. It shall comply with the provisions defined in table 6.5.3.93-1. + type: object + required: + - wanConnectionInfoId + properties: + wanConnectionInfoId: + description: > + Identifier of the WAN connection information that has been modified. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mscsName: + description: > + If present, this attribute signals modifications of the "mscsName" attribute in "MscsInfo" as defined in + clause 6.5.3.82. + type: string + mscsDescription: + description: > + If present, this attribute signals modifications of the "mscsDescription" attribute in "MscsInfo" as defined + in clause 6.5.3.82. + type: string + mscsEndpoints: + description: > + If present, this attribute signals modifications of certain entries in the "mscsEndpoints" attribute array in + "MscsInfo", as defined in clause 6.5.3.82. + type: array + items: + $ref: "#/definitions/MscsEndpointInfo" + removeMscsEndpointIds: + description: > + If present, this attribute signals the deletion of certain entries in the "mscsEndpoints" attribute array in + "MscsInfo", as defined in clause 6.5.3.82. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + connectivityServiceEndpoints: + description: > + If present, this attribute signals modifications of certain entries in the "connectivityServiceEndpoints" + attribute array in "WanConnectionProtocolInfo", as defined in clause 6.5.3.91. + type: array + items: + $ref: "#/definitions/ConnectivityServiceEndpointInfo" + removeConnectivityServiceEndpoints: + description: > + If present, this attribute signals the deletion of certain entries in the "connectivityServiceEndpoints" + attribute array in "WanConnectionProtocolInfo", as defined in clause 6.5.3.91. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + AddNsVirtualLinkData: + description: > + This type specifies the parameters used for the creation of a new NsVirtualLink instance. + It shall comply with the provisions defined in table 6.5.3.95-1. + type: object + required: + - nsVirtualLinkProfileId + properties: + nsVirtualLinkProfileId: + description: > + Identifier of the virtual link profile to be used to create a new NsVirtualLink instance. + All NsVirtualLink instances of a particular NS DF based on a specific "NsVirtualLinkDesc" + have the same characteristics as they use the same "VirtualLinkProfile". + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + NestedNsLocationConstraint: + description: > + This type represents the association of location constraints to a nested NS instance to be created according to a + specific NS profile. It shall comply with the provisions defined in Table 6.5.3.96-1. + type: object + required: + - nsProfileId + - locationConstraints + properties: + nsProfileId: + description: > + Identifier of an NsProfile defined in the NSD which the existing nested NS instance shall be matched with. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" + locationConstraints: + description: > + Defines the location constraints for the nested NS instance to be created based on the NS profile. + $ref: "#/definitions/LocationConstraints" + + LcmOpOccNotificationVerbosityType: + description: > + The enumeration LcmOpOccNotificationVerbosityType provides values to control the verbosity of LCM operation + occurrence notifications. It shall comply with the provisions defined in table 6.5.4.11-1. + * FULL: This signals a full notification which contains all change details. + * SHORT: This signals a short notification which omits large-volume change details to reduce the size of data to + be sent via the notification mechanism. + type: string + enum: + - FULL + - SHORT \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index e8f1a96985eec61fbcf5853434d697a7762092b5..eb6f38e6dea2e38a24a785bd285dc2345fe1f476 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -1,485 +1,368 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NS Lifecycle Management Notification interface" - description: > + title: SOL005 - NS Lifecycle Management Notification interface + description: | SOL005 - NS Lifecycle Management Notification interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to. In case of - discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification + it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -basePath: /callback/v1 +servers: + - url: http://127.0.0.1/callback/v1 + - url: https://127.0.0.1/callback/v1 -schemes: - - http - - https - -consumes: - - application/json -produces: - - application/json paths: - ################################################################################## - # Notification endpoint NS Lifecycle Management # - ################################################################################## - '/URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: + summary: Test the notification endpoint. + description: | + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and + 6.4.18.3.2-2 for URI query parameters, request and response data structures, and response codes. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + "204": + $ref: '#/components/responses/NsLcmOperationOccurrenceNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + post: summary: Notify about NS lifecycle change - description: > - The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. This method shall follow the + provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, request and response + data structures, and response codes. parameters: - - name: NsLcmOperationOccurrenceNotification - description: > - A notification about lifecycle changes triggered by a NS LCM. - operation occurrence. - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsLcmOperationOccurrenceNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsLcmOperationOccurrenceNotificationRequest' responses: - 204: - description: > - 204 No Content - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "204": + $ref: '#/components/responses/NsLcmOperationOccurrenceNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + /URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Test the notification endpoint. - description: > - Query NS Instances. - - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. - during subscription. - This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and 6.4.18.3.2-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and + 6.4.18.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/NsIdentifierCreationNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification': post: summary: Notify about NS lifecycle change - The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource + with a matching filter. This method shall follow the provisions specified in the + Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, request and response + data structures, and response codes. parameters: - - name: NsIdentifierCreationNotification - description: > - A notification about the creation of a NS identifier and the related - NS instance resource. - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsIdentifierCreationNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsIdentifierCreationNotificationRequest' responses: - 204: - description: > - 204 No Content - - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "204": + $ref: '#/components/responses/NsIdentifierCreationNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + /URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Test the notification endpoint. - description: > + description: | Query NS Instances. - - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. - during subscription. - This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and 6.4.18.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and + 6.4.18.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 204: - description: > - 204 No Content - - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "204": + $ref: '#/components/responses/NsIdentifierDeletionNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification': post: summary: Notify about NS lifecycle change - description: > - The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, - request and response data structures, and response codes. - + description: | + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "Individual subscription" resource + with a matching filter. This method shall follow the provisions specified in the + Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, request and response + data structures, and response codes. parameters: - - name: NsIdentifierDeletionNotification - description: > - A notification about the deletion of a NS identifier and the related - NS instance resource. - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsIdentifierDeletionNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/NsIdentifierDeletionNotificationRequest' responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/NsIdentifierDeletionNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + +components: + requestBodies: + NsLcmOperationOccurrenceNotificationRequest: + description: | + A notification about lifecycle changes triggered by a NS LCM. operation occurrence. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsLcmOperationOccurrenceNotification + required: true - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + NsIdentifierCreationNotificationRequest: + description: | + A notification about the creation of a NS identifier and the related NS instance resource. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsIdentifierCreationNotification + required: true - get: - summary: Test the notification endpoint. - description: > - Query NS Instances. + NsIdentifierDeletionNotificationRequest: + description: | + A notification about the deletion of a NS identifier and the related NS instance resource. + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsIdentifierDeletionNotification + required: true + + responses: + NsLcmOperationOccurrenceNotification.Get: + description: | + 204 No Content + Shall be returned when the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + NsLcmOperationOccurrenceNotification.Post: + description: | + 204 No Content + Shall be returned when the notification has been delivered successfully. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. - during subscription. - This method shall follow the provisions specified in the Tables 6.4.18.3.2-1 and 6.4.18.3.2-2 for URI query parameters, - request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 204: - description: > - 204 No Content + NsIdentifierCreationNotification.Get: + description: | + 204 No Content + Shall be returned when the notification endpoint has been tested successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} - Shall be returned when the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + NsIdentifierCreationNotification.Post: + description: | + 204 No Content + Shall be returned when the notification has been delivered successfully. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + NsIdentifierDeletionNotification.Get: + description: | + 204 No Content + Shall be returned when the notification endpoint has been tested successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + NsIdentifierDeletionNotification.Post: + description: | + 204 No Content + Shall be returned when the notification has been delivered successfully. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml index cbfc6a79aa81ed59e833bc41fcafacc5894c5579..90030db4d5ca4e523828489628a1007627bde3cc 100644 --- a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml @@ -75,10 +75,22 @@ definitions: NS is modified as a result of an operation on its composite NS. Set to false otherwise. $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + verbosity: + description: > + This attribute signals the verbosity of the notification. + If it is not present, it shall default to the value "FULL". + If the value is "SHORT", full change details can be obtained by performing a GET request on the + "Individual LCM operation occurrence" resource that is signalled by the "nsLcmOpOcc" child attribute + of the "_links" attribute. + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpOccNotificationVerbosityType" affectedVnf: description: > Information about the VNF instances that were affected during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf" @@ -86,6 +98,10 @@ definitions: description: > Information about the PNF instances that were affected during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf" @@ -93,6 +109,10 @@ definitions: description: > Information about the VL instances that were affected during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" @@ -100,21 +120,31 @@ definitions: description: > Information about the VNFFG instances that were affected during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnffg" affectedNs: description: > Information about the SAP instances that were affected - during the lifecycle operation. See note. + during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedNs" affectedSap: description: > Information about the SAP instances that were affected during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and the operation - has performed any resource modification. Shall be absent otherwise. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap" @@ -163,7 +193,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > - The created NS instance identifier + The created NS instance identifier. + Shall be set to the same "id" attribute value of the associated "NsInstance" representation of the + "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" _links: description: > @@ -203,7 +235,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > - The created NS instance identifier + The deleted NS instance identifier. + Shall be set to the same "id" attribute value of the associated "NsInstance" representation of the + "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" _links: description: > @@ -272,7 +306,7 @@ definitions: associated to the notification and impacts the NS component directly or indirectly. - $ref: "#/definitions/LcmOpNameForChangeNotificationType" + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpNameForChangeNotificationType" lcmOpOccStatusImpactingNsComponent: description: > Indicates this status of the lifecycle @@ -280,7 +314,7 @@ definitions: associated to the notification and impacts the NS component directly or indirectly. - $ref: "#/definitions/LcmOpOccStatusForChangeNotificationType" + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpOccStatusForChangeNotificationType" notificationType: description: > Discriminator for the different diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index ab293551c88a41b0a3b691516c766bbb6bda1d1b..1b61242db629447e98e14488fb93bfb498abc7ef 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -1,67 +1,51 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NS Performance Management Interface" - description: > + title: SOL005 - NS Performance Management Interface + description: | SOL005 - NS Performance Management Interface + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - contact: - name: "NFV-SOL WG" + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf - -basePath: /nspm/v2 - -schemes: - - http - - https + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -consumes: - - application/json - -produces: - - application/json +servers: + - url: http://127.0.0.1/nspm/v2 + - url: https://127.0.0.1/nspm/v2 paths: ############################################################################### # API Versions # ############################################################################### - '/api_versions': + /api_versions: $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' ############################################################################### # PM Jobs # ############################################################################### - '/pm_jobs': + /pm_jobs: #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType post: summary: Create a PM job. - description: > + description: | The POST method creates a PM job. This method shall follow the provisions specified in the Tables 7.4.2.3.1-1 and 7.4.2.3.1-2 for URI query parameters, @@ -69,370 +53,135 @@ paths: As the result of successfully executing this method, a new "Individual PM job" resource exist as defined in clause 7.4.3 shall have been created. - parameters: - - name: CreatePmJobRequest - in: body - required: true - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest" - description: > - The VNF creation parameters. - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string + requestBody: + $ref: '#/components/requestBodies/CreatePmJobRequest' responses: 201: - description: > - 201 CREATED - - Shall be returned when the "Individual PM job" has been created successfully. - The response body shall contain a representation of - the created PM job resource, as defined in clause 7.5.2.7. - The HTTP response shall include a "Location" HTTP - header that points to the created "Individual PM job" resource. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PMJobs.Post.201' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Query PM jobs. - description: > + description: | The API consumer can use this method to retrieve information about PM jobs. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the PmJob and in data types referenced from it - shall be supported by the NFVO in the filter expression. - - name: all_fields - in: query - required: false - type: string - description: > - Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 - for details. The NFVO shall support this parameter. - - name: fields - in: query - required: false - type: string - description: > - Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 - for details. The NFVO should support this parameter. - - name: exclude_fields - in: query - required: false - type: string - description: > - Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013 - for details. The NFVO should support this parameter. - - name: exclude_default - in: query - required: false - type: string - description: > - Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this - parameter. - The following attributes shall be excluded from the 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. - - name: nextpage_opaque_marker - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV-SOL 013 for this resource. - in: query - required: false - type: string - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: - description: > - 200 OK - - Shall be returned when information about zero or more PM jobs has been queried successfully. - The response body shall contain in an array the representations of - zero or more PM jobs, as defined in clause 7.5.2.7. - - If the "filter" URI parameter or one of the "all_fields", "fields", "include_fields", - "exclude_fields" or "exclude_default" URI parameters was supplied in the request and is - supported, the data in the response body shall have been transformed according to the - rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV SOL 013, respectively. - - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header - in this response shall follow the provisions in clause 5.4.2.3 of - ETSI GS NFV SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" + $ref: '#/components/responses/PMJobs.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Individual PM job # ############################################################################### - '/pm_jobs/{pmJobId}': + /pm_jobs/{pmJobId}: #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.3 parameters: - - name: pmJobId - description: > - Identifier of the PM job. - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request creating a new PM job resource. It can also be retrieved from the "id" attribute in the - payload body of that response. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: true - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/PmJobId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Read a single PM job. - description: > + description: | The API consumer can use this method for reading an individual PM job. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: 200: - description: > - 200 OK - - Shall be returned when information about an individual - PM job has been queried successfully. - The response body shall contain a representation of - the "Individual PM job resource", as defined in clause 7.5.2.7. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualPMJob.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" patch: summary: Modify a PM job. - description: > + description: | This method allows to modify an "individual PM job" resource. This method shall follow the provisions specified in the Tables 7.4.3.3.4-1 and 7.4.3.3.4-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: pmJobModifications - in: body - required: true - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJobModifications" - - name: Content-type - description: > - The Content-Type header shall be set to "application/merge-patch+json" - according to IETF RFC 7396. - in: header - required: true - type: string - enum: - - application/merge-patch+json + - $ref: '#/components/parameters/ContentTypeMergePatchJSON' + requestBody: + $ref: '#/components/requestBodies/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: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJobModifications" + $ref: '#/components/responses/IndividualPMJob.Patch.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" + $ref: "../responses/SOL005_resp.yaml#/components/responses/412" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" delete: summary: Delete a PM job. - description: > + description: | This method terminates an individual PM job. This method shall follow the provisions specified in the Tables 7.4.3.3.5-1 and 7.4.3.3.5-2 for URI query parameters, request and response data structures, @@ -441,159 +190,75 @@ paths: resource shall not exist any longer. responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the PM job has been deleted successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualPMJob.Delete.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Individual performance report # ############################################################################### - '/pm_jobs/{pmJobId}/reports/{reportId}': + /pm_jobs/{pmJobId}/reports/{reportId}: #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.4 parameters: - - name: pmJobId - description: > - Identifier of the PM job. - in: path - type: string - required: true - - name: reportId - description: > - Identifier of the performance report. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: true - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/PmJobId' + - $ref: '#/components/parameters/ReportId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Read an individual performance report. - description: > + description: | The API consumer can use this method for reading an individual performance report. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: 200: - description: > - 200 OK - - Shall be returned when information of an individual performance - report has been read successfully. - The response body shall contain a representation of the "Individual performance - report" resource, as defined in clause 7.5.2.10. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PerformanceReport" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualPerformanceReport.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Thresholds # ############################################################################### - '/thresholds': + /thresholds: #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Create a threshold. - description: > + description: | The POST method can be used by the API consumer to create a threshold. @@ -605,380 +270,161 @@ paths: "Individual threshold" resource as defined in clause 7.4.6 shall have been created. parameters: - - name: CreateThresholdRequest - in: body - required: true - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest" - description: > - Request parameters to create a new "Individual threshold" resource. - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/CreateThresholdRequest' responses: 201: - description: > - 201 CREATED - - Shall be returned when a threshold has been created successfully. - The response body shall contain a representation of - the created "Individual threshold" resource, as defined in clause 7.5.2.9. - The HTTP response shall include a "Location" HTTP - header that contains the resource URI of the created - threshold resource. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/Thresholds.Post.201' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Query thresholds. - description: > + description: | The API consumer can use this method to query information about thresholds. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the Thresholds data type and in data types referenced from it - shall be supported by the NFVO in the filter expression. - - name: nextpage_opaque_marker - in: query - required: false - type: string - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO - if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV SOL 013for this resource. - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: - description: > - 200 OK - - Shall be returned when information about zero or more thresholds was queried - successfully. - If the "filter" URI parameter was supplied in the request, the data in the - response body shall have been transformed according to the rules specified - in clause 5.2.2 of ETSI GS NFV-SOL 013. - The response body shall contain representations of zero or more thresholds, - as defined in clause 7.5.2.9. - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of - ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header - in this response shall follow the provisions in clause 5.4.2.3 of - ETSI GS NFV SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold" + $ref: '#/components/responses/Thresholds.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Individual threshold # ############################################################################### - '/thresholds/{thresholdId}': + /thresholds/{thresholdId}: #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6 parameters: - - name: thresholdId - description: > - Identifier of the threshold. - This identifier can be retrieved from the resource referenced by the - "Location" HTTP header in the response to a POST request creating a - new threshold resource. It can also be retrieved from the "id" - attribute in the payload body of that response. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: true - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/ThresholdId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Query a single threshold. - description: > + description: | The API consumer can use this method for reading an individual threshold. This method shall follow the provisions specified in the Tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: 200: - description: > - 200 OK - - Shall be returned when information about an individual threshold - has been queried successfully. - The response body shall contain a representation of - the threshold, as defined in clause 7.5.2.9. - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualThreshold.Get.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" patch: summary: Modify a Threshold - description: > + description: | This method allows to modify an "Individual threshold" resource. This method shall follow the provisions specified in the Tables 7.4.6.3.4-1 and 7.4.6.3.4-2 for URI query parameters, request and response data structures, and response codes. parameters: - - name: thresholdModifications - in: body - required: true - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/ThresholdModifications" - - name: Content-type - in: header - required: true - type: string - enum: - - application/merge-patch+json + - $ref: '#/components/parameters/ContentTypeMergePatchJSON' + requestBody: + $ref: '#/components/requestBodies/ThresholdModifications' 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 "ThresholdModifications". - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/ThresholdModifications" + $ref: '#/components/responses/IndividualThreshold.Patch.200' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 412: - $ref: "../responses/SOL005_resp.yaml#/responses/412" + $ref: "../responses/SOL005_resp.yaml#/components/responses/412" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" delete: summary: Delete a Threshold. - description: > + description: | This method allows to delete a threshold. As the result of successfully executing this method, the "Individual threshold" resource shall not exist any longer. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the threshold has been deleted successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/IndividualThreshold.Delete.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Subscriptions # @@ -987,14 +433,14 @@ paths: # #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7 # parameters: # - name: Authorization -# description: > +# description: | # The authorization token for the request. # Reference: IETF RFC 7235. # in: header # required: false # type: string # - name: Version -# description: > +# description: | # Version of the API requested to use when responding to this request. # in: header # required: true @@ -1002,7 +448,7 @@ paths: # # post: # summary: Subscribe to PM notifications. -# description: > +# description: | # The POST method creates a new subscription. # This method shall follow the provisions specified in the Tables 7.4.7.3.1-1 and 7.4.7.3.1-2 for URI query parameters, # request and response data structures, and response codes. @@ -1016,14 +462,14 @@ paths: # the existing subscription resource with the same filter and callbackUri) # parameters: # - name: Accept -# description: > +# description: | # Content-Types that are acceptable for the response. # Reference: IETF RFC 7231. # in: header # required: true # type: string # - name: Content-Type -# description: > +# description: | # The MIME type of the body of the request. # Reference: IETF RFC 7231. # in: header @@ -1034,11 +480,11 @@ paths: # required: true # schema: # $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" -# description: > +# description: | # Details of the subscription to be created. # responses: # 201: -# description: > +# description: | # 201 CREATED # # Shall be returned when the subscription has been created successfully. @@ -1051,7 +497,7 @@ paths: # headers: # Content-Type: # type: string -# description: > +# description: | # The MIME type of the body of the response.This header # field shall be present if the response has a non-empty message # body. @@ -1059,40 +505,40 @@ paths: # minimum: 1 # WWW-Authenticate: # type: string -# description: > +# description: | # Challenge if the corresponding HTTP request has not provided # authorization, or error details if the corresponding HTTP request # has provided an invalid authorization token. # maximum: 1 # minimum: 0 # Version: -# description: > +# description: | # Version of the API used in the response. # type: string # maximum: 1 # minimum: 1 # 303: -# $ref: "../responses/SOL005_resp.yaml#/responses/303" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/303" # 400: -# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/400" # 401: -# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/401" # 403: -# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/403" # 404: -# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/404" # 405: -# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/405" # 406: -# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/406" # 500: -# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/500" # 503: -# $ref: "../responses/SOL005_resp.yaml#/responses/503" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/503" # # get: # summary: Query PM related subscriptions. -# description: > +# description: | # The client can use this method to query the list of active subscriptions to Performance management notifications # subscribed by the client. # This method shall follow the provisions specified in the Tables 7.4.7.3.2-1 and 7.4.7.3.2-2 for URI query parameters, @@ -1102,7 +548,7 @@ paths: # in: query # required: false # type: string -# description: > +# description: | # Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. # The NFVO shall support receiving this parameter as part of the URI query string. # The OSS/BSS may supply this parameter. @@ -1112,12 +558,12 @@ paths: # in: query # required: false # type: string -# description: > +# description: | # Marker to obtain the next page of a paged response. Shall be supported by the NFVO # if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of # ETSI GS NFV-SOL 013 for this resource. # - name: Accept -# description: > +# description: | # Content-Types that are acceptable for the response. # Reference: IETF RFC 7231. # in: header @@ -1125,7 +571,7 @@ paths: # type: string # responses: # 200: -# description: > +# description: | # 200 OK # # Shall be returned when the list of subscriptions has @@ -1151,20 +597,20 @@ paths: # minimum: 1 # WWW-Authenticate: # type: string -# description: > +# description: | # Challenge if the corresponding HTTP request has not provided # authorization, or error details if the corresponding HTTP request # has provided an invalid authorization token. # maximum: 1 # minimum: 0 # Version: -# description: > +# description: | # Version of the API used in the response. # type: string # maximum: 1 # minimum: 1 # Link: -# description: > +# description: | # Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. # type: string # maximum: 1 @@ -1174,21 +620,21 @@ paths: # items: # $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription" # 400: -# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/400" # 401: -# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/401" # 403: -# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/403" # 404: -# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/404" # 405: -# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/405" # 406: -# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/406" # 500: -# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/500" # 503: -# $ref: "../responses/SOL005_resp.yaml#/responses/503" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ############################################################################### # Individual subscription # @@ -1197,7 +643,7 @@ paths: # #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8 # parameters: # - name: subscriptionId -# description: > +# description: | # Identifier of the subscription. # This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response # to a POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the @@ -1206,14 +652,14 @@ paths: # type: string # required: true # - name: Authorization -# description: > +# description: | # The authorization token for the request. # Reference: IETF RFC 7235 # in: header # required: true # type: string # - name: Version -# description: > +# description: | # Version of the API requested to use when responding to this request. # in: header # required: true @@ -1221,14 +667,14 @@ paths: # # get: # summary: Query a single PM related subscription. -# description: > +# description: | # The client can use this method for reading an individual subscription about Performance management notifications # subscribed by the client. # This method shall follow the provisions specified in the Tables 7.4.8.3.2-1 and 7.4.8.3.2-2 for URI query parameters, # request and response data structures, and response codes. # parameters: # - name: Accept -# description: > +# description: | # Content-Types that are acceptable for the response. # Reference: IETF RFC 7231 # in: header @@ -1236,7 +682,7 @@ paths: # type: string # responses: # 200: -# description: > +# description: | # 200 OK # # Shall be returned when the subscription has been read successfully. @@ -1247,44 +693,44 @@ paths: # headers: # Content-Type: # type: string -# description: > +# description: | # The MIME type of the body of the response.This header # field shall be present if the response has a non-empty message # body. # WWW-Authenticate: # type: string -# description: > +# description: | # Challenge if the corresponding HTTP request has not provided # authorization, or error details if the corresponding HTTP request # has provided an invalid authorization token. # maximum: 1 # minimum: 0 # Version: -# description: > +# description: | # Version of the API used in the response. # type: string # maximum: 1 # minimum: 1 # 400: -# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/400" # 401: -# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/401" # 403: -# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/403" # 404: -# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/404" # 405: -# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/405" # 406: -# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/406" # 500: -# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/500" # 503: -# $ref: "../responses/SOL005_resp.yaml#/responses/503" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/503" # # delete: # summary: Terminate a subscription. -# description: > +# description: | # This method terminates an individual subscription. # This method shall follow the provisions specified in the # Tables 7.4.8.3.5-1 and 7.4.8.3.5-2 for URI query parameters, @@ -1298,7 +744,7 @@ paths: # certain time period after the deletion. # parameters: # - name: Accept -# description: > +# description: | # Content-Types that are acceptable for the response. # Reference: IETF RFC 7231. # in: header @@ -1306,7 +752,7 @@ paths: # type: string # responses: # 204: -# description: > +# description: | # 204 NO CONTENT # # Shall be returned when the subscription resource has been @@ -1315,31 +761,513 @@ paths: # headers: # WWW-Authenticate: # type: string -# description: > +# description: | # Challenge if the corresponding HTTP request has not provided # authorization, or error details if the corresponding HTTP request # has provided an invalid authorization token. # maximum: 1 # minimum: 0 # Version: -# description: > +# description: | # Version of the API used in the response. # type: string # maximum: 1 # minimum: 1 # 400: -# $ref: "../responses/SOL005_resp.yaml#/responses/400" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/400" # 401: -# $ref: "../responses/SOL005_resp.yaml#/responses/401" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/401" # 403: -# $ref: "../responses/SOL005_resp.yaml#/responses/403" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/403" # 404: -# $ref: "../responses/SOL005_resp.yaml#/responses/404" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/404" # 405: -# $ref: "../responses/SOL005_resp.yaml#/responses/405" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/405" # 406: -# $ref: "../responses/SOL005_resp.yaml#/responses/406" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/406" # 500: -# $ref: "../responses/SOL005_resp.yaml#/responses/500" +# $ref: "../responses/SOL005_resp.yaml#/components/responses/500" # 503: -# $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file +# $ref: "../responses/SOL005_resp.yaml#/components/responses/503" + +components: + parameters: + ContentTypeMergePatchJSON: + name: Content-Type + in: header + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + required: true + schema: + type: string + enum: + - application/merge-patch+json + + PmJobId: + name: pmJobId + in: path + description: | + Identifier of the PM job. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new PM job resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + + ReportId: + name: reportId + in: path + description: | + Identifier of the performance report. + required: true + style: simple + explode: false + schema: + type: string + + ThresholdId: + name: thresholdId + in: path + description: | + Identifier of the threshold. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new threshold resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + CreatePmJobRequest: + description: | + The VNF creation parameters. + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest" + required: true + + PmJobModifications: + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJobModifications" + required: true + + CreateThresholdRequest: + description: | + Request parameters to create a new "Individual threshold" resource. + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest" + required: true + + ThresholdModifications: + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/ThresholdModifications" + required: true + + responses: + + PMJobs.Post.201: + description: | + 201 CREATED + + Shall be returned when the "Individual PM job" has been created successfully. + The response body shall contain a representation of + the created PM job resource, as defined in clause 7.5.2.7. + The HTTP response shall include a "Location" HTTP + header that points to the created "Individual PM job" resource. + headers: + Content-Type: + description: | + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" + + PMJobs.Get.200: + description: | + 200 OK + + Shall be returned when information about zero or more PM jobs has been queried successfully. + The response body shall contain in an array the representations of + zero or more PM jobs, as defined in clause 7.5.2.7. + + If the "filter" URI parameter or one of the "all_fields", "fields", "include_fields", + "exclude_fields" or "exclude_default" URI parameters was supplied in the request and is + supported, the data in the response body shall have been transformed according to the + rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV SOL 013, respectively. + + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header + in this response shall follow the provisions in clause 5.4.2.3 of + ETSI GS NFV SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" + + IndividualPMJob.Get.200: + description: | + 200 OK + + Shall be returned when information about an individual + PM job has been queried successfully. + The response body shall contain a representation of + the "Individual PM job resource", as defined in clause 7.5.2.7. + headers: + Content-Type: + description: | + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob" + + IndividualPMJob.Patch.200: + description: | + 200 OK + + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "PmJobModifications". + headers: + WWW-Authenticate: + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJobModifications" + + IndividualPMJob.Delete.204: + description: | + 204 NO CONTENT + + Shall be returned when the PM job 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + IndividualPerformanceReport.Get.200: + description: | + 200 OK + + Shall be returned when information of an individual performance + report has been read successfully. + The response body shall contain a representation of the "Individual performance + report" resource, as defined in clause 7.5.2.10. + headers: + Content-Type: + description: | + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PerformanceReport" + + Thresholds.Post.201: + description: | + 201 CREATED + + Shall be returned when a threshold has been created successfully. + The response body shall contain a representation of + the created "Individual threshold" resource, as defined in clause 7.5.2.9. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the created + threshold resource. + headers: + Content-Type: + description: | + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold" + + Thresholds.Get.200: + description: | + 200 OK + + Shall be returned when information about zero or more thresholds was queried + successfully. + If the "filter" URI parameter was supplied in the request, the data in the + response body shall have been transformed according to the rules specified + in clause 5.2.2 of ETSI GS NFV-SOL 013. + The response body shall contain representations of zero or more thresholds, + as defined in clause 7.5.2.9. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header + in this response shall follow the provisions in clause 5.4.2.3 of + ETSI GS NFV SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold" + + IndividualThreshold.Get.200: + description: | + 200 OK + + Shall be returned when information about an individual threshold + has been queried successfully. + The response body shall contain a representation of + the threshold, as defined in clause 7.5.2.9. + headers: + Content-Type: + description: | + The MIME type of the body of the response.This header + field shall be present if the response has a non-empty message body. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold" + + IndividualThreshold.Patch.200: + description: | + 200 OK + + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "ThresholdModifications". + 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/ThresholdModifications" + + IndividualThreshold.Delete.204: + description: | + 204 NO CONTENT + + Shall be returned when the threshold 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. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml index 83ec79c822d4297086e515cb35ff7299703b9027..457626d7debb0307e82067063f7b28117336fd3f 100644 --- a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml @@ -420,6 +420,11 @@ definitions: This type represents modifications to a PM job. It shall comply with the provisions defined in Table 7.5.2.12-1. type: object + anyOf: + - required: + - callbackUri + - required: + - authentication properties: callbackUri: description: > @@ -430,7 +435,7 @@ definitions: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to - the rules of JSON Merge PATCH (see IETF RFC 7396). + the rules of JSON Merge Patch (see IETF RFC 7396). This attribute shall not be present in response bodies. At least one of the attributes defined in this type shall be present in request bodies. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" @@ -440,6 +445,11 @@ definitions: This type represents modifications to a threshold. It shall comply with the provisions defined in Table 7.5.2.11-1. type: object + anyOf: + - required: + - callbackUri + - required: + - authentication properties: callbackUri: description: > @@ -450,7 +460,7 @@ definitions: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to - the rules of JSON Merge PATCH (see IETF RFC 7396). + the rules of JSON Merge Patch (see IETF RFC 7396). This attribute shall not be present in response bodies. At least one of the attributes defined in this type shall be present in request bodies. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" @@ -510,7 +520,7 @@ definitions: description: > Group of performance metrics. A metric group is a pre-defined list of metrics, - known to the producer that it can decompose to + known to the API producer that it can decompose to individual metrics. Valid values are specified as "Measurement Group" values in clause 7.3 of ETSI GS NFV-IFA 027. At least one of the two attributes @@ -520,29 +530,35 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" collectionPeriod: description: > - Specifies the periodicity at which the producer + Specifies the periodicity at which the API producer will collect performance information. The unit shall be seconds. - At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance - data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be - equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods + At the end of each reportingPeriod, the API producer will inform + the API consumer about availability of the performance data collected + for each completed collection period during this reportingPeriod. + The reportingPeriod should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the collection periods within one reporting period are reported together. - In particular when choosing short collection and reporting periods, the number of PM jobs that can be - supported depends on the capability of the producing entity. + In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the capability + of the producing entity. type: integer minimum: 0 default: 0 reportingPeriod: description: > - Specifies the periodicity at which the producer - will report to the consumer. + Specifies the periodicity at which the API producer + will report to the API consumer. about performance information. The unit shall be seconds. - At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance - data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be - equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods + At the end of each reportingPeriod, the API producer will inform the + API consumer about availability of the performance data collected for + each completed collection period during this reportingPeriod. + The reportingPeriod should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the collection periods within one reporting period are reported together. - In particular when choosing short collection and reporting periods, the number of PM jobs that can be - supported depends on the capability of the producing entity. + In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the capability + of the producing entity. type: integer minimum: 0 default: 0 diff --git a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml index 469ba341964406a7c3d6647d68d0206f651c5159..1fb031efbb9d4644a5c71a7ca35702e89a416017 100644 --- a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -1,57 +1,42 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - NS Performance Management Notification interface" - description: > + title: SOL005 - NS Performance Management Notification interface + description: | SOL005 - NS Performance Management Notification interface + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf - -basePath: /callback/v2 - -schemes: - - http - - https + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf -consumes: - - application/json - -produces: - - application/json +servers: + - url: http://127.0.0.1/callback/v2 + - url: https://127.0.0.1/callback/v2 paths: ################################################################################## # Notification endpoint PerformanceInformationAvailableNotification # ################################################################################## - '/URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotificatio': + /URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotificatio: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about PM related events - description: > + description: | The POST method delivers a notification regarding a performance management event from the API producer to an API consumer. The API consumer shall have previously created an "Individual PM job resource" or "Individual threshold resource". @@ -59,144 +44,70 @@ paths: Tables 7.4.9.3.1-1 and 7.4.9.3.1-2 for URI query parameters, request and response data strctures, and response codes. parameters: - - name: PerformanceInformationAvailableNotification - description: > - Notification about performance information availability. - in: body - required: true - schema: - $ref: "definitions/SOL005NSPerformanceManagementNotification_def.yaml#/definitions/PerformanceInformationAvailableNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/PerformanceInformationAvailableNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification was delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PerformanceInformationAvailableNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during creation of the PM job or threshold resource. This method shall follow the provisions specified in the Tables 7.4.9.3.2-1 and 7.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned to indicate that the notification endpoint has been - tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/PerformanceInformationAvailableNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" ################################################################################## # Notification endpoint ThresholdCrossedNotification # ################################################################################## - '/URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification': + /URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification: 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept post: summary: Notify about PM related events - description: > + description: | The POST method delivers a notification regarding a performance management event from the API producer to an API consumer. The API consumer shall have previously created an "Individual PM job resource" or "Individual threshold resource". @@ -204,118 +115,167 @@ paths: Tables 7.4.9.3.1-1 and 7.4.9.3.1-2 for URI query parameters, request and response data strctures, and response codes. parameters: - - name: ThresholdCrossedNotification - description: > - Notification about threshold crossing. - in: body - required: true - schema: - $ref: "definitions/SOL005NSPerformanceManagementNotification_def.yaml#/definitions/ThresholdCrossedNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/ThresholdCrossedNotification' responses: 204: - description: > - 204 NO CONTENT - - Shall be returned when the notification was delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/ThresholdCrossedNotification.Post.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" get: summary: Test the notification endpoint - description: > + description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during creation of the PM job or threshold resource. This method shall follow the provisions specified in the Tables 7.4.9.3.2-1 and 7.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231. - in: header - required: true - type: string responses: 204: - description: > - 204 NO CONTENT - - Shall be returned to indicate that the notification endpoint has been - tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 + $ref: '#/components/responses/ThresholdCrossedNotification.Get.204' 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" + $ref: "../responses/SOL005_resp.yaml#/components/responses/400" 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" + $ref: "../responses/SOL005_resp.yaml#/components/responses/401" 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" + $ref: "../responses/SOL005_resp.yaml#/components/responses/403" 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" + $ref: "../responses/SOL005_resp.yaml#/components/responses/404" 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" + $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" + $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" + $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + $ref: "../responses/SOL005_resp.yaml#/components/responses/503" + +components: + requestBodies: + PerformanceInformationAvailableNotification: + description: | + Notification about performance information availability. + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagementNotification_def.yaml#/definitions/PerformanceInformationAvailableNotification" + required: true + + ThresholdCrossedNotification: + description: | + Notification about threshold crossing. + content: + application/json: + schema: + $ref: "definitions/SOL005NSPerformanceManagementNotification_def.yaml#/definitions/ThresholdCrossedNotification" + required: true + + responses: + PerformanceInformationAvailableNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification was delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + PerformanceInformationAvailableNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned to indicate that the notification endpoint has been + tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + ThresholdCrossedNotification.Post.204: + description: | + 204 NO CONTENT + + Shall be returned when the notification was delivered successfully. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + + ThresholdCrossedNotification.Get.204: + description: | + 204 NO CONTENT + + Shall be returned to indicate that the notification endpoint has been + tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml index 67c276eab5e23a8ba3b4624883736d3a336c80f7..bbd7dd6021ee0f7df56b883f392530eed47a6a27 100644 --- a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml @@ -14,6 +14,7 @@ definitions: - id - notificationType - timeStamp + - pmJobId - objectType - objectInstanceId - _links @@ -36,6 +37,10 @@ definitions: description: > Date and time of the generation of the notification. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + pmJobId: + description: > + Identifier of the PM job for which performance information is available. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" objectType: description: > Type of the measured object. diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 871aae853fb9919e5d47f515a72ca61b2376015b..4e3b4788218d6d4c36e61d7ff904e7d30ac6409c 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,1865 +1,1427 @@ -swagger: "2.0" +openapi: 3.0.2 info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL005 - VNF Package Management Interface - description: > + description: | SOL005 - VNF Package Management Interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been - approved by the ETSI NFV ISG. In case of discrepancies the published ETSI - Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it + refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification + takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - contact: - name: "NFV-SOL WG" + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf + +servers: + - url: http://127.0.0.1/vnfpkgm/v2 + - url: https://127.0.0.1/vnfpkgm/v2 -basePath: /vnfpkgm/v2 -schemes: - - https -consumes: - - application/json -produces: - - application/json paths: - ############################################################################### - # API Versions # - ############################################################################### - '/api_versions': - $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + /api_versions: + $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions - ############################################################################### - # VNF Packages # - ############################################################################### - '/vnf_packages': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.2 + /vnf_packages: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - post: - summary: Create a new individual VNF package resource. - description: > - The POST method creates a new individual VNF package resource. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" - description: > - IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2 - responses: - 201: - description: > - 201 Created - - Shall be returned when an "Individual VNF - package" resource has been created successfully. - The response body shall contain a representation of - the new individual VNF package resource, as - defined in clause 9.5.2.5. - The HTTP response shall include a "Location" - HTTP header that contains the resource URI of the - individual VNF package resource. - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message - body. - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - 504: - $ref: "../responses/SOL005_resp.yaml#/responses/504" + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Query VNF packages information. - description: > - The GET method queries the information of the VNF packages matching the filter. - This method shall follow the provisions specified in the - Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The GET method queries the information of the VNF packages matching the filter. This method shall follow the + provisions specified in the Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters, request and response + data structures, and response codes. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. - The NFVO shall support receiving this parameter as part of the URI query string. - The OSS/BSS may supply this parameter. - All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall - be supported by the NFVO in the filter expression. - - name: all_fields - in: query - required: false - type: string - description: > - Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. - The NFVO shall support this parameter. - - name: fields - in: query - required: false - type: string - description: > - Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. - The NFVO should support this parameter. - - name: exclude_fields - in: query - required: false - type: string - description: > - Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. - The NFVO should support this parameter. - - name: exclude_default - in: query - required: false - type: string - description: > - Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. - The NFVO shall support this parameter. - The following attributes shall be excluded from the 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 - - name: nextpage_opaque_marker - in: query - required: false - type: string - description: > - Marker to obtain the next page of a paged response. - Shall be supported by the NFVO if the NFVO supports alternative 2 (paging) according to - clause 5.4.2.1 of ETSI GS NFV SOL 013 for this resource. - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/VnfPackages.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about zero or more VNF packages has been queried successfully. - The response body shall contain in an array the VNF package info representations that match - the attribute filter, i.e. zero or more VNF package info representations as defined in clause 9.5.2.5. - If the "filter" URI parameter or one of the "all_fields", "fields", "exclude_fields" or - "exclude_default" URI parameters was supplied in the request and is supported, the data in the - response body shall have been transformed according to the rules specified in clauses 5.2.2 and - 5.3.2 of ETSI GS NFV SOL 013, respectively. - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV SOL 013 - for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in - clause 5.4.2.3 of ETSI GS NFV SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - type: array - items: - properties: - VnfPkgInfo: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + post: + summary: Create a new individual VNF package resource. + description: | + The POST method creates a new individual VNF package resource. + Upon successful creation of the "Individual VNF package" resource, the NFVO shall set the "onboardingState" + attribute in the "VnPkgInfo" structure to "CREATED", the "operationalState" attribute to "DISABLED", and the + "usageState" attribute to "NOT_IN_USE". + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + requestBody: + $ref: '#/components/requestBodies/VnfPackageCreationRequest' + responses: + "201": + $ref: '#/components/responses/VnfPackages.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual VNF Package # - ############################################################################### - '/vnf_packages/{vnfPkgId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.3 + /vnf_packages/{vnfPkgId}: parameters: - - name: vnfPkgId - description: > - Identifier of the VNF package. The identifier is allocated by the NFVO. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read information about an individual VNF package. - description: > + description: | The GET method reads the information of a VNF package. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualVnfPackage.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information of the VNF package has been read successfully. - The response body shall contain the VNF package info representation defined in clause 9.5.2.5. - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" - headers: - Content-Type: - type: string - description: > - The MIME type of the body of the response.This header - field shall be present if the response has a non-empty message body. - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - patch: - summary: Update information about an individual VNF package. - description: > - "The PATCH method updates the information of a VNF package." - - "This method shall follow the provisions specified in the - Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters, - request and response data structures, and response codes." - parameters: - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" - description: > - Parameters for VNF package information modifications. - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - responses: - 200: - description: > - 200 OK - - Shall be returned when the operation has been completed successfully. - The response body shall contain attribute modifications for an "Individual VNF package" resource. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - properties: - VnfPkgInfoModifications: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: summary: Delete an individual VNF package. - description: > + description: | The DELETE method deletes an individual VNF Package resource. responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/IndividualVnfPackage.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - The VNF package has been deleted successfully. - The response body shall be empty. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + patch: + summary: Update information about an individual VNF package. + description: | + The PATCH method updates the information of a VNF package. + This method shall follow the provisions specified in the Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query + parameters, request and response data structures, and response codes. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPackageModificationRequest' + responses: + "200": + $ref: '#/components/responses/IndividualVnfPackage.Patch' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # VNFD in an individual VNF package # - ############################################################################### - '/vnf_packages/{vnfPkgId}/vnfd': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4 + /vnf_packages/{vnfPkgId}/vnfd: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: vnfPkgId - description: > - Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or - VnfPackageChangeNotification. - in: path - type: string - required: true + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read VNFD of an on-boarded VNF package. - description: > + description: | The GET method reads the content of the VNFD within a VNF package. - - The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the files - representing the VNFD and information necessary to navigate the ZIP file and to identify the file that is the entry point - for parsing the VNFD and (if requested) further security information are included. This means that the structure of the - ZIP archive shall correspond to the directory structure used in the VNF package and that the archive shall contain the - following files from the package: - • TOSCA.meta (if available in the package). - • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta or available as a file with - the extension ".yml" or ".yaml" from the root of the archive). - Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file. - • The related security information, if the "include_signatures" URI parameter is provided, as follows: + The 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 necessary to navigate the ZIP file and to identify the file that is the + entry point for parsing the VNFD and (if requested) further security information are included. This means that + the structure of the ZIP archive shall correspond to the directory structure used in the VNF package and that + the archive shall contain the following files from the package: • TOSCA.meta (if available in the package). + The main TOSCA definitions YAML file (either as referenced from TOSCA.meta or available as a file with the extension + ".yml" or ".yaml" from the root of the archive). Every component of the VNFD referenced (recursively) from the main + TOSCA definitions YAML file. • The related security information, if the "include_signatures" URI parameter is provided, + as follows: - the manifest file; - the singleton certificate file in the root of the VNF package (if available in the package); - the signing certificates of the individual files included in the ZIP archive (if available in the package); - the signatures of the individual files (if available in the package). parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - application/zip - - name: include_signatures - in: query - required: false - type: string - description: > - If this parameter is provided, the NFVO shall include in the ZIP archive the - security information as specified above. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualVnfPackageVnfd.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the content of the VNFD has been read successfully. - The payload body shall contain a copy of the file representing the VNFD or a ZIP file that - contains the file or multiple files representing the VNFD, as specified above. - The "Content-Type" HTTP header shall be set according to the format of the returned file, - i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - ############################################################################### - # Access Configuration for external artifacts # - ############################################################################### - '/vnf_packages/{vnfPkgId}/ext_artifacts_access': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4a + /vnf_packages/{vnfPkgId}/ext_artifacts_access: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: vnfPkgId - description: > - Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response - to a POST request creating a new Individual VNF package resource. - in: path - required: true - type: string + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Get the content of external VNF package artifacts. - description: > + description: | The GET method reads the access configuration information that is used by the NFVO to get the content of external - VNF package artifacts. - This method shall follow the provisions specified in the Tables 9.4.4a.3.2-1 and 9.4.4a.3.2-2 for URI query parameters, - request and response data structures, and response codes. + VNF package artifacts. This method shall follow the provisions specified in the Tables 9.4.4a.3.2-1 and 9.4.4a.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualVnfPackageExtArtifacts.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the access configuration - information has been read successfully. - If no information has been provided previously, an - empty array shall be returned. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - properties: - ExternalArtifactsAccessConfig: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" put: summary: Download the content of external VNF package artifacts. - description: > - The PUT method provides the access configuration information for the NFVO to download the content of external VNF - package artifacts. - As precondition for invoking this method, the individual VNF package resource shall have been created, and the value - of "onboardingState" attribute shall equal to "CREATED" or "ERROR". - The resource representation in the payload body of the PUT request shall replace the current state of the resource. - This method shall follow the provisions specified in the Tables 9.4.4a.3.3-1 and 9.4.4a.3.3-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The PUT method provides the access configuration information for the NFVO to download the content of external + VNF package artifacts. As precondition for invoking this method, the individual VNF package resource shall have + been created, and the value of "onboardingState" attribute shall equal to "CREATED" or "ERROR". The resource + representation in the payload body of the PUT request shall replace the current state of the resource. This method + shall follow the provisions specified in the Tables 9.4.4a.3.3-1 and 9.4.4a.3.3-2 for URI query parameters, request + and response data structures, and response codes. parameters: - - name: body - in: body - description: > - The payload body contains the access configuration information - based on which the NFVO can obtain the external VNF package - artifact files. - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPackageExtArtifactsRequest' responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualVnfPackageExtArtifacts.Put.200' + "202": + $ref: '#/components/responses/IndividualVnfPackageExtArtifacts.Put.202' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the attribute - "onboardingState" = "CREATED" or when the - attribute "onboardingState" = "ERROR" and the - VNF package has not been uploaded - successfully previously, to indicate that the - access configuration information has been stored - successfully by the NFVO. - The response body shall contain a representation - of the state of the resource. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - properties: - ExternalArtifactsAccessConfig: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig" - 202: - $ref: "../responses/SOL005_resp.yaml#/responses/202" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - ############################################################################### - # Manifest in an individual VNF package # - ############################################################################### - '/vnf_packages/{vnfPkgId}/manifest': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4b + /vnf_packages/{vnfPkgId}/manifest: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: vnfPkgId - description: > - Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or - VnfPackageChangeNotification. - in: path - type: string - required: true + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: - description: > + description: | The GET method reads the content of the manifest within a VNF package. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - text/plain - - application/zip - - name: include_signatures - in: query - required: false - type: string - description: > - If this parameter is provided, the NFVO shall 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. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualVnfPackageManifest.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the content of the manifest has - been read successfully. - If the "include_signatures" URI query parameter was - absent in the request, or if the manifest file has all - security-related information embedded (i.e. there is no - separate certificate file), the payload body shall contain a - copy of the manifest file of the VNF package, and - the "Content-Type" HTTP header shall be set to - "text/plain". - If the "include_signatures" URI query parameter was - present in the related request and the manifest file does - not have all the security-related information embedded - (i.e. there is a separate certificate file), the "Content-Type" - HTTP header shall be set to "application/zip and the - payload body shall contain a ZIP archive which includes: - - a copy of the manifest file of the VNF package - - a copy of the related individual certificate file. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - ############################################################################### - # VNF Package Content # - ############################################################################### - '/vnf_packages/{vnfPkgId}/package_content': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.5 + /vnf_packages/{vnfPkgId}/package_content: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - - name: vnfPkgId - description: > - Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - in: path - required: true - type: string + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Fetch an on-boarded VNF package. - description: > + description: | The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the - NFVO. - The content of the package is provided as onboarded, i.e. depending on the security option used, the CSAR or the - CSAR wrapped in a ZIP archive together with an external signature is returned, as defined in clause 5.1 of ETSI - GS NFV-SOL 004 [5]. - NOTE: Information about the applicable security option can be obtained by evaluating the - "packageSecurityOption" attribute in the "VnfPkgInfo" structure. - This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters, - request and response data structures, and response codes. + NFVO. The content of the package is provided as onboarded, i.e. depending on the security option used, the CSAR + or the CSAR wrapped in a ZIP archive together with an external signature is returned, as defined in clause 5.1 + of ETSI GS NFV-SOL 004 [5]. NOTE: Information about the applicable security option can be obtained by evaluating + the "packageSecurityOption" attribute in the "VnfPkgInfo" structure. This method shall follow the provisions + specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters, request and response data structures, + and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - application/zip - - name: Range - in: header - required: false - type: string - description: > - The request may contain a "Range" HTTP header to obtain single - range of bytes from the 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. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/IndividualVnfPackageContent.Get' + "206": + $ref: ../responses/SOL005_resp.yaml#/components/responses/206 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - 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: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 206: - $ref: "../responses/SOL005_resp.yaml#/responses/206" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" put: summary: Upload a VNF package by providing the content of the VNF package. - description: > - The PUT method uploads the content of a VNF package. - This method shall follow the provisions specified in the - Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters, - request and response data structures, and response codes. - Upon start of the upload of the package, the NFVO shall set the "onboardingState" attribute in the "VnfPkgInfo" + description: | + The PUT method uploads the content of a VNF package. This method shall follow the provisions specified in the + Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters, request and response data structures, and response + codes. Upon start of the upload of the package, the NFVO shall set the "onboardingState" attribute in the "VnfPkgInfo" structure to "UPLOADING". Upon successful upload of the package, if the package references external artifacts, the - NFVO shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to - "PROCESSING" and shall process the package, which shall include checking package consistency. Upon successful - processing, the NFVO shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during uploading - the package, downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" - attribute to "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". - consumes: - - multipart/form-data + NFVO shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to "PROCESSING" + and shall process the package, which shall include checking package consistency. Upon successful processing, the NFVO + shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during uploading the package, downloading + the external artifacts or processing the package, the NFVO shall set the "onboardingState" attribute to "ERROR" and + shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - application/zip - - in: formData - name: file - required: false - type: file - description: > - The payload body contains a ZIP file that represents the VNF package. - 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. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPackageContentRequest' responses: - 202: - description: > - 202 Accepted - - Shall be returned when the VNF package has been - accepted for uploading, but the processing has not - been completed. It is expected to take some time - for processing. - The response body shall be empty. See note. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "202": + $ref: '#/components/responses/IndividualVnfPackageContent.Put' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # VNF package artifact # - ############################################################################### - '/vnf_packages/{vnfPkgId}/artifacts': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.5a + /vnf_packages/{vnfPkgId}/artifacts: parameters: - - name: vnfPkgId - description: > - Identifier of the on-boarded VNF package. - The identifier is allocated by the NFVO. - This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or - VnfPackageChangeNotification. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Fetch set of VNF package artifacts. - description: > + description: | The GET method shall return an archive that contains a set of artifacts according to the provisions for inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: - • Artifacts that are software images shall be excluded from the archive. - • Artifacts that are external to the VNF package shall be excluded from the archive. - • All additional artifacts included in the VNF package that are MANO artifacts shall be included in the archive, - unless the URI query parameter "exclude_all_mano_artifacts" has been provided, in which case such artifacts - shall be excluded. - • All additional artifacts included in the VNF package that are non-MANO artifacts shall be included in the - archive, unless: - - the URI query parameter "exclude_all_non_mano_artifacts" has been provided, in which case such - artifacts shall be excluded; - - the URI query parameter "select_non_mano_artifact_sets" has been provided and is supported by the - NFVO, in which case only those non-MANO artifacts shall be included whose non-MANO artifact set - identifier matches one of the values of the query parameter. - Package metadata such as manifest file or VNFD shall not be included in the archive. - This method shall follow the provisions specified in the Tables 9.4.5a.3.2-1 and 9.4.5a.3.2-2 for URI query parameters, - request and response data structures, and response codes. + * Artifacts that are software images shall be excluded from the archive. + * Artifacts that are external to the VNF package shall be excluded from the archive. + * All additional artifacts included in the VNF package that are MANO artifacts shall be included in the archive, + unless the URI query parameter "exclude_all_mano_artifacts" has been provided, in which case such artifacts + shall be excluded. + * All additional artifacts included in the VNF package that are non-MANO artifacts shall be included in the archive, + unless: + - the URI query parameter "exclude_all_non_mano_artifacts" has been provided, in which case such artifacts shall + be excluded; + - the URI query parameter "select_non_mano_artifact_sets" has been provided and is supported by the NFVO, + in which case only those non-MANO artifacts shall be included whose non-MANO artifact set identifier matches + one of the values of the query parameter. Package metadata such as manifest file or VNFD shall not be included + in the archive. This method shall follow the provisions specified in the Tables 9.4.5a.3.2-1 and 9.4.5a.3.2-2 + for URI query parameters, request and response data structures, and response codes. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - in: header - required: true - type: string - enum: - - application/zip - - name: Range - in: header - required: false - type: string - description: > - The request may contain a "Range" HTTP header to obtain single - range of bytes from the archive containing the artifacts. This can - be used to continue an aborted transmission. - If the "Range" header is present in the request and the NFVO - does not support responding to range requests with a 206 - response, it shall return a 200 OK response instead as defined - below. - - name: include_signatures - in: query - required: false - type: string - description: > - If this parameter is provided, the NFVO shall include in the ZIP - archive the individual signatures and, if provided, related - certificates for the included artifacts, in the format in which they - are provided in the VNF package. - If this parameter is not given, the NFVO shall only provide copies - of the artifact files. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. - - name: exclude_all_mano_artifacts - in: query - required: false - type: string - description: > - Flag (i.e. parameter without value) that instructs the NFVO to - exclude the set of additional MANO artifacts (i.e. those that are - not images) from the response payload body. - The NFVO shall support this parameter. The VNFM may supply - this parameter. - - name: exclude_all_non_mano_artifacts - in: query - required: false - type: string - description: > - Flag (i.e. parameter without value) that instructs the NFVO to - exclude the set of non-MANO artifacts from the response payload - body. - The NFVO shall support this parameter. The VNFM may supply - this parameter. - - name: select_non_mano_artifact_sets - in: query - required: false - type: string - description: > - Comma-separated list of non-MANO artifact set identifiers for - which the artifacts are to be included in the response body. - The NFVO should support this parameter. If the NFVO does not - support this parameter, it shall ignore it, i.e. provide a response as - if no parameter was provided. The VNFM may supply this - parameter. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_all_mano_artifacts + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_all_non_mano_artifacts + - $ref: ../components/SOL005_params.yaml#/components/parameters/select_non_mano_artifact_sets + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_external_artifacts responses: - 200: - description: > - 200 OK - Shall be returned when the whole content of the - archive containing the artifact files has been read - successfully. - The payload body shall be a ZIP archive containing - the requested set of artifacts selected according to the - provisions specified above in this clause, and, if the - flag "include_signatures" was provided in the related - request, the applicable signature files and, if available, - the separate certificate files from the VNF package. - The "Content-Type" HTTP header shall be set to - "application/zip". - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 206: - description: > - 206 Partial Content. + "200": + $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get' + "206": + $ref: ../responses/SOL005_resp.yaml#/components/responses/206 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - If the NFVO supports range requests, this response - shall be returned when a single consecutive byte - range from the content of the archive that would have - been returned in a "200 OK" response has been read - successfully according to the request. - The response body shall contain the requested part of - the archive. - The "Content-Type" HTTP header shall be set to - "application/zip". - The "Content-Range" HTTP header shall be provided - according to IETF RFC 7233 [10]. - headers: - Content-Range: - type: string - maximum: 1 - minimum: 1 - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - ############################################################################### - # Upload VNF package from URI task # - ############################################################################### - '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.6 + /vnf_packages/{vnfPkgId}/package_content/upload_from_uri: + parameters: + - $ref: '#/components/parameters/VnfPkgId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: - summary: Upload a VNF package by providing the address information of the VNF package. - description: > - The POST method provides the information for the NFVO to get the content of a VNF package. - This method shall follow the provisions specified in the Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters, - request and response data structures, and response codes. - Upon start of obtaining the package, the NFVO shall set the "onboardingState" attribute in the "VnfPkgInfo" structure - to "UPLOADING". Upon successfully obtaining the package, if the package references external artifacts, the NFVO - shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to "PROCESSING" and - shall process the package, which shall include checking package consistency. Upon successful processing, the NFVO - shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during obtaining the package, - downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" attribute to - "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". + summary: Upload a VNF package by providing the address information of the VNF + package. + description: | + The POST method provides the information for the NFVO to get the content of a VNF package. This method shall + follow the provisions specified in the Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters, request + and response data structures, and response codes. Upon start of obtaining the package, the NFVO shall set the + "onboardingState" attribute in the "VnfPkgInfo" structure to "UPLOADING". Upon successfully obtaining the + package, if the package references external artifacts, the NFVO shall obtain the external artifacts. Subsequently, + upon success, the NFVO shall set that attribute to "PROCESSING" and shall process the package, which shall include + checking package consistency. Upon successful processing, the NFVO shall set the "onboardingState" attribute to + "ONBOARDED", the "operationalState" attribute to "ENABLED", and the "usageState" attribute to "NOT_IN_USE". + In addition, the NFVO shall set the value of the attributes in the "VnfPkgInfo" that are copied from the VNFD + (refer to clause 9.5.2.5). If an error occurs during obtaining the package, downloading the external artifacts or processing + the package, the NFVO shall set the "onboardingState" attribute to "ERROR" and shall populate the "onboardingFailureDetails" + attribute in "VnfPkgInfo". parameters: - - name: Accept - description: > - 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 - - name: vnfPkgId - description: > - Identifier of the VNF package. The identifier is allocated by the NFVO. - in: path - required: true - type: string - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest" - description: > - The payload body contains the address information based on - which the NFVO can obtain the content of the VNF package. + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPackageUploadFromUriRequest' responses: - 202: - description: > - 202 Accepted - - The information about the VNF package has been received successfully, but the on-boarding - has not been completed. It is expected to take some time for processing. - The response body shall be empty. - headers: - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "202": + $ref: '#/components/responses/IndividualVnfPackageUploadFromUri.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual VNF package artifact # - ############################################################################### - '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.7 + /vnf_packages/{vnfPkgId}/artifacts/{artifactPath}: parameters: - - name: vnfPkgId - description: > - Identifier of the on-boarded VNF package. - The identifier is allocated by the NFVO. - This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or - VnfPackageChangeNotification. - in: path - type: string - required: true - - name: artifactPath - description: > - For an artifact contained as a file in the VNF package, this variable shall contain a sequence of - one or path segments representing the path of the artifact within the VNF package, relative to - the root of the package. See note 3. - EXAMPLE: foo/bar/m%40ster.sh - For an external artifact represented as a URI in the VNF package manifest, this variable shall - contain a sequence of one or more path segments as synthesized by the NFVO (see - clause 9.5.3.3), representing this artifact. - See note 2 and note 3 - in: path - type: string - required: true - - 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 + - $ref: '#/components/parameters/VnfPkgId' + - $ref: '#/components/parameters/ArtifactPath' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Fetch individual VNF package artifact. - description: > - The GET method fetches the content of an artifact within a VNF package. - This method shall follow the provisions specified in the - Tables 9.4.7.3.2-1 and 9.4.7.3.2-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The GET method fetches the content of an artifact within a VNF package. This method shall follow the provisions + specified in the Tables 9.4.7.3.2-1 and 9.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. - in: header - required: true - 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: include_signatures - in: query - required: false - type: string - description: > - If this parameter is provided, the NFVO shall return the artifact and related - security information (such as signature and optional certificate) in a ZIP archive. - If this parameter is not given, the NFVO shall provide only a copy of the artifact - file. - This URI query parameter is a flag, i.e. it shall have no value. - The NFVO shall support this parameter. + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures 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 [5], and the "Content-Type" - HTTP header shall be set according to the content - type of the artifact file. If the artifact is encrypted, - the header shall be set to the value - "application/cms" (IETF RFC 7193 [17]). If the - content type cannot be determined, the header shall - be set to the value "application/octet-stream". - If the "include_signatures" request URI parameter - was provided in the related request, the "ContentType" HTTP header shall be set to "application/zip" - and the payload body shall contain a ZIP archive - which includes: - - a copy of the artifact file from the VNF - package, as defined by ETSI - GS NFV-SOL 004 [5]; - - the related security information (individual - signature file and optional related - individual certificate file). - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 206: - description: > - Partial Content. - - If the NFVO supports range requests and the - "include_signatures" request URI parameter was - not present in the related request, this response - shall be returned when a single consecutive byte - range from the content of the artifact file has been - read successfully according to the request. - The response body shall contain the requested part - of the artifact file from the VNF package, as defined - by ETSI GS NFV-SOL 004 [5]. - The "Content-Type" HTTP header shall be set - according to the content type of the artifact file. If - the content type cannot be determined, the header - shall be set to the value "application/octet-stream". - The "Content-Range" HTTP header shall be - provided according to IETF RFC 7233 [10]. - headers: - Content-Range: - type: string - maximum: 1 - minimum: 1 - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 409: - $ref: "../responses/SOL005_resp.yaml#/responses/409" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + "200": + $ref: '#/components/responses/IndividualVnfPackageArtifact.Get' + "206": + $ref: ../responses/SOL005_resp.yaml#/components/responses/206 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Subscriptions # - ############################################################################### - '/subscriptions': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.8 + /subscriptions: parameters: - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - post: - summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages. - description: > - The POST method creates a new subscription. - This method shall follow the provisions specified in the Tables 9.4.8.3.1-1 and 9.4.8.3.1-2 for URI - query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual subscription" resource shall exist - as defined in clause 9.4.9. This method shall not trigger any notification. - Creation of two subscription resources with the same callbackURI and the same filter can result in - performance degradation and will provide duplicates of notifications to the OSS, and might make sense - only in very rare use cases. Consequently, the NFVO may either allow creating a subscription resource - if another subscription resource with the same filter and callbackUri already exists (in which case it - shall return the "201 Created" response code), or may decide to not create a duplicate subscription resource - (in which case it shall return a "303 See Other" response code referencing the existing subscription resource - with the same filter and callbackUri). - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Content-Type - description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: body - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest" - description: > - Details of the subscription to be created. - responses: - 201: - description: > - 201 Created - - Shall be returned when the subscription has been - created successfully. - The response body shall contain a representation - of the created "Individual subscription" resource. - The HTTP response shall include a "Location" - HTTP header that points to the created - subscription resource. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" - 303: - $ref: "../responses/SOL005_resp.yaml#/responses/303" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 422: - $ref: "../responses/SOL005_resp.yaml#/responses/422" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Query multiple subscriptions. - description: > - The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used - e.g. for resynchronization after error situations. - This method shall follow the provisions specified in the Tables 9.4.8.3.2-1 and 9.4.8.3.2-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. This method shall follow the provisions + specified in the Tables 9.4.8.3.2-1 and 9.4.8.3.2-2 for URI query parameters, request and response data + structures, and response codes. parameters: - - name: filter - in: query - required: false - type: string - description: > - Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. - The NFVO shall support receiving this filtering parameter as part of the URI query string. - The OSS/BSS may supply this filtering parameter. - All attribute names that appear in the PkgmSubscription and in data types referenced from it - shall be supported by the NFVO in the filtering expression - - name: nextpage_opaque_marker - in: query - required: false - type: string - description: > - Marker to obtain the next page of a paged response. Shall be supported by the NFVO if the NFVO - supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/VnfPkgSubscriptions.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when the list of subscriptions has been queried successfully. - The response body shall contain in an array the representations of all active subscriptions of the - functional block that invokes the method, i.e. zero or more representations of VNF package management - subscriptions, as defined in clause 9.5.2.7. - If the "filter" URI parameter was supplied in the request, the data in the response body shall have been - transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. - If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV SOL 013 for - this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause - 5.4.2.3 of ETSI GS NFV SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - type: array - items: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + post: + summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages. + description: | + The POST method creates a new subscription. This method shall follow the provisions specified in the Tables + 9.4.8.3.1-1 and 9.4.8.3.1-2 for URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual subscription" resource shall exist as + defined in clause 9.4.9. This method shall not trigger any notification. Creation of two subscription resources + with the same callbackURI and the same filter can result in performance degradation and will provide duplicates + of notifications to the OSS, and might make sense only in very rare use cases. Consequently, the NFVO may either + allow creating a subscription resource if another subscription resource with the same filter and callbackUri + already exists (in which case it shall return the "201 Created" response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing the + existing subscription resource with the same filter and callbackUri). + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPkgSubscriptionRequest' + responses: + "201": + $ref: '#/components/responses/VnfPkgSubscriptions.Post' + "303": + $ref: ../responses/SOL005_resp.yaml#/components/responses/303 + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - ############################################################################### - # Individual subscription # - ############################################################################### - '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.9 + /subscriptions/{subscriptionId}: parameters: - - name: subscriptionId - description: > - Identifier of this subscription. - This identifier can be retrieved from the resource referenced by - the "Location" HTTP header in the response to a POST request - creating a new subscription resource. It can also be retrieved from - the "id" attribute in the payload body of that response. - in: path - type: string - required: true - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235. - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string + - $ref: '#/components/parameters/SubscriptionId' + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: summary: Read an individual subscription resource. - description: > - Query Subscription Information - The GET method reads an individual subscription. + description: | + Query Subscription Information The GET method reads an individual subscription. parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 200: - description: > - 200 OK + "200": + $ref: '#/components/responses/VnfPkgSubscription.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 - Shall be returned when information about an - individual subscription has been read successfully. - The response body shall contain a representation of - the "Individual subscription" resource. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: summary: Terminate a subscription. - description: > - The DELETE method terminates an individual subscription. - This method shall follow the provisions specified in the Tables 9.4.9.3.5-1 and 9.4.9.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. + description: | + The DELETE method terminates an individual subscription. This method shall follow the provisions specified in the + Tables 9.4.9.3.5-1 and 9.4.9.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. responses: - 204: - description: > - No Content + "204": + $ref: '#/components/responses/VnfPkgSubscription.Delete' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + +components: + parameters: + VnfPkgId: + name: vnfPkgId + in: path + description: | + Identifier of the VNF package. The identifier is allocated by the NFVO. + required: true + style: simple + explode: false + schema: + type: string + + ArtifactPath: + name: artifactPath + in: path + description: | + For 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. + See note 3. EXAMPLE: foo/bar/m%40ster.sh For an external artifact represented as a URI in the VNF package manifest, + this variable shall contain a sequence of one or more path segments as synthesized by the NFVO (see clause 9.5.3.3), + representing this artifact. See note 2 and note 3 + required: true + style: simple + explode: false + schema: + type: string - Shall be returned when information about an - individual subscription has been read successfully. - The response body shall contain a representation of - the "Individual subscription" resource. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 416: - $ref: "../responses/SOL005_resp.yaml#/responses/416" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + SubscriptionId: + name: subscriptionId + in: path + description: | + Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" + HTTP header in the response to a POST request creating a new "Individual subscription" resource. It can also be retrieved + from the "id" attribute in the payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + VnfPackageCreationRequest: + description: | + IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2 + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest + required: true + + VnfPackageModificationRequest: + description: | + Parameters for VNF package information modifications. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications + required: true + + VnfPackageExtArtifactsRequest: + description: | + The payload body contains the access configuration information based on which the NFVO can obtain the + external VNF package artifact files. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig + required: true + + VnfPackageContentRequest: + content: + application/binary: + schema: + properties: + file: + type: string + description: | + The payload body contains a ZIP file that represents the VNF package. 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. + format: binary + required: true + + VnfPackageUploadFromUriRequest: + description: | + The payload body contains the address information based on which the NFVO can obtain the content of the VNF package. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest + required: true + + VnfPkgSubscriptionRequest: + description: | + Details of the subscription to be created. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest + required: true + + responses: + VnfPackages.Get: + description: | + 200 OK + Shall be returned when information about zero or more VNF packages has been queried successfully. + The response body shall contain in an array the VNF package info representations that match the attribute + filter, i.e. zero or more VNF package info representations as defined in clause 9.5.2.5. + If the "filter" URI parameter or one of the "all_fields", "fields", "exclude_fields" or "exclude_default" + URI parameters was supplied in the request and is supported, the data in the response body shall have been + transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV SOL 013, respectively. + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo + + VnfPackages.Post: + description: | + 201 Created + Shall be returned when an "Individual VNF package" resource has been created successfully. The response body + shall contain a representation of the new individual VNF package resource, as defined in clause 9.5.2.5. + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the individual + VNF package resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo + + IndividualVnfPackage.Get: + description: | + 200 OK + Shall be returned when information of the VNF package has been read successfully. The response body shall + contain the VNF package info representation defined in clause 9.5.2.5. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response.This header field shall be present if the response has a + non-empty message body. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo + + IndividualVnfPackage.Delete: + description: | + 204 No Content + The VNF package has been deleted successfully. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackage.Patch: + description: | + 200 OK + Shall be returned when the operation has been completed successfully. The response body shall contain + attribute modifications for an "Individual VNF package" resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications + + IndividualVnfPackageVnfd.Get: + description: | + 200 OK + Shall be returned when the content of the VNFD has been read successfully. The payload body shall contain a + copy of the file representing the VNFD or a ZIP file that contains the file or multiple files representing + the VNFD, as specified above. The "Content-Type" HTTP header shall be set according to the format of the + returned file, i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackageExtArtifacts.Get: + description: | + 200 OK + Shall be returned when the access configuration information has been read successfully. + If no information has been provided previously, an empty array shall be returned. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig + + IndividualVnfPackageExtArtifacts.Put.200: + description: | + 200 OK + Shall be returned when the attribute "onboardingState" = "CREATED" or when the attribute "onboardingState" = "ERROR" + and the VNF package has not been uploaded successfully previously, to indicate that the access configuration information + has been stored successfully by the NFVO. The response body shall contain a representation of the state of the resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/ExternalArtifactsAccessConfig + + IndividualVnfPackageExtArtifacts.Put.202: + description: | + 202 ACCEPTED + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created NS instance + style: simple + explode: false + schema: + type: string + format: url + content: {} + + IndividualVnfPackageManifest.Get: + description: | + 200 OK + Shall be returned when the content of the manifest has been read successfully. If the "include_signatures" URI + query parameter was absent in the request, or if the manifest file has all security-related information embedded + (i.e. there is no separate certificate file), the payload body shall contain a copy of the manifest file of the + VNF package, and the "Content-Type" HTTP header shall be set to "text/plain". If the "include_signatures" URI + query parameter was present in the related request and the manifest file does not have all the security-related + information embedded (i.e. there is a separate certificate file), the "Content-Type" HTTP header shall be set to + "application/zip and the payload body shall contain a ZIP archive which includes: - a copy of the manifest file + of the VNF package - a copy of the related individual certificate file. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackageContent.Get: + 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: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackageContent.Put: + description: | + 202 ACCEPTED + Shall be returned when the VNF package has been accepted for uploading, but the processing has not been completed. + It is expected to take some time for processing. The response body shall be empty. See note. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackageArtifacts.Get: + 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: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackageUploadFromUri.Post: + description: | + 202 Accepted + The information about the VNF package has been received successfully, but the on-boarding has not been completed. + It is expected to take some time for processing. The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + content: {} + + IndividualVnfPackageArtifact.Get: + 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 [5], and the + "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the artifact + is encrypted, the header shall be set to the value "application/cms" (IETF RFC 7193 [17]). If the content + type cannot be determined, the header shall be set to the value "application/octet-stream". + If the "include_signatures" request URI parameter was provided in the related request, the "ContentType" + HTTP header shall be set to "application/zip" and the payload body shall contain a ZIP archive which includes: + - a copy of the artifact file from the VNF package, as defined by ETSI GS NFV-SOL 004 [5]; + - the related security information (individual signature file and optional related individual certificate file). + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: {} + + VnfPkgSubscriptions.Get: + 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 VNF package management subscriptions, as defined in clause 9.5.2.7. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFVO supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV SOL 013 for this resource, inclusion of the + Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV SOL 013. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription + + VnfPkgSubscriptions.Post: + description: | + 201 Created + Shall be returned when the subscription has been created successfully. The response body shall contain a + representation of the created "Individual subscription" resource. The HTTP response shall include a "Location" + HTTP header that points to the created resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription + + VnfPkgSubscription.Get: + description: | + 200 OK + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription + + VnfPkgSubscription.Delete: + description: | + No Content + Shall be returned when information about an individual subscription has been read successfully. The response + body shall contain a representation of the "Individual subscription" resource. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 22cdea768342a5c9ddb5cc8da6be7c064d7f7ba8..1e72448351f6708cb48a47a75d57fc1a08deaf7b 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -59,9 +59,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" checksum: description: > - Checksum of the on-boarded VNF - package. It shall be present after the VNF - package content has been on-boarded and absent otherwise. + Checksum of the on-boarded VNF package. + Permitted hash algorithms are defined in ETSI GS NFV-SOL 004. + It shall be present after the VNF package content has been on-boarded and absent otherwise. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" packageSecurityOption: description: > @@ -150,7 +150,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" vnfd: description: > - Link to the VNFD resource. + Link to the "VNFD in an individual VNF package" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" packageContent: description: > @@ -159,7 +159,7 @@ definitions: VnfPackageArtifactInfo: description: > - This type represents an artifact other than a software image which is contained in a VNF package. + This type represents an artifact other than a software image which is contained in or external to a VNF package. It shall comply with provisions defined in Table 9.5.3.3-1. required: - isEncrypted @@ -175,7 +175,7 @@ definitions: attribute shall start with the name of the first segment in the path in the package, i.e. it shall not be prefixed by path separator characters such as "." and "/". - EXAMPLE: foo/bar/m@ster + EXAMPLE: foo/bar/m@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 @@ -196,7 +196,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" checksum: description: > - Checksum of the artifact file. + Checksum of the artifact file. Permitted hash algorithms are defined in ETSI GS NFV-SOL 004. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" artifactClassification: description: > @@ -244,8 +244,8 @@ definitions: vnfPackage: description: > Link to the resource representing the VNF package to - which the notified change applies, i.e. the individual on boarded - VNF package resource that represents the VNF package. + which the notified change applies, i.e. the "Individual + VNF package" resource that represents the VNF package. $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink" subscription: description: > @@ -254,7 +254,7 @@ definitions: VnfPackageSoftwareImageInfo: description: > - This type represents an artifact contained in a VNF package which represents a software image. + This type represents an artifact contained in or external to a VNF package which represents a software image. required: - id - name @@ -290,7 +290,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" checksum: description: > - Checksum of the software image file. + Checksum of the software image file. Permitted hash algorithms are defined in ETSI GS NFV-SOL 004. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" isEncrypted: description: > @@ -371,10 +371,27 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" imagePath: description: > - Path in the VNF package, which identifies the image - artifact and also allows to access a copy of the image - artifact. + Path, which identifies the image artifact and also allows to access a copy of the image artifact. + For a software image contained as a file in the VNF package, this attribute shall be present, and the value of + this attribute shall start with the name of the first segment in the path in the package, i.e., it shall not + be prefixed by path separator characters such as "." and "/". + + EXAMPLE: foo/bar/m%40ster.vhd + + For an external software image represented as a URI in the VNF descriptor, this attribute shall be present if + the image artifact has been downloaded by the NFVO and shall be absent otherwise. If present, it shall contain + the artifactPath under which the image artifact can be obtained using the "Individual artifact in a VNF package" + resource defined in clause 9.4.7. It is the responsibility of the NFVO to synthesize this path in a manner that + avoids any collision of the synthesized artifact path with the paths and names of image artifacts included in + the package. type: string + imageUri: + description: > + URI of the image artifact as defined in the VNF package manifest. Shall be present if the image artifact is + external to the VNF package and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.vhd + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" NsdOperationalStateType: type: "string" @@ -414,16 +431,17 @@ definitions: - PROCESSING - ONBOARDED - ERROR + PackageUsageStateType: - type: "string" + type: string description: > "The enumeration PackageUsageStateType shall comply with the provisions. Acceptable values are: - -IN_USE - VNF instances instantiated from this VNF package exist. - -NOT_IN_USE - No existing VNF instance is instantiated from this VNF package" + - IN_USE: "Individual VNF instance" resources created from this VNF package exist. + - NOT_IN_USE: No "individual VNF instance" resource created from this VNF package exists. enum: - - "IN_USE" - - "NOT_IN_USE" + - IN_USE + - NOT_IN_USE CreateVnfPkgInfoRequest: type: "object" @@ -432,11 +450,17 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" description: > IndividualVNF package resource creation parameters, as defined - in clause 9.5.2.2. + in clause 9.5.2.2. + VnfPkgInfoModifications: description: > This type represents modifications to the information of a VNF package. It shall comply with the provisions defined in Table 9.5.2.3-1. + anyOf: + - required: + - operationalState + - required: + - userDefinedData properties: operationalState: description: > @@ -533,7 +557,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource + Identifier of this "Individual subscription" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" filter: description: > @@ -613,12 +637,19 @@ definitions: type: object required: - vnfProvider + oneOf: + - required: + - vnfProductsFromProviders + - required: + - vnfdId + - required: + - vnfPkgId properties: vnfProvider: description: > Name of the VNFprovider to match. type: string - vnfProducts: + vnfProductsFromProviders: description: > If present, match VNF packages that contain VNF products with certain product names, from @@ -727,7 +758,7 @@ definitions: properties: artifact: description: > - Access configuration information for an external artefact. + Access configuration information for an external artifact. type: object required: - artifactUri diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 18364dc7b8cb7fc976451cd2ac8ad52ea157027e..84c6d7cbbf49ec0c51269448be8f09451fd0f649 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,285 +1,249 @@ -swagger: "2.0" +openapi: 3.0.2 + info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: "SOL005 - VNF Package Management Notification interface" - description: > + title: SOL005 - VNF Package Management Notification interface + description: | SOL005 - VNF Package Management Notification interface - IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to. In case of - discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification + it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: - name: "ETSI Forge copyright notice" + name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf -basePath: /callback/v1 -schemes: - - http - - https -consumes: - - application/json -produces: - - application/json + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf + +servers: + - url: http://127.0.0.1/callback/v1 + - url: https://127.0.0.1/callback/v1 + + paths: - ################################################################################## - # Notification endpoint NS Performance Management # - ################################################################################## '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageOnboardingNotification': - post: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + get: summary: Notify about VNF package onboarding or change - description: > + description: | 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: VnfPackageOnboardingNotification - description: > - A notification about on-boarding of a VNF package. - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageOnboardingNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/VnfPackageOnboardingNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - Shall be returned when the notification has been delivered successfully. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" + post: + summary: Notify about VNF package onboarding or change + description: | + 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: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPackageOnboardingNotificationRequest' + responses: + "204": + $ref: '#/components/responses/VnfPackageOnboardingNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization get: - summary: Test the notification endpoint. - description: > - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. - during subscription. + summary: Test the notification endpoint + description: | + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. parameters: - - name: Accept - description: > - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/VnfPackageChangeNotification.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - Shall be returned to indicate that the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 404: - $ref: "../responses/SOL005_resp.yaml#/responses/404" - 405: - $ref: "../responses/SOL005_resp.yaml#/responses/405" - 406: - $ref: "../responses/SOL005_resp.yaml#/responses/406" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" - - '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification': post: summary: Notify about VNF package onboarding or change - description: > - The POST method delivers a notification from the server to the client. - This method shall follow the provisions specified in the - Tables 9.4.10.3.1-1 and 9.4.10.3.1-2 for URI query parameters, - request and response data structures, and response codes. + description: | + The POST method delivers a notification from the server to the client. This method shall follow the provisions + specified in the Tables 9.4.10.3.1-1 and 9.4.10.3.1-2 for URI query parameters, request and response data + structures, and response codes. parameters: - - name: VnfPackageChangeNotification - description: > - A notification about changes of status in a VNF package. - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageChangeNotification" - - 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 + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfPackageChangeNotificationRequest' responses: - 204: - description: > - 204 No Content + "204": + $ref: '#/components/responses/VnfPackageChangeNotification.Post' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 - Shall be returned to indicate that the notification endpoint has been tested successfully. - The response body shall be empty. - headers: - WWW-Authenticate: - type: string - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP request - has provided an invalid authorization token. - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" +components: + requestBodies: + VnfPackageOnboardingNotificationRequest: + description: | + A notification about on-boarding of a VNF package. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageOnboardingNotification + required: true - get: - summary: Test the notification endpoint - description: > - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. - during subscription. - parameters: - - name: Accept - description: > - Content-Types that are acceptable for the response. - Reference: IETF RFC 7231 - in: header - required: true - type: string - - name: Authorization - description: > - The authorization token for the request. - Reference: IETF RFC 7235 - in: header - required: false - type: string - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: true - type: string - responses: - 204: - description: > - 204 No Content + VnfPackageChangeNotificationRequest: + description: | + A notification about changes of status in a VNF package. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageChangeNotification + required: true + + responses: + VnfPackageOnboardingNotification.Get: + description: | + 204 No Content + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} - The notification endpoint was tested successfully. - The response body shall be empty. - 400: - $ref: "../responses/SOL005_resp.yaml#/responses/400" - 401: - $ref: "../responses/SOL005_resp.yaml#/responses/401" - 403: - $ref: "../responses/SOL005_resp.yaml#/responses/403" - 500: - $ref: "../responses/SOL005_resp.yaml#/responses/500" - 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + VnfPackageOnboardingNotification.Post: + description: | + 204 No Content + Shall be returned when the notification has been delivered successfully. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + VnfPackageChangeNotification.Get: + description: | + 204 No Content + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} + + VnfPackageChangeNotification.Post: + description: | + 204 No Content + Shall be returned when the notification has been delivered successfully. + headers: + Version: + description: | + Version of the API used in the response. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + content: {} \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml index 11c6f48a752fdf132a862ec2b50cea64fb5b9222..373a045ac1c6ccaa6d4618906195876a0affa07f 100644 --- a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml +++ b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml @@ -75,7 +75,7 @@ definitions: mandatory. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF package, as follows. • The "operationalState" attribute of a VNF package has changed, and the "onboardingState" attribute of the - package has the value "ONBOARDED". + package has the value "ONBOARDED" (i.e. the package has been onboarded previously). • The on-boarded VNF package has been deleted, and the "onboardingState" attribute of the deleted package had the value "ONBOARDED". type: object diff --git a/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml new file mode 100644 index 0000000000000000000000000000000000000000..449c0652367485641e9ba6a05b583f14c9a0a7f3 --- /dev/null +++ b/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -0,0 +1,1385 @@ +openapi: 3.0.2 + +info: + title: SOL005 - VNF Snapshot Package Management interface + description: | + SOL005 - VNF Snapshot Package Management interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. + In case of discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues + contact: + name: NFV-SOL WG + license: + name: ETSI Forge copyright notice + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + +externalDocs: + description: ETSI GS NFV-SOL 005 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf + +servers: + - url: http://127.0.0.1/vnfsnapshotpkgm/v1 + - url: https://127.0.0.1/vnfsnapshotpkgm/v1 + +paths: + ############################################################################### + # API Versions # + ############################################################################### + /api_versions: + $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions' + + /vnf_snapshot_packages: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + post: + description: | + The POST method creates a new "Individual VNF snapshot package" resource. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/CreateVnfSnapshotPkgInfoRequest' + responses: + 201: + $ref: '#/components/responses/VnfSnapshotPackages.Post.200' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + get: + description: | + The GET method queries the information of the VNF packages matching the filter. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/filter + - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields + - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default + - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker + responses: + 200: + $ref: '#/components/responses/VnfSnapshotPackages.Get.200' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + + get: + description: | + The GET method reads the information of an individual VNF snapshot package. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + 200: + $ref: '#/components/responses/IndividualVNFSnapshotPackage.Get.200' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + patch: + description: | + The PATCH method updates the information of a VNF snapshot package. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + requestBody: + $ref: '#/components/requestBodies/VnfSnapshotPkgInfoModifications' + responses: + 200: + $ref: '#/components/responses/IndividualVNFSnapshotPackage.Patch.200' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/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 state of the VNF snapshot package + # resource is in a state other than CREATED, ERROR_EXTRACTING or AVAILABLE. + + # The response body shall contain a ProblemDetails structure, in which the "detail" + # attribute shall convey more information about the error. + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + delete: + description: | + The DELETE method deletes an "Individual VNF snapshot package" resource. + responses: + 204: + $ref: '#/components/responses/IndividualVNFSnapshotPackage.Delete.204' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/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 operational state of the + # VNF snapshot package resource is other than CREATED, ERROR or AVAILABLE. + + # The response body shall contain a ProblemDetails structure, in which + # the "detail" attribute shall convey more information about the error. + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + get: + description: | + The GET method fetches the content of a VNF snapshot package. + + The content of the package is provided as onboarded to the NFVO, + or as built by the NFVO. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + responses: + 200: + $ref: '#/components/responses/VnfSnapshotPackageContent.Get.200' + 206: + $ref: '#/components/responses/VnfSnapshotPackageContent.Get.206' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + put: + description: | + The PUT method uploads the content of a VNF package. + + The payload body contains a ZIP file that represents the VNF snapshot package. + + The "Content-Type" HTTP header shall be set according to the type of the file, i.e. + to "application/zip" for a VNF snapshot package. The VNF snapshot package format + is defined in ETSI GS NFV-SOL 010. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + responses: + 202: + $ref: '#/components/responses/VnfSnapshotPackageContent.Put.202' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content/upload_from_uri: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + post: + description: | + The POST method provides the information for the NFVO to get the content of + a VNF snapshot package. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/UploadVnfSnapshotPkgFromUriRequest' + responses: + 202: + $ref: '#/components/responses/UploadFromUri.Post.202' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content/build: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + post: + description: | + The POST method provides the information for the NFVO to start building + the content of a VNF snapshot package. + + If the request to build the content of a VNF snapshot package is accepted, the NFVO + shall allocate a globally unique identifier to the VNF snapshot package (i.e., + "vnfSnapshotPkgUniqueId"). To proceed with the packaging process, the NFVO shall + collect the constituent information and artifacts as indicated by the input information + in the request: + - "vnfSnapshotInfoId": references the VNF snapshot to be packaged. + - one or more "vnfcSnapshotInfoId" referencing specific VNFC snapshot constituents in + the VNF snapshot. + + Both identifiers are assumed to be known by the NFVO (as it holds the information of + available VNF snapshot of VNF that are part of the NS instance) and can also be retrieved + by the NFVO from the VNFM from the "id" attribute of the applicable "VnfSnapshot" in the + body of the response to a GET request querying the "Individual VNF snapshot" or the + "VNF snapshots" resource of the VNF LCM interface as specified in clause 5.4 of + ETSI GS NFV-SOL 003. + + The API consumer may indicate whether the VNF snapshotted resources on the NFVI shall + be included into the VNF snapshot package file or be left on the NFVI as external image + artifacts to the VNF snapshot package file. In case of building the VNF snapshot package + with snapshotted resources as external image artifacts, the NFVO shall set the value of + the "imageUri" and "imagePath" as specified in clause 11.5.3.2. + + The NFVO shall determine whether there is any conflict for building the content of the + VNF snapshot package, and in particular, determine if the VNF snapshot is complete by + checking the "createdAt" information of the VNF snapshot resource. + + In addition, the NFVO shall update the "state" attribute of the "VnfSnapshotPkgInfo" + during the build process as specified in clause 11.6. + + The NFVO shall build the VNF snapshot Package. + + NOTE: The format and provisions for building a VNF snapshot package are specified in + ETSI GS NFV-SOL 010. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/BuildVnfSnapshotPkgRequest' + responses: + 202: + $ref: '#/components/responses/BuildVnfSnapshotPkg.Post.202' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content/extract: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + post: + description: | + The POST method provides the information for the NFVO to start extracting the content of + a VNF snapshot package. + + To proceed with the extraction process, the NFVO shall have been provided either with: + - a valid "Individual VNF snapshot" identifier, indicated by the input parameter "vnfSnapshotInfoId". + This identifier corresponds to a known "Individual VNF snapshot" resource of the VNF LCM interface + that the NFVO can obtain from the VNFM., or + - a valid "Individual VNF instance" identifier, indicated by the input parameter "vnfInstanceId". + This identifier corresponds to a known "Individual VNF instance" resource of the VNF LCM interface + that the NFVO can obtain from the VNFM. + + The NFVO shall determine whether there is any conflict for extracting the content of the VNF snapshot + package, and in particular: + - determine if the "Individual VNF snapshot" resource can be populated with the extracted content of + the VNF snapshot package, i.e., the "vnfSnapshot" attribute of the "Individual VNF snapshot" resource + is empty. + - determine if the content of the VNF snapshot package is available, and thus the "state" attribute of + the "VNF snapshot package" resource has a value equal to "AVAILABLE". + + In addition, the NFVO shall update the "state" attribute of the "VnfSnapshotPkgInfo" during the extraction + process and change it to "EXTRACTING". + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/ExtractVnfSnapshotPkgRequest' + responses: + 202: + $ref: '#/components/responses/ExtractVnfSnapshotPkg.Post.202' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content/cancel: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + post: + description: | + The POST method provides the information for the NFVO to cancel the ongoing operation related to + the content of a VNF snapshot package. + + In case of success of processing the asynchronous request: + 1) If the request has been processed in "UPLOADING", "BUILDING" or "PROCESSING" state, the "state" + attribute in the representation of the "Individual VNF snapshot package" resource shall be changed + to"ERROR". + 2) If the request has been processed in "EXTRACTING" state, the "state" attribute in the representation + of the "Individual VNF snapshot package" resource shall be changed to "ERROR_EXTRACTING". + + In both cases, the NFVO shall update the "isCancelPending" attribute in the representation of the + "Individual VNF snapshot package" resource according to the provisions in clause 11.5.2.3 to reflect + the new status. + + Due to race conditions, the processing of the actual operation that is to be cancelled may eventually + still succeed, in which case the "state" attribute in the representation of the "Individual VNF snapshot + package" resource shall represent the result of that operation, rather than the result of the cancellation. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/CancelVnfSnapshotPkgOperationRequest' + responses: + 202: + $ref: '#/components/responses/CancelVnfSnapshotPkg.Post.202' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/ext_artifacts_access: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + get: + description: | + The GET method reads the access configuration information that is used by the NFVO to get + the content of external VNF snapshot package artifacts. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + responses: + 200: + $ref: '#/components/responses/ExternalArtifactsAccess.Get.200' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + put: + description: | + The PUT method provides the access configuration information for the NFVO to download + the content of external VNF package artifacts. + + As precondition for invoking this method, the "Individual VNF snapshot package" resource + shall have been created, and the value of "state" attribute in the representation of the + "Individual VNF snapshot package" resource shall equal to "CREATED" or "ERROR". + + The resource representation in the payload body of the PUT request shall replace the current + state of the resource. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/VnfSnapshotPkgExtArtifactsAccessInfo' + responses: + 200: + $ref: '#/components/responses/ExternalArtifactsAccess.Put.200' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + + /vnf_snapshot_packages/{vnfSnapshotPkgId}/artifacts/{artifactPath}: + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version + - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization + - $ref: '#/components/parameters/VnfSnapshotPkgId' + - $ref: '#/components/parameters/ArtifactPath' + get: + description: | + The GET method fetches the content of an artifact within the VNF snapshot package. + + If the VNF snapshot package is a result of a building process (refer to + "Build VNF snapshot package content task" resource in clause 11.4.6), and the referred + "Individual VNF snapshot package artifact" is external to the main VNF snapshot package + file, the NFVO shall return a "302 Found" response code referencing the external artifact + resource. To fetch the "Individual VNF snapshot package artifact" from URI indicated by + the "Location" header, the OSS/BSS will have to be authorized to access the resource referred + by the new URI. Furthermore, as indicated by the "302 Found" response code, the OSS/BSS will + have to use the original URI of the present "Individual VNF snapshot package artifact" resource + in future requests. + parameters: + - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept + - $ref: ../components/SOL005_params.yaml#/components/parameters/Range + responses: + 200: + $ref: '#/components/responses/IndividualArtifact.Get.200' + 206: + $ref: '#/components/responses/IndividualArtifact.Get.206' + 302: + $ref: '#/components/responses/IndividualArtifact.Get.302' + 400: + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + 401: + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + 403: + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + 404: + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + 405: + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + 406: + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + 409: + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + 416: + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + 422: + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + 429: + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + 500: + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + 503: + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + 504: + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + +components: + parameters: + VnfSnapshotPkgId: + name: vnfSnapshotPkgId + in: path + description: | + Identifier of the VNF snapshot package. The identifier is allocated by the NFVO. + This identifier can be retrieved from the "id" attribute of the applicable "VnfSnapshotPkgInfo" in the body of + the response to requesting the creation of a new "Individual VNF snapshot package" resource or in a response to + a GET request querying the "Individual VNF snapshot package" or the "VNF snapshot packages" resource. + required: true + style: simple + explode: false + schema: + type: string + + ArtifactPath: + name: artifactPath + in: path + description: | + For an artifact contained as a file in the VNF snapshot package, this variable shall contain a sequence + of one or path segments representing the path of the artifact within the VNF snapshot 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 snapshot package manifest, this variable shall + contain a sequence of one or more path segments as synthesized by the NFVO (see clause 11.5.3.3) representing + this artifact. + + 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 snapshot package" or the + "VNF snapshot packages" resource. + + 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. + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + CreateVnfSnapshotPkgInfoRequest: + description: | + "VNF snapshot package" resource creation parameters, as defined in clause 11.5.2.2. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/CreateVnfSnapshotPkgInfoRequest + required: true + + VnfSnapshotPkgInfoModifications: + description: | + "VNF snapshot package" resource modification parameters, as defined in clause 11.5.2.4. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfoModifications + required: true + + UploadVnfSnapshotPkgFromUriRequest: + description: | + Request parameters for uploading the content of a VNF snapshot package, as defined in clause 11.5.2.5. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/UploadVnfSnapshotPkgFromUriRequest + required: true + + BuildVnfSnapshotPkgRequest: + description: | + Request parameters for building the content of a VNF snapshot package, as defined in clause 11.5.2.6. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/BuildVnfSnapshotPkgRequest + required: true + + ExtractVnfSnapshotPkgRequest: + description: | + Request parameters for extracting the content of a VNF snapshot package, as defined in clause 11.5.2.7. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/ExtractVnfSnapshotPkgRequest + required: true + + CancelVnfSnapshotPkgOperationRequest: + description: | + Request parameters for cancelling an ongoing operation related to the content of a VNF snapshot package, + as defined in clause 11.5.2.8. + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/CancelVnfSnapshotPkgOperationRequest + required: true + + VnfSnapshotPkgExtArtifactsAccessInfo: + description: VOID + content: + application/json: + schema: + $ref: ./definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgExtArtifactsAccessInfo + required: true + + responses: + VnfSnapshotPackages.Post.200: + description: | + 200 OK + + Shall be returned when an "Individual VNF snapshot package" resource has been created successfully. + + The response body shall contain a representation of the new "Individual VNF snapshot package" resource, + as defined in clause 11.5.2.3. + + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the + "Individual VNF snapshot package" resource. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created VNF Snapshot Package. + style: simple + explode: false + schema: + type: string + format: url + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo + + VnfSnapshotPackages.Get.200: + description: | + 200 OK + + Shall be returned when information about zero or more VNF snapshot packages has been queried successfully. + + The response body shall contain in an array the VNF snapshot package info representations that match the + attribute filter, i.e. zero or more VNF snapshot package info representations as defined in clause 11.5.2.3. + + If the "filter" URI parameter or one of the "all_fields", "fields", "exclude_fields" or "exclude_default" URI + parameters was supplied in the request and is supported, the data in the response body shall have been + transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 + of ETSI GS NFV-SOL 013. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo + + IndividualVNFSnapshotPackage.Get.200: + description: | + 200 OK + + Shall be returned when information of the VNF snapshot package has been read successfully. + + The response body shall contain the VNF snapshot package info representation defined in clause 12.5.2.3. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo + + IndividualVNFSnapshotPackage.Patch.200: + description: | + 200 OK + + Shall be returned when the operation has been completed successfully. + + The response body shall contain attribute modifications for an "Individual VNF snapshot package" resource. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfoModifications + + IndividualVNFSnapshotPackage.Delete.204: + description: | + 204 NO CONTENT + + Shall be returned when the VNF snapshot package has been deleted successfully. + + The response body shall be empty. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + + VnfSnapshotPackageContent.Get.200: + description: | + 200 OK + + Shall be returned when the whole content of the VNF snapshot package file has been read + successfully. + + The response body shall include a copy of the VNF snapshot 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 snapshot package. The VNF snapshot package format is defined + in ETSI GS NFV-SOL 010. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/zip: + schema: + type: string + format: binary + + VnfSnapshotPackageContent.Get.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 snapshot package file has been read successfully according + to the request. + + The response body shall contain the requested part of the VNF snapshot 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 for the "200 OK" response. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Content-Range: + description: The Content-Range response HTTP header indicates where in a full body message a partial message belongs. + style: simple + explode: false + schema: + type: string + content: + application/zip: + schema: + type: string + format: binary + + VnfSnapshotPackageContent.Put.202: + description: | + 202 ACCEPTED + + Shall be returned when the VNF snapshot package has been accepted for uploading, but the + processing has not been completed. It is expected to take some time for processing. + + The response body shall be empty. + + The API consumer can track the uploading progress by reading the status of the + "Individual VNF snapshot package" resource using the GET method. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + + UploadFromUri.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the information about the VNF snapshot package has been received successfully, but + the uploading has not been completed. It is expected to take some time for processing. + + The response body shall be empty. + + The API consumer can track the uploading progress by reading the status of the + "Individual VNF snapshot package" resource using the GET method. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + + BuildVnfSnapshotPkg.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the information for building the VNF snapshot package has been received successfully, but + the build has not been completed. It is expected to take some time for processing. + + The response body shall be empty. + + The API consumer can track the uploading progress by reading the status of the + "Individual VNF snapshot package" resource using the GET method. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + + ExtractVnfSnapshotPkg.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the information for extracting the VNF snapshot package has been received successfully, but + the extraction has not been completed. It is expected to take some time for processing. + + The response body shall be empty. + + The API consumer can track the uploading progress by reading the status of the + "Individual VNF snapshot package" resource using the GET method. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + + CancelVnfSnapshotPkg.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the information for cancelling the ongoing operation with the content of the VNF snapshot package + has been received successfully, but the stopping of the operation has not been completed. It is expected to take some + time for processing. + + The response body shall be empty. + + The API consumer can track the uploading progress by reading the status of the + "Individual VNF snapshot package" resource using the GET method. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + + ExternalArtifactsAccess.Get.200: + description: | + 200 OK + + Shall be returned when the access configuration information has been read successfully. + + If no information has been provided previously, an empty array shall be returned. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgExtArtifactsAccessInfo + + ExternalArtifactsAccess.Put.200: + description: | + 200 OK + + Shall be returned when the attribute "state" equals "CREATED" or when the attribute "state" equals "ERROR" + and the VNF snapshot package has not been uploaded successfully previously, to indicate that the access + configuration information has been stored successfully by the NFVO. + + The response body shall contain a representation of the state of the resource. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: definitions/SOL005VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgExtArtifactsAccessInfo + + IndividualArtifact.Get.200: + description: | + 200 OK + + Shall be returned when the whole content of the artifact file has been read successfully. + + The response body shall include a copy of the artifact file from the VNF snapshot package. + The VNF snapshot package format is defined in ETSI GS NFV-SOL 010. + + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the + content type cannot be determined, the header shall be set to the value "application/octet-stream". + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/*: + schema: + type: string + format: binary + + IndividualArtifact.Get.206: + description: | + 206 PARTIAL CONTENT + + If the NFVO supports range requests, this response shall be returned when a single consecutive byte + range from the content of the artifact file has been read successfully according to the request. + + The response body shall contain the requested part of the artifact file from the VNF snapshot package. + The VNF snapshot package format is defined in ETSI GS NFV-SOL 010. + + The "Content-Type" HTTP header shall be set according to the content + type of the artifact file. If the content type cannot be determined, the header shall be set to the + value "application/octet-stream". + + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Content-Range: + description: The Content-Range response HTTP header indicates where in a full body message a partial message belongs. + style: simple + explode: false + schema: + type: string + content: + application/*: + schema: + type: string + format: binary + + IndividualArtifact.Get.302: + description: | + 302 FOUND + + Shall be returned if the referred "Individual VNF snapshot package artifact" is external to the main + VNF snapshot package file created from a build process. + + The HTTP response shall include a "Location" HTTP header that contains the resource URI of the artifact. + + The response body shall be empty. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + 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. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the artifact. + style: simple + explode: false + schema: + type: string + format: url \ No newline at end of file diff --git a/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml b/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5e2dac7e2e1f019b265adace268266f0d4de1839 --- /dev/null +++ b/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml @@ -0,0 +1,747 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + CreateVnfSnapshotPkgInfoRequest: + description: > + This type represents the request parameters for creating a new "Individual VNF snapshot package" resource. + It shall comply with the provisions defined in table 11.5.2.2-1. + type: object + required: + - name + properties: + name: + description: > + Human-readable name of the VNF snapshot package. + type: string + userDefinedData: + description: > + User defined data for the VNF snapshot package to be built/uploaded. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + VnfSnapshotPkgInfo: + description: > + This type represents the information of a VNF snapshot package. It shall comply with the provisions + defined in table 11.5.2.3-1. + type: object + required: + - id + - name + - isFullSnapshot + - state + - isCancelPending + - _links + properties: + id: + description: > + Identifier of the VNF snapshot package information held by the NFVO. + This identifier is allocated by the NFVO. + type: + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshotPkgUniqueId: + description: > + Identifier of the VNF snapshot package, which identifies the VNF snapshot package in + a globally unique way. It is created during the "build VNF snapshot package operation". + + Multiples instances of the same VNF snapshot package share the same vnfSnapshotPkgUniqueId. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + name: + description: > + Human-readable name of the VNF snapshot package. + type: string + checksum: + description: > + Checksum of the stored VNF snapshot package. + + Hash algorithms applicable to VNF snapshot package are defined in ETSI GS NFV-SOL 010. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + createdAt: + description: > + Timestamp indicating when the VNF snapshot package creation has been completed. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + vnfSnapshotId: + description: > + Identifier of the specific VNF snapshot in the VNF snapshot package. This identifier is + allocated by the VNFM during the VNF snapshot creation. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfcSnapshotInfoIds: + description: > + Identifier of information held by the VNFM about specific VNFC snapshot(s) part of the VNF + snapshot and contained in the VNF snapshot package. This identifier is allocated by the VNFM + during the VNF snapshot creation. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierLocal" + isFullSnapshot: + description: > + Value is TRUE in case of a "full" VNF snapshot package, i.e., containing all snapshotted + VNFC instances; otherwise the value is FALSE. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + vnfdInfo: + description: > + VNFD of the snapshotted VNF instance that is contained in the stored VNF snapshot package. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + $ref: '#/definitions/VnfdInfo' + vnfsr: + description: > + VNF snapshot record with the information as present in the representation of The + "Individual VNF snapshot" resource. + $ref: '#/definitions/VnfSnapshotRecord' + vnfcSnapshotImages: + description: > + Information about VNF snapshot artifacts that are VNFC snapshot images. Every local and + external snapshot image shall be included. No other artifacts shall be included. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + type: array + items: + $ref: '#/definitions/VnfcSnapshotImageInfo' + additionalArtifacts: + description: > + Information about VNF snapshot artifacts that are not VNFC snapshot images. + + The attribute shall not be present before the VNF snapshot package content has been + uploaded or built. Otherwise, this attribute shall be present unless it has been requested + to be excluded per attribute selector. + type: array + items: + $ref: '#/definitions/SnapshotPkgArtifactInfo' + state: + description: > + State of the VNF snapshot package. + + Permitted values: + - CREATED: the VNF snapshot package information has been created. + - BUILDING: the VNF snapshot package is being built. + - UPLOADING: the VNF snapshot package is being uploaded. + - EXTRACTING: the VNF snapshot package’s content is being extracted. + - AVAILABLE: the VNF snapshot package is available (i.e., build or upload is completed). + - ERROR: failure during the VNF snapshot package building, uploading or processing. + - ERROR_EXTRACTING: failure during the VNF snapshot package extraction task. + type: string + enum: + - CREATED + - BUILDING + - UPLOADING + - EXTRACTING + - AVAILABLE + - ERROR + - ERROR_EXTRACTING + isCancelPending: + description: > + Indicates if an ongoing operation with the content of the VNF snapshot package is being + cancelled. If the value of the "state" attribute is "BUILDING", "UPLOADING", "PROCESSING" + or "EXTRACTING" and the operation is being cancelled, this attribute shall be set to true. + Otherwise, it shall be set to false. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + failureDetails: + description: > + Failure details associated to current error state of the VNF snapshot package state. + If "state" is "ERROR" or "ERROR_EXTRACTING", this attribute shall be present unless it + has been requested to be excluded via an attribute selector. + type: object + required: + - errorType + - details + properties: + errorType: + description: > + Type of error, when the failure happened (building, upload, processing, extracting). + Permitted values: + - BUILD_ERROR + - UPLOAD_ERROR + - PROCESS_ERROR + - CANCELLED + - EXTRACTION_ERROR + type: string + enum: + - BUILD_ERROR + - UPLOAD_ERROR + - PROCESS_ERROR + - CANCELLED + - EXTRACTION_ERROR + details: + description: > + Failure details containing error information (such as failed uploading or processing + operation, affected artifact, reason for cancellation, etc.). See clause 6.3 of ETSI + GS NFV-SOL 013 for the details of "ProblemDetails" structure. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + userDefinedData: + description: > + User defined data for the VNF snapshot package to be built/uploaded. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - packageContent + properties: + self: + description: URI of this resource. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" + packageContent: + description: Link to the "VNF snapshot package content" resource. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" + + VnfSnapshotPkgInfoModifications: + description: > + This type represents modifications to the information of a VNF snapshot package. + It shall comply with the provisions defined in table 11.5.2.4-1. + type: object + anyOf: + - required: + - name + - required: + - userDefinedData + - required: + - state + properties: + name: + description: > + New value of the human-readable name of the VNF snapshot package. + + At least one of the three parameters shall be present. If the VNF snapshot package + is not uploaded or built, the operation is used only to update existing or add additional + user defined data using the userDefinedData attribute. + type: string + userDefinedData: + description: > + User defined data for the VNF snapshot package to be updated. + For existing keys, the value is replaced. + + At least one of the three parameters shall be present. If the VNF snapshot package + is not uploaded or built, the operation is used only to update existing or add additional + user defined data using the userDefinedData attribute. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + state: + description: > + New value of the "state" of the VNF snapshot package. + + Permitted values: + - AVAILABLE: to change the "Individual VNF snapshot package" resource state to "AVAILABLE". + + Explicit change of state is only permitted from the following states: + - ERROR_EXTRACTING + + At least one of the three parameters shall be present. If the VNF snapshot package + is not uploaded or built, the operation is used only to update existing or add additional + user defined data using the userDefinedData attribute. + type: string + enum: + - AVAILABLE + + UploadVnfSnapshotPkgFromUriRequest: + description: > + This type represents the request parameters for uploading the content of a VNF snapshot package. + The NFVO can obtain the VNF snapshot package content through the information provided in the + request parameters. It shall comply with the provisions defined in table 11.5.2.5-1. + type: object + required: + - addressInformation + properties: + addressInformation: + description: > + Address information of the VNF snapshot package content. The NFVO can use this address to + obtain the VNF snapshot package. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + authType: + description: > + Defines the type of authentication / authorization for downloading the VNF snapshot package. + + Permitted values: + - BASIC: Only the "username" and "password" attributes shall be present. + - OAUTH2_CLIENT_CREDENTIALS: Only the "paramsOauth2ClientCredentials" attribute shall be present. + + This attribute shall not be present if the credentials were provisioned out of band. + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + username: + description: > + Username to be used for authentication. Shall be present if user name is needed and has + not been provisioned out of band. + type: string + password: + description: > + Password to be used for authentication. Shall be present if password is needed and has + not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using OAuth 2.0. + type: object + required: + - clientId + - clientPassword + - tokenEndpoint + properties: + clientId: + description: > + Client identifier to be used in the access token request of the OAuth 2.0 client + credentials grant type. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the OAuth 2.0 client + credentials grant type. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + type: string + + BuildVnfSnapshotPkgRequest: + description: > + This type represents the request parameters for building the content of a VNF snapshot package. + The NFVO can obtain the VNF snapshot data through the information provided in the request + parameters. It shall comply with the provisions defined in table 11.5.2.6-1. + type: object + required: + - vnfSnapshotInfoId + properties: + vnfSnapshotInfoId: + description: > + Identifier held by the NFVO about the "Individual VNF snapshot" resource with the information + managed by the VNFM about a specific VNF snapshot to be packaged into the VNF snapshot package. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfcSnapshotsInfoIds: + description: > + List of identifiers of information held by the NFVO about VNFC snapshots to be packaged + into the VNF snapshot package. Shall be present when it is requested to build a "partial” + VNF snapshot package by packaging specific VNFC snapshots of the VNF snapshot. If not present, + a "full" VNF snapshot package is requested to be built including all the constituents of + the VNF snapshot. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierLocal" + overrideImportForVnfcSnapshotIds: + description: | + If present, it indicates the list of VNFC snapshots to which the VNF snapshot-level + import snapshot resource policy indicated by the "importSnapshotResource" attribute + does not apply and the opposite value shall be considered. + + The "overrideImportForVnfcSnapshotIds" provides the list of VNFC snapshots for which the + VNF snapshot-level snapshot resource import policy is overridden. See also examples in the + present clause. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierLocal" + importSnapshotResource: + description: > + VNF snapshot-level policy indicating whether the NFVO shall import the snapshotted resources + from the NFVI (TRUE) or keep in the NFVI the snapshotted resources as external artifacts + during the building of the VNF snapshot package file (FALSE). Default value is TRUE. + + The "overrideImportForVnfcSnapshotIds" provides the list of VNFC snapshots for which the + VNF snapshot-level snapshot resource import policy is overridden. See also examples in the + present clause. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + + ExtractVnfSnapshotPkgRequest: + description: > + This type represents the request parameters for extracting the content of a VNF snapshot package. + It shall comply with the provisions defined in table 11.5.2.7-1. + type: object + oneOf: + - required: + - vnfSnapshotInfoId + - required: + - vnfInstanceId + properties: + vnfSnapshotInfoId: + description: > + Identifier held by the NFVO about an "Individual VNF snapshot" resource managed by the VNFM + to which the content of the VNF snapshot package will be extracted to. + + Either the parameter vnfSnapshotInfoId or vnfInstanceId, but not both, shall be provided. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfInstanceId: + description: > + Identifier of the VNF instance to which the content and extraction of the VNF snapshot + package is to be associated. + + Either the parameter vnfSnapshotInfoId or vnfInstanceId, but not both, shall be provided. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + CancelVnfSnapshotPkgOperationRequest: + description: > + This type represents the request parameters for cancelling an ongoing operation related + to the content of a VNF snapshot package. It shall comply with the provisions defined in + table 11.5.2.8-1. + type: object + properties: + cause: + description: > + Description about the reason for cancelling the operation. If this attribute is present, + the NFVO shall add such information into the "failureDetails" of the representation of + the "Individual VNF snapshot package" resource. + type: string + + VnfSnapshotPkgExtArtifactsAccessInfo: + description: > #no definition found + VnfSnapshotPkgExtArtifactsAccessInfo description ! + type: string + + VnfSnapshotPkgExtArtifactsAccessConfig: + description: > + This type represents the access configuration information for downloading external VNF snapshot + package artifacts. + The NFVO can obtain the external VNF snapshot package artifact file through the information + provided in this structure, together with information provided in the manifest. The data + structure shall comply with the provisions defined in Table 11.5.2.9-1. If the data structure + is part of a response body, security-sensitive attributes shall be excluded as specified in + Table 11.5.2.9-1. + type: object + properties: + artifact: + description: > + Access configuration information for an external artifact. + type: array + items: + type: object + required: + - artifactUri + properties: + artifactUri: + description: > + The artifactUri attribute as defined in the VNF snapshot package manifest that + identifies the external artifact for which the access configuration information + is provided, and that provides the default download location for this artifact. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + overrideUri: + description: > + The URI from which the external artifact can be downloaded. If this attribute is + present, the NFVO shall download from this address. If this attribute is not present, + the NFVO shall download from the address provided in "artifactUri". + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + authType: + description: > + Defines the type of authentication / authorization for downloading the VNF package. + + Permitted values: + - BASIC: Only the "username" and "password" attributes shall be present. + - OAUTH2_CLIENT_CREDENTIALS: Only the "paramsOauth2ClientCredentials" attribute shall + be present. + + This attribute shall not be present if no credentials are provided for the artifact. + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + username: + description: > + Username to be used for authentication. + type: string + password: + description: > + Password to be used for authentication. Shall not be present in response bodies. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. + type: object + required: + - clientId + - clientPassword + - tokenEndpoint + properties: + clientId: + description: > + Client identifier to be used in the access token request of the OAuth 2.0 client + credentials grant type. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the OAuth 2.0 client + credentials grant type. Shall not be present in response bodies. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + + #Referenced structured data types + VnfcSnapshotImageInfo: + description: > + This type represents an artifact contained in or external to a VNF snapshot package which + represents a snapshot image. + It shall comply with the provisions defined in table 11.5.3.2-1. + type: object + required: + - id + - name + - checksum + - isEncrypted + - vnfcInstanceId + - containerFormat + - diskFormat + - createdAt + - minDisk + - minRam + - size + properties: + id: + description: Identifier of the VNFC snapshot image. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierLocal" + name: + description: Name of the VNFC snapshot image. + type: string + checksum: + description: > + Checksum of the snapshot image file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + isEncrypted: + description: Reflects whether the artifact is encrypted (true) or not (false). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + vnfcInstanceId: + description: Identifier of the snapshotted VNFC instance that this snapshot image belongs to. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" + containerFormat: + description: > + Container format indicates whether the snapshot image is in a file format that also + contains metadata about the actual snapshot. + + Permitted values: + - AKI: a kernel image format. + - AMI: a machine image format. + - ARI: a ramdisk image format. + - BARE: the image does not have a container or metadata envelope. + - DOCKER: docker container format. + - OVA: OVF package in a tarfile. + - OVF: OVF container format. + + The list of permitted values was taken from "Container formats" in + OpenStack®: "Disk and container formats for images" + (Available from https://docs.openstack.org/glance/pike/user/formats.html) + type: string + enum: + - AKI + - AMI + - ARI + - BARE + - DOCKER + - OVA + - OVF + diskFormat: + description: > + Disk format of a snapshot image is the format of the underlying disk image. + + Permitted values: + - AKI: a kernel image format. + - AMI: a machine image format. + - ARI: a ramdisk image format. + - ISO: an archive format for the data contents of an optical disc, such as CD-ROM. + - QCOW2: a common disk image format, which can expand dynamically and supports copy + on write. + - RAW: an unstructured disk image format. + - VDI: a common disk image format. + - VHD: a common disk image format. + - VHDX: enhanced version of VHD format. + - VMDK: a common disk image format. + + The list of permitted values was adapted from "Disk formats" in + OpenStack®: "Disk and container formats for images" + (Available from https://docs.openstack.org/glance/pike/user/formats.html) + type: string + enum: + - AKI + - AMI + - ARI + - ISO + - QCOW2 + - RAW + - VDI + - VHD + - VHDX + - VMDK + createdAt: + description: Timestamp indicating when the VNFC snapshot image was created. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + minDisk: + description: The minimal disk for this VNFC snapshot image (in bytes). + $ref: "../../definitions/SOL005_def.yaml#/definitions/UnsignedInt" + minRam: + description: The minimal RAM for this VNFC snapshot image (in bytes). + $ref: "../../definitions/SOL005_def.yaml#/definitions/UnsignedInt" + size: + description: Size of this VNFC snapshot image (in bytes). + $ref: "../../definitions/SOL005_def.yaml#/definitions/UnsignedInt" + userMetadata: + description: User-defined metadata. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + imagePath: + description: > + Path which identifies the image artifact and also allows to access a copy of the + image artifact. + + For an image artifact contained as a file in the VNF snapshot package, this attribute + shall be present, and the value of this attribute shall start with the name of the + first segment in the path in the package, i.e., it shall not be prefixed by path + separator characters such as "." and "/". + + EXAMPLE: foo/bar/m%40ster.vhd + + For an external image artifact represented as a URI in the manifest file, this attribute + shall be present if the artifact has been downloaded by the NFVO or the artifact has been + processed after building the VNF snapshot package and shall be absent otherwise. If present, + it shall contain the artifactPath under which the image artifact can be obtained using the + "Individual artifact in a VNF snapshot package" resource defined in clause 11.4.10. + 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 snapshot package. + type: string + imageUri: + description: > + URI of the image artifact as defined in the VNF snapshot package manifest. Shall be present + if the image artifact is external to the snapshot package and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.vhd + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + + SnapshotPkgArtifactInfo: + description: > + This type represents an artifact other than a software image which is contained in a VNF + snapshot package. It shall comply with provisions defined in table 11.5.3.3-1. + type: object + required: + - checksum + - isEncrypted + properties: + artifactPath: + description: > + Path which identifies the artifact and also allows to access a copy of the artifact. + + For an artifact contained as a file in the VNF snapshot package, this attribute shall be + present, and the value of this attribute shall start with the name of the first segment in + the path in the package, i.e. it shall not be prefixed by path separator characters such + as "." and "/". + + EXAMPLE: foo/bar/m%40ster.sh + + For an external artifact represented as a URI in the manifest file, this attribute shall + be present if the artifact has been downloaded by the NFVO or the artifact has been + processed after building the VNF snapshot package 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 snapshot package" resource defined in clause 11.4.10. 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 snapshot package. + type: string + artifactUri: + description: > + URI of the artifact as defined in the VNF snapshot package manifest. Shall be present if + the artifact is external to the snapshot package and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.sh + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + checksum: + description: > + Checksum of the artifact file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the artifact is encrypted (true) or not (false). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + metadata: + description: > + The metadata of the artifact that are available in the VNF package, such as Content type, + size, creation date, etc. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + VnfdInfo: + description: > + This type represents the VNFD which is contained in a VNF snapshot package. It shall comply + with provisions defined in Table 11.5.3.4-1. + type: object + required: + - vnfdId + - vnfdPath + - checksum + - isEncrypted + properties: + vnfdId: + description: > + VNFD identifier of the snapshotted VNF instance. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfdPath: + description: > + Path which allows to access a copy of the VNFD. The VNFD is implemented as a collection + of one or more files, and the path refers to the ZIP archive file embedding these files. + The VNF snapshot package format is defined in the ETSI GS NFV-SOL 010. + + The value of this attribute shall start with the name of the first segment of the path + in the package, i.e. it shall not be prefixed by path separator characters such + as "." and "/". + + EXAMPLE: foo/bar/m@ster + type: string + checksum: + description: > + Checksum of the VNFD archive file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the VNFD archive file is encrypted (true) or not (false). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + + VnfSnapshotRecord: + description: > + This type represents the VNF snapshot record which is contained in a VNF snapshot package. + It shall comply with provisions defined in Table 11.5.3.5-1. + type: object + required: + - recordPath + - checksum + - isEncrypted + properties: + recordPath: + description: > + Path which identifies the VNF snapshot record and allows to access a copy of the VNF + snapshot record for the extraction. + + The value of this attribute shall start with the name of the first segment of the path + in the package, i.e. it shall not be prefixed by path separator characters such as "." + and "/". + + EXAMPLE: foo/bar/m@ster + type: string + checksum: + description: > + Checksum of the VNF snapshot record file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the VNF snapshot record file is encrypted (true) or not (false). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" \ No newline at end of file diff --git a/src/SOL005/components/SOL005_params.yaml b/src/SOL005/components/SOL005_params.yaml new file mode 100644 index 0000000000000000000000000000000000000000..707c9302047205dcc3cc77da93b942096d9f3ff0 --- /dev/null +++ b/src/SOL005/components/SOL005_params.yaml @@ -0,0 +1,194 @@ +components: + parameters: + Version: + name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + + Accept: + name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF RFC 7231. + in: header + required: true + schema: + type: string + + Authorization: + name: Authorization + description: > + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + + ContentType: + name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + + Range: + name: Range + in: header + description: | + The request may contain a "Range" HTTP header to obtain single range of bytes from the resource 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. + required: false + style: simple + explode: false + schema: + type: string + + filter: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI + GS NFV-SOL 013. The NFV-MANO functional entity shall support + receiving this parameter as part of the URI query string. The API + consumer may supply this parameter. All attribute names that appear + in the FmSubscription and in data types referenced from it shall be + supported by the NFV-MANO functional entity in the filter + expression. + in: query + required: false + schema: + type: string + + all_fields: + name: all_fields + description: > + Include all complex attributes in the response. See clause + 5.3 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity + shall support this parameter. + in: query + required: false + schema: + type: string + + fields: + name: fields + description: > + Complex attributes to be included into the response. See clause + 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional + entity should support this parameter. + in: query + required: false + schema: + type: string + + exclude_fields: + name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause + 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional + entity should support this parameter. + in: query + required: false + schema: + type: string + + exclude_default: + name: exclude_default + in: query + description: >- + Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013 + for details. The NFV-MANO functional entity shall support this parameter. + The NFVO shall support this parameter. + + The following attributes shall be excluded from the NsInstance structure in the response body if this parameter + is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + - vnfInstances + - pnfInfo + - virtualLinkInfo + - vnffgInfo + - sapInfo + - nsScaleStatus + - additionalAffinityOrAntiAffinityRules + - wanConnectionInfo + required: false + schema: + type: string + + nextpage_opaque_marker: + name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be supported by + the NFV-MANO functional entity if the entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + + include_signatures: + 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 + schema: + type: string + + exclude_all_mano_artifacts: + name: exclude_all_mano_artifacts + in: query + description: | + Flag (i.e. parameter without value) that instructs the NFVO to exclude the set of additional MANO artifacts + (i.e. those that are not images) from the response payload body. The NFVO shall support this parameter. + The VNFM may supply this parameter. + required: false + style: form + explode: true + schema: + type: string + + exclude_all_non_mano_artifacts: + name: exclude_all_non_mano_artifacts + in: query + description: | + Flag (i.e. parameter without value) that instructs the NFVO to exclude the set of non-MANO artifacts from the + response payload body. The NFVO shall support this parameter. The VNFM may supply this parameter. + required: false + style: form + explode: true + schema: + type: string + + select_non_mano_artifact_sets: + name: select_non_mano_artifact_sets + in: query + description: | + Comma-separated list of non-MANO artifact set identifiers for which the artifacts are to be included in the + response body. The NFVO should support this parameter. If the NFVO does not support this parameter, it shall + ignore it, i.e. provide a response as if no parameter was provided. The VNFM may supply this parameter. + required: false + style: form + explode: true + schema: + type: string + + include_external_artifacts: + name: include_external_artifacts + in: query + description: | + Flag (i.e. parameter without value) that instructs the NFVO to include external artifacts in the response + payload body. It shall not be treated as an error if this flag is provided but there is no external artifact + to include in the result. If this parameter is missing, no external artifacts shall be included. + The NFVO shall support this parameter. The OSS/BSS may supply this parameter. + required: false + style: form + explode: true + schema: + type: string \ No newline at end of file diff --git a/src/SOL005/definitions/SOL005_def.yaml b/src/SOL005/definitions/SOL005_def.yaml index 129d6583530099482b394e582a5208d18dbbca17..38e6078ed9ed10cff814825fcf451fc32eaa81ec 100644 --- a/src/SOL005/definitions/SOL005_def.yaml +++ b/src/SOL005/definitions/SOL005_def.yaml @@ -58,6 +58,12 @@ definitions: A number as defined in IETF RFC 8259. type: number + UnsignedInt: + description: > + Unsigned integer number + type: integer + minimum: 0 + KeyValuePairs: description: > This type represents a list of key-value pairs. The order of the pairs in the list is not significant. @@ -168,6 +174,19 @@ definitions: Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. type: object + anyOf: + - oneOf: + - required: + - nsdIds + - required: + - vnfdIds + - required: + - pnfdIds + - oneOf: + - required: + - nsInstanceIds + - required: + - nsInstanceNames properties: nsdIds: description: > @@ -221,7 +240,7 @@ definitions: properties: vimId: description: > - Identifier of the VIM under whose control this resource is placed. + Identifier of the VIM or WIM under whose control this resource is placed. This attribute shall be present if VNF-related resource management in direct mode is applicable. It shall also be present for resources that are part of an NS instance such as virtual link resources. @@ -235,13 +254,13 @@ definitions: $ref: "#/definitions/Identifier" resourceId: description: > - Identifier of the resource in the scope of the VIM or the resource provider. + Identifier of the resource in the scope of the VIM, the WIM or the resource provider. $ref: "#/definitions/IdentifierInVim" vimLevelResourceType: description: > - Type of the resource in the scope of the VIM or the resource provider. + Type of the resource in the scope of the VIM, the WIM or the resource provider. The value set of the "vimLevelResourceType" attribute is within the scope - of the VIM or the resource provider and can be used as information that + of the VIM, the WIM or the resource provider and can be used as information that complements the ResourceHandle. type: string @@ -273,6 +292,19 @@ definitions: Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. type: string + IdentifierLocal: + description: > + An identifier that is unique within a limited local scope other than above listed identifiers, + such as within a complex data structure or within a request-response pair. + Representation: string of variable length. + type: string + + IdentifierInVnf: + description: > + An identifier that is unique for the respective type within a VNF + instance, but may not be globally unique. + type: string + ApiVersionInformation: description: > This type represents API version information. diff --git a/src/SOL005/endpoints/SOL005_endpoints.yaml b/src/SOL005/endpoints/SOL005_endpoints.yaml index b5ee389c3ae71e6fb92cb92dcf1893c4ad9a7ffa..c544e8cb5c02fcb1b16ae9b3499fa93500dac98f 100644 --- a/src/SOL005/endpoints/SOL005_endpoints.yaml +++ b/src/SOL005/endpoints/SOL005_endpoints.yaml @@ -1,14 +1,10 @@ # Copyright (c) ETSI 2017. # https://forge.etsi.org/etsi-forge-copyright-notice.txt + endpoints: api-versions: parameters: - - name: Version - description: > - Version of the API requested to use when responding to this request. - in: header - required: false - type: string + - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: summary: Retrieve API version information description: > @@ -16,35 +12,60 @@ endpoints: table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not supported. responses: - 200: - description: > - API version information was read successfully. - The response body shall contain 4.4 API version - information, as defined in clause 4.4.1.13. + "200": + $ref: '#/components/responses/ApiVersions.Get' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "413": + $ref: ../responses/SOL005_resp.yaml#/components/responses/413 + "414": + $ref: ../responses/SOL005_resp.yaml#/components/responses/414 + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "429": + $ref: ../responses/SOL005_resp.yaml#/components/responses/429 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + +components: + responses: + ApiVersions.Get: + description: > + 200 OK + + API version information was read successfully. + The response body shall contain 4.4 API version + information, as defined in clause 4.4.1.13. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + Version: + description: The used API version. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: schema: - $ref: '../definitions/SOL005_def.yaml#/definitions/ApiVersionInformation' - 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 - 400: { $ref: '../responses/SOL005_resp.yaml#/responses/400' } - 401: { $ref: '../responses/SOL005_resp.yaml#/responses/401' } - 403: { $ref: '../responses/SOL005_resp.yaml#/responses/403' } - 404: { $ref: '../responses/SOL005_resp.yaml#/responses/404' } - 405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' } - 406: { $ref: '../responses/SOL005_resp.yaml#/responses/406' } - 413: { $ref: '../responses/SOL005_resp.yaml#/responses/413' } - 414: { $ref: '../responses/SOL005_resp.yaml#/responses/414' } - 416: { $ref: '../responses/SOL005_resp.yaml#/responses/416' } - 422: { $ref: '../responses/SOL005_resp.yaml#/responses/422' } - 429: { $ref: '../responses/SOL005_resp.yaml#/responses/429' } - 500: { $ref: '../responses/SOL005_resp.yaml#/responses/500' } - 503: { $ref: '../responses/SOL005_resp.yaml#/responses/503' } - 504: { $ref: '../responses/SOL005_resp.yaml#/responses/504' } \ No newline at end of file + $ref: '../definitions/SOL005_def.yaml#/definitions/ApiVersionInformation' \ No newline at end of file diff --git a/src/SOL005/responses/SOL005_resp.yaml b/src/SOL005/responses/SOL005_resp.yaml index 2d898dc98a1fd06b4732eba6c07cff7a7137a1f3..6bbb21ec20731cfdf19dd1a3c2ca9ce64e186bd1 100644 --- a/src/SOL005/responses/SOL005_resp.yaml +++ b/src/SOL005/responses/SOL005_resp.yaml @@ -1,602 +1,691 @@ # Copyright (c) ETSI 2017. # https://forge.etsi.org/etsi-forge-copyright-notice.txt -responses: - - 202: - description: > - 202 ACCEPTED - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - Location: - description: The resource URI of the created NS instance - type: string - format: url - maximum: 1 - minimum: 0 - 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 - headers: - Content-Type: - description: > - The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - Content-Range: - description: > - The Content-Range response HTTP header indicates where in a full body message a partial message belongs. - 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/SOL005_def.yaml#/definitions/ProblemDetails" - - 303: - description: > - 303 SEE OTHER - 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 - - 400: - description: > - 400 BAD REQUEST - - 400 code can be returned in the following specified cases, the specific cause has to be proper specified in the - "ProblemDetails" structure to be returned. - - If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect - query parameters or the payload body contains a syntactically incorrect data structure), - the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, - and should include in the "detail" attribute more information about the source of the problem. - - If the response to a GET request which queries a container resource would be so big that the performance - of the API producer is adversely affected, and the API producer does not support paging for the affected resource, - it shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include - in the "detail" attribute more information about the source of the problem. - - If there is an application error related to the client's input that cannot be easily mapped to any other - HTTP response code ("catch all error"), the API producer shall respond with this response code. - The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information - about the source of the problem. - - If the request contains a malformed access token, the API producer should respond with this response. - The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 - and IETF RFC 7235. The ProblemDetails structure may be provided. - - The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 - for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 401: - description: > - 401 UNAUTHORIZED - - If the request contains no access token even though one is required, or if the request contains an authorization - token that is invalid (e.g. expired or revoked), the API producer should respond with this response. - The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 - and IETF RFC 7235. The ProblemDetails structure may be provided. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 403: - description: > - 403 FORBIDDEN - - If the API consumer is not allowed to perform a particular request to a particular resource, - the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided. - It should include in the "detail" attribute information about the source of the problem, - and may indicate how to solve it. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 404: - description: > - 404 NOT FOUND - - If the API producer did not find a current representation for the resource addressed by the URI passed - in the request or is not willing to disclose that one exists, it shall respond with this response code. - The "ProblemDetails" structure may be provided, including in the "detail" attribute information about - the source of the problem, e.g. a wrong resource URI variable. - - This response code is not appropriate in case the resource addressed by the URI is a container resource - which is designed to contain child resources, but does not contain any child resource at the time - the request is received. For a GET request to an existing empty container resource, a typical response - contains a 200 OK response code and a payload body with an empty array. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 405: - description: > - 405 METHOD NOT ALLOWED - - If a particular HTTP method is not supported for a particular resource, the API producer shall respond - with this response code. The "ProblemDetails" structure may be omitted. - headers: - Content-Type: - description: The MIME type of the body of the response. - 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/SOL005_def.yaml#/definitions/ProblemDetails" - - 406: - description: > - 406 NOT ACCEPTABLE - - If the "Accept" header does not contain at least one name of a content type that is acceptable - to the API producer, the API producer shall respond with this response code. - The "ProblemDetails" structure may be omitted. - headers: - Content-Type: - description: The MIME type of the body of the response. - 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/SOL005_def.yaml#/definitions/ProblemDetails" - - 409: - description: > - 409 CONFLICT - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 412: - description: > - 412 PRECONDITION FAILED - - 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. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 413: - description: > - 413 PAYLOAD TOO LARGE - - If the payload body of a request is larger than the amount of data the API producer is willing or able to process, - it shall respond with this response code, following the provisions in IETF RFC 7231 for the use - of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be omitted. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 414: - description: > - 414 URI TOO LONG - - If the request URI of a request is longer than the API producer is willing or able to process, - it shall respond with this response code. This condition can e.g. be caused by passing long queries - in the request URI of a GET request. The "ProblemDetails" structure may be omitted. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 416: - description: > - 416 RANGE NOT SATISFIABLE - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 422: - description: > - 422 UNPROCESSABLE ENTITY - - If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data - cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond - with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" - attribute more information about the source of the problem. - - This error response code is only applicable for methods that have a request body. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 429: - description: > - 429 TOO MANY REQUESTS - - If the API consumer has sent too many requests in a defined period of time and the API producer is able - to detect that condition ("rate limiting"), the API producer shall respond with this response code, - following the provisions in IETF RFC 6585 [17] for the use of the "Retry-After" HTTP header. - The "ProblemDetails" structure shall be provided and shall include in the "detail" attribute more information - about the source of the problem. - - The period of time and allowed number of requests are configured within the API producer by means - outside the scope of the present document. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 500: - description: > - 500 INTERNAL SERVER ERROR - - If there is an application error not related to the client's input that cannot be easily mapped to any other - HTTP response code ("catch all error"), the API producer shall respond with this response code. - The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information - about the source of the problem. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 503: - description: > - 503 SERVICE UNAVAILABLE - - If the API producer encounters an internal overload situation of itself or of a system it relies on, - it should respond with this response code, following the provisions in IETF RFC 7231 for the use of - the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" - structure may be omitted. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - - 504: - description: > - 504 GATEWAY TIMEOUT - - If the API producer encounters a timeout while waiting for a response from an upstream server - (i.e. a server that the API producer communicates with when fulfilling a request), it should respond - with this response code. - headers: - Content-Type: - description: The MIME type of the body of the response. - type: string - maximum: 1 - minimum: 1 - WWW-Authenticate: - description: > - Challenge if the corresponding HTTP request has not provided - authorization, or error details if the corresponding HTTP - request has provided an invalid authorization token. - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - type: string - maximum: 1 - minimum: 1 - schema: - $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file +components: + responses: + 202: + description: > + 202 ACCEPTED + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + maximum: 1 + minimum: 0 + 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 + headers: + Content-Type: + description: > + The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + Content-Range: + description: > + The Content-Range response HTTP header indicates where in a full body message a partial message belongs. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 303: + description: > + 303 See Other + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + + 400: + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the specific cause has to be proper specified in the + "ProblemDetails" structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect + query parameters or the payload body contains a syntactically incorrect data structure), + the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource would be so big that the performance + of the API producer is adversely affected, and the API producer does not support paging for the affected resource, + it shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the problem. + + If there is an application error related to the client's input that cannot be easily mapped to any other + HTTP response code ("catch all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information + about the source of the problem. + + If the request contains a malformed access token, the API producer should respond with this response. + The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 + and IETF RFC 7235. The ProblemDetails structure may be provided. + + The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 + for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 401: + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, or if the request contains an authorization + token that is invalid (e.g. expired or revoked), the API producer should respond with this response. + The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 + and IETF RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 403: + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request to a particular resource, + the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the source of the problem, + and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 404: + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the resource addressed by the URI passed + in the request or is not willing to disclose that one exists, it shall respond with this response code. + The "ProblemDetails" structure may be provided, including in the "detail" attribute information about + the source of the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed by the URI is a container resource + which is designed to contain child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty container resource, a typical response + contains a 200 OK response code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 405: + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular resource, the API producer shall respond + with this response code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 406: + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a content type + that is acceptable to the API producer, the API producer shall respond with this + response code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 409: + description: > + 409 CONFLICT + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 412: + description: > + 412 PRECONDITION FAILED + + 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. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 413: + description: > + 413 PAYLOAD TOO LARGE + + If the payload body of a request is larger than the amount of data the API producer is willing or able to process, + it shall respond with this response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 414: + description: > + 414 URI TOO LONG + + If the request URI of a request is longer than the API producer is willing or able to process, + it shall respond with this response code. This condition can e.g. be caused by passing long queries + in the request URI of a GET request. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 416: + description: > + 416 Range Not Satisfiable + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 422: + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data + cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond + with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 429: + description: > + 429 TOO MANY REQUESTS + + If the API consumer has sent too many requests in a defined period of time and the API producer is able + to detect that condition ("rate limiting"), the API producer shall respond with this response code, + following the provisions in IETF RFC 6585 [17] for the use of the "Retry-After" HTTP header. + The "ProblemDetails" structure shall be provided and shall include in the "detail" attribute more information + about the source of the problem. + + The period of time and allowed number of requests are configured within the API producer by means + outside the scope of the present document. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 500: + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input that cannot be easily mapped to any other + HTTP response code ("catch all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information + about the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 503: + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of itself or of a system it relies on, + it should respond with this response code, following the provisions in IETF RFC 7231 for the use of + the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 504: + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a response from an upstream server + (i.e. a server that the API producer communicates with when fulfilling a request), it should respond + with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file