| openapi: 3.0.0 |
| servers: |
| - description: OSM NB API |
| url: https://osm.etsi.org/nbapi/v1.0.0 |
| info: |
| description: | |
| This is Open Source MANO Northbound API featuring ETSI NFV SOL005. |
| For more information on OSM, you can visit |
| [http://osm.etsi.org](http://osm.etsi.org) or connect to IRCs |
| [Freenode, #etsi-osm](http://webchat.freenode.net?channels=etsi-osm) or on |
| [OSM IRC, #tech](https://osm.etsi.org:8080/kiwi) |
| version: "1.0.0" |
| title: OSM NB API featuring ETSI NFV SOL005 |
| contact: |
| email: OSM_TECH@list.etsi.org |
| license: |
| name: Apache 2.0 |
| url: 'http://www.apache.org/licenses/LICENSE-2.0.html' |
| tags: |
| - name: 'VNF packages' |
| description: Management operations of VNF descriptors and packages |
| - name: 'NS packages' |
| description: Management operations of NS descriptors and packages |
| - name: 'NS instances' |
| description: Management operations of NS instances |
| paths: |
| /nsd/v1/ns_descriptors: |
| get: |
| tags: |
| - "NS packages" |
| summary: Query information about multiple NS descriptor resources |
| description: Query information about multiple NS descriptor resources |
| operationId: getNSDs |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ArrayOfNsdInfo' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/ArrayOfNsdInfo' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| post: |
| tags: |
| - "NS packages" |
| summary: Create a new NS descriptor resource |
| description: Create a new NS descriptor resource |
| operationId: addNSD |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/CreateNsdInfoRequest' |
| responses: |
| '201': |
| description: Created |
| headers: |
| Location: |
| schema: |
| type: string |
| format: uri |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/NsdInfo' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/NsdInfo' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/nsd/v1/ns_descriptors/{nsdInfoId}': |
| get: |
| tags: |
| - "NS packages" |
| summary: Read information about an individual NS descriptor resource |
| description: Read information about an individual NS descriptor resource |
| operationId: getNSD |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/NsdInfo' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/NsdInfo' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| delete: |
| tags: |
| - "NS packages" |
| summary: Delete an individual NS descriptor resource |
| description: Delete an individual NS descriptor resource |
| operationId: deleteNSD |
| security: |
| - bearerAuth: [] |
| responses: |
| '204': |
| description: No Content |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| patch: |
| tags: |
| - "NS packages" |
| summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource |
| description: Modify the operational state and/or the user defined data of an individual NS descriptor resource |
| operationId: updateNSD |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/NsdInfoModifications' |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/NsdInfoModifications' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/NsdInfoModifications' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content': |
| get: |
| tags: |
| - "NS packages" |
| summary: Fetch the content of a NSD |
| description: Fetch the content of a NSD |
| operationId: getNSDcontent |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| $ref: '#/components/requestBodies/NsdContent' |
| '206': |
| description: Partial Content |
| headers: |
| Content-Range: |
| schema: |
| type: string |
| $ref: '#/components/requestBodies/NsdContent' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| put: |
| tags: |
| - "NS packages" |
| summary: Upload the content of a NSD |
| description: Upload the content of a NSD |
| operationId: updateNSDcontent |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/NsdContent' |
| responses: |
| '202': |
| description: Accepted |
| '204': |
| description: No Content |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| /vnfpkgm/v1/vnf_packages: |
| get: |
| tags: |
| - "VNF packages" |
| summary: Query information about multiple VNF package resources |
| description: Query information about multiple VNF package resoureces |
| operationId: getVnfPkgs |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ArrayOfVnfPkgInfo' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/ArrayOfVnfPkgInfo' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| post: |
| tags: |
| - "VNF packages" |
| summary: Create a new VNF package resource |
| description: Create a new VNF package resource |
| operationId: addVnfPkg |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest' |
| responses: |
| '201': |
| description: Created |
| headers: |
| Location: |
| schema: |
| type: string |
| format: uri |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfo' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfo' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/vnfpkgm/v1/vnf_packages/{vnfPkgId}': |
| get: |
| tags: |
| - "VNF packages" |
| summary: Read information about an individual VNF package resource |
| description: Read information about an individual VNF package resource |
| operationId: getVnfPkg |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfo' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfo' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| delete: |
| tags: |
| - "VNF packages" |
| summary: Delete an individual VNF package resource |
| description: Delete an individual VNF package resource |
| operationId: deleteVnfPkg |
| security: |
| - bearerAuth: [] |
| responses: |
| '204': |
| description: No Content |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| patch: |
| tags: |
| - "VNF packages" |
| summary: Modify the operational state and/or the user defined data of an individual VNF package resource |
| description: Modify the operational state and/or the user defined data of an individual VNF package resource |
| operationId: updateVnfPkg |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/VnfPkgInfoModifications' |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfoModifications' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfoModifications' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd': |
| get: |
| tags: |
| - "VNF packages" |
| summary: Read VNFD of an on-boarded VNF package |
| description: Read VNFD of an on-boarded VNF package |
| operationId: getVnfPkgVNFD |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| text/plain: |
| schema: |
| $ref: '#/components/schemas/VnfDescriptor' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content': |
| get: |
| tags: |
| - "VNF packages" |
| summary: Fetch an on-boarded VNF package |
| description: Fetch an on-boarded VNF package |
| operationId: getVnfPkgContent |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/zip: |
| schema: |
| $ref: '#/components/schemas/VnfPackage' |
| '206': |
| description: Partial Content |
| headers: |
| Content-Range: |
| schema: |
| type: string |
| content: |
| application/zip: |
| schema: |
| $ref: '#/components/schemas/VnfPackage' |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| put: |
| tags: |
| - "VNF packages" |
| summary: Upload a VNF package by providing the content of the VNF package |
| description: Upload a VNF package by providing the content of the VNF package |
| operationId: uploadVnfPkgContent |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/VnfPackage' |
| responses: |
| '202': |
| description: Accepted |
| #'204': |
| # description: No Content |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': |
| post: |
| tags: |
| - "VNF packages" |
| summary: Upload a VNF package by providing the URI of the VNF package |
| description: Upload a VNF package by providing the URI of the VNF package |
| operationId: uploadVnfPkgContentFromURI |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/UploadVnfPackageFromUriRequest' |
| responses: |
| '202': |
| description: Accepted |
| #'204': |
| # description: No Content |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': |
| get: |
| tags: |
| - "VNF packages" |
| summary: Fetch individual VNF package artifact |
| description: Fetch individual VNF package artifact |
| operationId: getVnfPkgArtifact |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/octet-stream: |
| schema: |
| type: string |
| format: binary |
| '206': |
| description: Partial Content |
| headers: |
| Content-Range: |
| schema: |
| type: string |
| content: |
| application/octet-stream: |
| schema: |
| type: string |
| format: binary |
| '400': |
| $ref: '#/components/responses/BadRequest' |
| '401': |
| $ref: '#/components/responses/Unauthorized' |
| '403': |
| $ref: '#/components/responses/Forbidden' |
| '404': |
| $ref: '#/components/responses/NotFound' |
| '405': |
| $ref: '#/components/responses/MethodNotAllowed' |
| '406': |
| $ref: '#/components/responses/NotAcceptable' |
| '409': |
| $ref: '#/components/responses/Conflict' |
| '422': |
| $ref: '#/components/responses/UnprocessableEntity' |
| '500': |
| $ref: '#/components/responses/InternalServerError' |
| '503': |
| $ref: '#/components/responses/ServiceUnavailable' |
| '5XX': |
| $ref: '#/components/responses/UnexpectedError' |
| default: |
| $ref: '#/components/responses/UnexpectedError' |
| externalDocs: |
| description: Find out more OSM |
| url: 'http://osm.etsi.org/wikipub' |
| components: |
| responses: |
| BadRequest: |
| description: Bad request. The server cannot process the request due to a client error. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| Unauthorized: |
| description: Authorization information is missing or invalid. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| Forbidden: |
| description: Not enough permissions to do this operation. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| NotFound: |
| description: The specified resource was not found. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| MethodNotAllowed: |
| description: This method is not supported for the requested resource. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| NotAcceptable: |
| description: The requested resource content cannot match the Accept headers sent in the request. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| Conflict: |
| description: The operation cannot be executed currently, due to a conflict with the state of the resource. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| UnprocessableEntity: |
| description: The request was well-formed but was unable to be followed due to semantic errors. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| InternalServerError: |
| description: Internal server error. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| ServiceUnavailable: |
| description: Service temporarily unavailable. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| UnexpectedError: |
| description: Unexpected error. |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ProblemDetails' |
| schemas: |
| NsDescriptor: |
| type: string |
| NsPackage: |
| type: string |
| format: binary |
| KeyValuePairs: |
| type: object |
| additionalProperties: |
| type: string |
| CreateNsdInfoRequest: |
| type: object |
| properties: |
| userDefinedData: |
| $ref: '#/components/schemas/KeyValuePairs' |
| NsdOnboardingStateType: |
| type: string |
| enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED] |
| description: | |
| NSD onboarding state: |
| * `CREATED` - The NSD information object is created. |
| * `UPLOADING` - The associated NSD content is being uploaded. |
| * `PROCESSING` - The associated NSD content is being processed, e.g. validation. |
| * `ONBOARDED` - The associated NSD content is on-boarded. |
| NsdOperationalStateType: |
| type: string |
| enum: [ENABLED, DISABLED] |
| description: | |
| NSD operational state: |
| * `ENABLED` - The NSD is enabled. |
| * `DISABLED` - The NSD is disabled. |
| NsdUsageStateType: |
| type: string |
| enum: [IN_USE, NOT_IN_USE] |
| description: | |
| NSD usage state: |
| * `IN_USE` - The NSD is in use. |
| * `NOT_IN_USE` - The NSD is not in use. |
| NsdInfoModifications: |
| type: object |
| properties: |
| nsdOperationalState: |
| $ref: '#/components/schemas/NsdOperationalStateType' |
| userDefinedData: |
| $ref: '#/components/schemas/KeyValuePairs' |
| NsdInfo: |
| type: object |
| properties: |
| id: |
| description: | |
| Identifier of the onboarded individual NS descriptor |
| resource. This identifier is allocated by the NFVO. |
| type: string |
| format: uuid |
| nsdId: |
| description: | |
| This identifier, which is allocated by the NSD |
| designer, identifies the NSD in a globally unique |
| way. It is copied from the NSD content and shall be |
| present after the NSD content is on-boarded. |
| type: string |
| format: uuid |
| nsdName: |
| description: | |
| Name of the onboarded NSD. This information is |
| copied from the NSD content and shall be present |
| after the NSD content is on-boarded. |
| type: string |
| nsdVersion: |
| description: | |
| Version of the on-boarded NSD. This information is |
| copied from the NSD content and shall be present |
| after the NSD content is on-boarded. |
| type: string |
| nsdDesigner: |
| description: | |
| Designer of the on-boarded NSD. This information is |
| copied from the NSD content and shall be present |
| after the NSD content is on-boarded. |
| type: string |
| nsdInvariantId: |
| description: | |
| This identifier, which is allocated by the NSD designer, |
| identifies an NSD in a version independent manner. This |
| information is copied from the NSD content and shall be |
| present after the NSD content is on-boarded. |
| type: string |
| format: uuid |
| vnfPkgIds: |
| description: | |
| List of VNF package identifiers referenced by the on-boarded |
| NS descriptor resource. |
| type: array |
| items: |
| type: string |
| format: uuid |
| pnfdInfoIds: |
| description: | |
| List of PNFD identifiers referenced by the on-boarded NS |
| descriptor resource. |
| type: array |
| items: |
| type: string |
| format: uuid |
| nestedNsdInfoIds: |
| description: | |
| List of NSD identifiers referenced by the on-boarded NS |
| descriptor resource. |
| type: array |
| items: |
| type: string |
| format: uuid |
| nsdOnboardingState: |
| description: | |
| Onboarding state of the individual NS descriptor resource. |
| $ref: '#components/schemas/NsdOnboardingStateType' |
| onboardingFailureDetails: |
| description: | |
| Failure details of current onboarding procedure. It follows |
| the "ProblemDetails" structure. It shall be present when the |
| "nsdOnboardingState" attribute is CREATED and the uploading or |
| processing fails in NFVO. |
| $ref: '#/components/schemas/ProblemDetails' |
| nsdOperationalState: |
| description: | |
| Operational state of the individual NS descriptor resource. This |
| attribute can be modified with the PATCH method. If the value of |
| the nsdOnboardingState attribute is not equal to "ONBOARDED", the |
| value of the nsdOperationalState attribute shall be equal to |
| "DISABLED". |
| $ref: '#components/schemas/NsdOperationalStateType' |
| nsdUsagestate: |
| description: | |
| Usage state of the individual NS descriptor resource. If the value |
| of the nsdOnboardingState attribute is not equal to "ONBOARDED", |
| the value of the nsdUsageState attribute shall be equal to |
| "NOT_IN_USE". |
| $ref: '#components/schemas/NsdUsageStateType' |
| userDefinedData: |
| $ref: '#/components/schemas/KeyValuePairs' |
| _links: |
| description: | |
| Links to resources related to this resource |
| type: string |
| self: |
| description: | |
| URI of this resource |
| type: string |
| format: uri |
| nsd_content: |
| description: | |
| Link to the NSD content resource. |
| type: string |
| format: uri |
| required: |
| - id |
| - nsdOnboardingState |
| - nsdOperationalState |
| - nsdUsageState |
| - _links |
| - self |
| - nsd_content |
| ArrayOfNsdInfo: |
| type: array |
| items: |
| $ref: '#/components/schemas/NsdInfo' |
| ProblemDetails: |
| type: object |
| properties: |
| type: |
| type: string |
| format: uri |
| title: |
| type: string |
| status: |
| type: integer |
| detail: |
| type: string |
| instance: |
| type: string |
| format: uri |
| additionalProperties: true |
| required: |
| - status |
| - detail |
| VnfDescriptor: |
| type: string |
| VnfPackage: |
| type: string |
| format: binary |
| CreateVnfPkgInfoRequest: |
| type: object |
| properties: |
| userDefinedData: |
| $ref: '#/components/schemas/KeyValuePairs' |
| VnfPackageOnboardingStateType: |
| type: string |
| enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED] |
| description: | |
| VNF Package onboarding state: |
| * `CREATED` - The VNF Package information object is created. |
| * `UPLOADING` - The VNF Package is being uploaded. |
| * `PROCESSING` - The VNF Package is being processed, e.g. validation. |
| * `ONBOARDED` - The VNF Package is successfully on-boarded. |
| VnfPackageOperationalStateType: |
| type: string |
| enum: [ENABLED, DISABLED] |
| description: | |
| VNF Package operational state: |
| * `ENABLED` - The VNF Package is enabled. |
| * `DISABLED` - The VNF Package is disabled. |
| VnfPackageUsageStateType: |
| type: string |
| enum: [IN_USE, NOT_IN_USE] |
| description: | |
| VNF Package usage state: |
| * `IN_USE` - The VNF Package is in use. |
| * `NOT_IN_USE` - The VNF Package is not in use. |
| #SoftwareImageFormatType: |
| # type: string |
| # enum: [AKI, AMI, ARI, BARE, DOCKER, OVA, OVF] |
| # description: | |
| # Software image format. 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 |
| VnfPackageSoftwareImageInfo: |
| type: object |
| additionalProperties: true |
| #properties: |
| #id: |
| # description: | |
| # Identifier of the software image, unique in the scope of a VNFD. |
| # type: string |
| #name: |
| # description: | |
| # Name of the software image. |
| # type: string |
| #provider: |
| # description: | |
| # Provider of the software image. |
| # type: string |
| #version: |
| # description: | |
| # Version of the software image. |
| # type: string |
| #checksum: |
| # description: | |
| # Checksum of the software image file. |
| # type: string |
| #containerFormat: |
| # description: | |
| # Container format indicates whether the software image is in a |
| # file format that also contains metadata about the actual |
| # software. |
| # $ref: '#/components/schemas/SoftwareImageFormatType' |
| #diskFormat: |
| # description: | |
| # Disk format of a software image is the format of the underlying |
| # disk image. |
| # $ref: '#/components/schemas/DiskFormatType' |
| # ... |
| VnfPackageArtifactInfo: |
| type: object |
| additionalProperties: true |
| VnfPkgInfoModifications: |
| type: object |
| properties: |
| operationalState: |
| $ref: '#/components/schemas/VnfPackageOperationalStateType' |
| userDefinedData: |
| $ref: '#/components/schemas/KeyValuePairs' |
| VnfPkgInfo: |
| type: object |
| properties: |
| id: |
| description: | |
| Identifier of the VNF package. This identifier is allocated by the NFVO. |
| type: string |
| format: uuid |
| vnfdId: |
| description: | |
| This identifier, which is managed by the VNF provider, identifies |
| the VNF package and the VNFD in a globally unique way. It's |
| copied from the VNFD of the on-boarded VNF package. It shall be |
| present after the VNF package content has been on-boarded and |
| absent otherwise. |
| type: string |
| format: uuid |
| vnfProvider: |
| description: | |
| Deovider of the VNF pacakge and the VNFD. This information is |
| copied from the VNFD. It shall be present after the VNF package |
| content has been on-boarded and absent otherwise. |
| type: string |
| vnfProductName: |
| description: | |
| Name to identify the VNF product. Invariant for the VNF product |
| ligetime. This information is copied from the VNFD. It shall be |
| present after the VNF package content has been on-boarded and |
| absent otherwise. |
| type: string |
| vnfSoftwareVersion: |
| description: | |
| Software version of the VNF. This is changed when there is any |
| change to the software included in the VNF package. This |
| information is copied from the VNFD. It shall be present after the |
| VNF package content has been on-boarded and absent otherwise. |
| type: string |
| vnfdVersion: |
| description: | |
| The version of the VNFD. TSof information is copied from the VNFD. |
| It shall be present after the VNF package content has been |
| on-boarded and absent otherwise. |
| type: string |
| 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. |
| type: string |
| softwareImages: |
| description: | |
| Information about VNF package artifacts that are software images. |
| This attribute shall not be present before the VNF package content |
| is on-boarded. Otherwise, this attribute shall be present unless |
| it has been requested to be excluded per attribute selector. |
| type: array |
| items: |
| $ref: '#/components/schemas/VnfPackageSoftwareImageInfo' |
| additionalArtifacts: |
| description: | |
| Information about VNF package artifacts contained in the VNF |
| package that are not software images. This attribute shall not be |
| present before the VNF package content is on-boarded. Otherwise, |
| this attribute shall be present if the VNF package contains |
| additional artifacts. |
| type: array |
| items: |
| $ref: '#/components/schemas/VnfPackageArtifactInfo' |
| onboardingState: |
| description: | |
| On-boarding state of the VNF package. |
| $ref: '#components/schemas/VnfPackageOnboardingStateType' |
| operationalState: |
| description: | |
| Operational state of the VNF package. If the value of the |
| onboardingState attribute is not equal to "ONBOARDED", the value |
| of the operationalState attribute shall be equal to "DISABLED". |
| $ref: '#components/schemas/VnfPackageOperationalStateType' |
| usageState: |
| description: | |
| Usage state of the VNF package. If the value of the |
| onboardingState attribute is not equal to "ONBOARDED", the value |
| of the usageState attribute shall be equal to "NOT_IN_USE". |
| $ref: '#components/schemas/VnfPackageUsageStateType' |
| userDefinedData: |
| description: | |
| User defined data for the VNF package |
| $ref: '#/components/schemas/KeyValuePairs' |
| _links: |
| description: | |
| Links to resources related to this resource |
| type: string |
| self: |
| description: | |
| URI of this resource |
| type: string |
| format: uri |
| vnfd: |
| description: | |
| Link to the VNFD resource. This link shall be present after the VNF |
| package content is on-boarded. |
| type: string |
| format: uri |
| package_content: |
| description: | |
| Link to the "VNF package content" resource. |
| type: string |
| format: uri |
| required: |
| - id |
| - onboardingState |
| - operationalState |
| - usageState |
| - _links |
| - self |
| - package_content |
| ArrayOfVnfPkgInfo: |
| type: array |
| items: |
| $ref: '#/components/schemas/VnfPkgInfo' |
| UploadVnfPackageFromUriRequest: |
| type: object |
| properties: |
| addressInformation: |
| description: | |
| Address information of the VNF package content. The NFVO can use |
| this address to obtain the VNF package. |
| type: string |
| format: uri |
| userName: |
| description: | |
| User name to be used for authentication. Shall be present if user |
| name is needed but has not been provisioned out of band. |
| type: string |
| password: |
| description: | |
| Password to be used for authentication. Shall be present if password |
| is needed but has not been provisioned out of band. |
| type: string |
| required: |
| - addressInformation |
| requestBodies: |
| CreateNsdInfoRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/CreateNsdInfoRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/CreateNsdInfoRequest' |
| NsdInfoModifications: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/NsdInfoModifications' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/NsdInfoModifications' |
| NsdContent: |
| content: |
| text/plain: |
| schema: |
| $ref: '#/components/schemas/NsDescriptor' |
| application/zip: |
| schema: |
| $ref: '#/components/schemas/NsPackage' |
| CreateVnfPkgInfoRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/CreateVnfPkgInfoRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/CreateVnfPkgInfoRequest' |
| VnfPkgInfoModifications: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfoModifications' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/VnfPkgInfoModifications' |
| VnfPackage: |
| content: |
| application/zip: |
| schema: |
| $ref: '#/components/schemas/VnfPackage' |
| UploadVnfPackageFromUriRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/UploadVnfPackageFromUriRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/UploadVnfPackageFromUriRequest' |
| securitySchemes: |
| bearerAuth: |
| type: http |
| scheme: bearer |
| |