| 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). |
| You can send us your comments and questions to OSM_TECH@list.etsi.org |
| or join the [OpenSourceMANO Slack Workplace](https://join.slack.com/t/opensourcemano/shared_invite/enQtMzQ3MzYzNTQ0NDIyLWVkNTE4ZjZjNWI0ZTQyN2VhOTI1MjViMzU1NWYwMWM3ODI4NTQyY2VlODA2ZjczMWIyYTFkZWNiZmFkM2M2ZDk) |
| 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' |
| '/nslcm/v1/ns_instances': |
| get: |
| tags: |
| - "NS instances" |
| summary: Query information about multiple NS instances |
| description: Query information about multiple NS isntances |
| operationId: getNSinstances |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ArrayOfNsInstance' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/ArrayOfNsInstance' |
| '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 instances" |
| summary: Create a new NS instance resource |
| description: Create a new NS instance resource |
| operationId: addNSinstance |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/CreateNsRequest' |
| responses: |
| '201': |
| description: Created |
| headers: |
| Location: |
| schema: |
| type: string |
| format: uri |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/NsInstance' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/NsInstance' |
| '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' |
| '/nslcm/v1/ns_instances/{nsInstanceId}': |
| get: |
| tags: |
| - "NS instances" |
| summary: Read an individual NS instance resource |
| description: Read an individual NS instance resource |
| operationId: getNSinstance |
| security: |
| - bearerAuth: [] |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/NsInstance' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/NsInstance' |
| '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 instances" |
| summary: Delete an individual NS instance resource |
| description: Delete an individual NS instance resource |
| operationId: deleteNSinstance |
| 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' |
| '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate': |
| post: |
| tags: |
| - "NS instances" |
| summary: Instantiate a NS |
| description: | |
| Instantiate a NS. The precondition is that the NS instance must have |
| been created and must be in NOT_INSTANTIATED state. As a result of the |
| success of this operation, the NFVO creates a "NS Lifecycle Operation |
| Occurrence" resource for the request, and the NS instance state becomes |
| INSTANTIATED. |
| operationId: instantiateNSinstance |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/InstantiateNsRequest' |
| responses: |
| '202': |
| description: Accepted |
| headers: |
| Location: |
| description: | |
| It must point to the new "NS Lifecycle Operation Occurrence" |
| resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" |
| schema: |
| type: string |
| format: uri |
| '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' |
| '/nslcm/v1/ns_instances/{nsInstanceId}/scale': |
| post: |
| tags: |
| - "NS instances" |
| summary: Scale a NS instance |
| description: | |
| Scale a NS instance. The precondition is that the NS instance must have |
| been created and must be in INSTANTIATED state. As a result of the |
| success of this operation, the NFVO creates a "NS Lifecycle Operation |
| Occurrence" resource for the request, and the NS instance state remains |
| INSTANTIATED. |
| operationId: scaleNSinstance |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/ScaleNsRequest' |
| responses: |
| '202': |
| description: Accepted |
| headers: |
| Location: |
| description: | |
| It must point to the new "NS Lifecycle Operation Occurrence" |
| resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" |
| schema: |
| type: string |
| format: uri |
| '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' |
| '/nslcm/v1/ns_instances/{nsInstanceId}/update': |
| post: |
| tags: |
| - "NS instances" |
| summary: Update a NS instance |
| description: | |
| Update a NS instance. The precondition is that the NS instance must have |
| been created and must be in INSTANTIATED state. As a result of the |
| success of this operation, the NFVO creates a "NS Lifecycle Operation |
| Occurrence" resource for the request, and the NS instance state remains |
| INSTANTIATED. |
| operationId: updateNSinstance |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/UpdateNsRequest' |
| responses: |
| '202': |
| description: Accepted |
| headers: |
| Location: |
| description: | |
| It must point to the new "NS Lifecycle Operation Occurrence" |
| resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" |
| schema: |
| type: string |
| format: uri |
| '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' |
| '/nslcm/v1/ns_instances/{nsInstanceId}/heal': |
| post: |
| tags: |
| - "NS instances" |
| summary: Heal a NS instance |
| description: | |
| Heal a NS instance. The precondition is that the NS instance must have |
| been created and must be in INSTANTIATED state. As a result of the |
| success of this operation, the NFVO creates a "NS Lifecycle Operation |
| Occurrence" resource for the request, and the NS instance state remains |
| INSTANTIATED. |
| operationId: healNSinstance |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/HealNsRequest' |
| responses: |
| '202': |
| description: Accepted |
| headers: |
| Location: |
| description: | |
| It must point to the new "NS Lifecycle Operation Occurrence" |
| resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" |
| schema: |
| type: string |
| format: uri |
| '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' |
| '/nslcm/v1/ns_instances/{nsInstanceId}/terminate': |
| post: |
| tags: |
| - "NS instances" |
| summary: Terminate a NS instance |
| description: | |
| Terminate a NS instance. The precondition is that the NS instance must have |
| been created and must be in INSTANTIATED state. As a result of the |
| success of this operation, the NFVO creates a "NS Lifecycle Operation |
| Occurrence" resource for the request, and the NS instance state becomes |
| NOT_INSTANTIATED. |
| operationId: terminateNSinstance |
| security: |
| - bearerAuth: [] |
| requestBody: |
| $ref: '#/components/requestBodies/TerminateNsRequest' |
| responses: |
| '202': |
| description: Accepted |
| headers: |
| Location: |
| description: | |
| It must point to the new "NS Lifecycle Operation Occurrence" |
| resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" |
| schema: |
| type: string |
| format: uri |
| '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 |
| CreateNsRequest: |
| type: object |
| properties: |
| nsdId: |
| description: | |
| Identifier of the NSD that defines the NS instance to be created. |
| type: string |
| format: uuid |
| nsName: |
| description: | |
| Human-readable name of the NS instance to be created. |
| type: string |
| nsDescription: |
| description: | |
| Human-readable description of the NS instance to be created. |
| type: string |
| required: |
| - nsdId |
| - nsName |
| - nsDescription |
| NsStateType: |
| type: string |
| enum: [NOT_INSTANTIATED, INSTANTIATED] |
| description: | |
| State of the NS instance. Permitted values: |
| * `NOT_INSTANTIATED`: The NS instance is terminated or not instantiated. |
| * `INSTANTIATED`: The NS instance is instantiated. |
| NsInstance: |
| type: object |
| properties: |
| id: |
| description: Identifier of the NS instance. |
| type: string |
| format: uuid |
| nsInstanceName: |
| description: Human readable name of the NS instance. |
| type: string |
| nsInstanceDescription: |
| description: Human readable description of the NS instance. |
| type: string |
| nsdId: |
| description: Identifier of the NSD on which the NS instance is based. |
| type: string |
| format: uuid |
| flavourId: |
| description: | |
| Identifier of the NS deployment flavour applied to the NS instance. |
| This attribute shall be present if the nsState attribute value is |
| INSTANTIATED. |
| type: string |
| vnfInstance: |
| description: | |
| Information on constituent VNF(s) of the NS instance. If the |
| "nsState" attribute is INSTANTIATED, at least either one |
| "vnfInstance" attribute or one "nestedNsInstanceId" attribute shall |
| be present. |
| type: array |
| items: |
| $ref: '#/components/schemas/VnfInstance' |
| pnfInfo: |
| description: | |
| Information on the PNF(s) that are part of the NS instance. |
| type: array |
| items: |
| $ref: '#/components/schemas/PnfInfo' |
| virtualLinkInfo: |
| description: | |
| Information on the VL(s) of the NS instance. This attribute shall |
| be present if the nsState attribute value is INSTANTIATED and if |
| the NS instance has specified connectivity. |
| type: array |
| items: |
| $ref: '#/components/schemas/NsVirtualLinkInfo' |
| vnffgInfo: |
| description: | |
| Information on the VNFFG(s) of the NS instance. |
| type: array |
| items: |
| $ref: '#/components/schemas/VnffgInfo' |
| sapInfo: |
| description: | |
| Information on the SAP(s) of the NS instance. |
| type: array |
| items: |
| $ref: '#/components/schemas/SapInfo' |
| nestedNsInstanceId: |
| description: | |
| Identifier of the nested NS(s) of the NS instance. If the "nsState" |
| attribute is INSTANTIATED, at least either one "vnfInstance" |
| attribute or one "nestedNsInstanceId" attribute shall be present. |
| type: array |
| items: |
| type: string |
| format: uuid |
| nsState: |
| description: | |
| The state of the NS instance. |
| $ref: '#components/schemas/NsStateType' |
| nsScaleStatus: |
| description: | |
| Status of each NS scaling aspect declared in the applicable DF, |
| how "big" the NS instance has been scaled w.r.t. that aspect. This |
| attribute shall be present if the nsState attribute value is |
| INSTANTIATED. |
| type: array |
| items: |
| $ref: '#/components/schemas/NsScaleInfo' |
| additionalAffinityOrAntiAffinityRule: |
| description: | |
| Information on the additional affinity or anti-affinity rule from |
| NS instantiation operation. Shall not conflict with rules already |
| specified in the NSD. |
| type: array |
| items: |
| $ref: '#/components/schemas/AffinityOrAntiAffinityRule' |
| _links: |
| description: | |
| Links to resources related to this resource |
| type: string |
| self: |
| description: | |
| URI of this resource |
| type: string |
| format: uri |
| nestedNsInstances: |
| description: | |
| Links to the nested NS instances of the present NS instance. |
| type: array |
| items: |
| type: string |
| format: uri |
| instantiate: |
| description: | |
| Link to the "instantiate" task resource, if the related operation |
| is possible based on the current status of this NS instance |
| resource (i.e. NS instance in NOT_INSTANTIATED state). |
| type: string |
| format: uri |
| terminate: |
| description: | |
| Link to the "terminate" task resource, if the related operation is |
| possible based on the current status of this NS instance resource |
| (i.e. NS instance is in INSTANTIATED state). |
| type: string |
| format: uri |
| update: |
| description: | |
| Link to the "update" task resource, if the related operation is |
| possible based on the current status of this NS instance resource |
| (i.e. NS instance is in INSTANTIATED state). |
| type: string |
| format: uri |
| scale: |
| description: | |
| Link to the "scale" task resource, if the related operation is |
| supported for this NS instance, and is possible based on the |
| current status of this NS instance resource (i.e. NS instance is in |
| INSTANTIATED state). |
| type: string |
| format: uri |
| heal: |
| description: | |
| Link to the "heal" task resource, if the related operation is |
| supported for this NS instance, and is possible based on the |
| current status of this NS instance resource (i.e. NS instance is in |
| INSTANTIATED state). |
| type: string |
| format: uri |
| required: |
| - id |
| - nsInstanceName |
| - nsInstanceDescription |
| - nsdId |
| - nsdInfoId |
| - nsState |
| - _links |
| - self |
| VnfInstance: |
| type: object |
| additionalProperties: true |
| PnfInfo: |
| type: object |
| additionalProperties: true |
| NsVirtualLinkInfo: |
| type: object |
| additionalProperties: true |
| VnffgInfo: |
| type: object |
| additionalProperties: true |
| SapInfo: |
| type: object |
| additionalProperties: true |
| NsScaleInfo: |
| type: object |
| additionalProperties: true |
| AffinityOrAntiAffinityRule: |
| type: object |
| additionalProperties: true |
| SapData: |
| type: object |
| additionalProperties: true |
| AddPnfData: |
| type: object |
| additionalProperties: true |
| VnfInstanceData: |
| type: object |
| additionalProperties: true |
| VnfLocationConstraint: |
| type: object |
| additionalProperties: true |
| ParamsForVnf: |
| type: object |
| additionalProperties: true |
| InstantiateNsRequest: |
| type: object |
| properties: |
| nsFlavourId: |
| description: Identifier of the NS deployment flavour to be instantiated. |
| type: string |
| sapData: |
| description: Create data concerning the SAPs of this NS. |
| type: array |
| items: |
| $ref: '#/components/schemas/SapData' |
| addpnfData: |
| description: Information on the PNF(s) that are part of this NS. |
| type: array |
| items: |
| $ref: '#/components/schemas/AddPnfData' |
| vnfInstanceData: |
| description: | |
| Specify an existing VNF instance to be used in the NS. If needed, |
| the VNF Profile to be used for this VNF instance is also provided. |
| type: array |
| items: |
| $ref: '#/components/schemas/VnfInstanceData' |
| nestedNsInstanceId: |
| description: | |
| Specify an existing NS instance to be used as a nested NS within the NS. |
| type: array |
| items: |
| type: string |
| format: uuid |
| localizationLanguage: |
| description: | |
| Defines the location constraints for the VNF to be instantiated as part of |
| the NS instantiation. An example can be a constraint for the VNF to be in a |
| specific geographic location. |
| type: array |
| items: |
| $ref: '#/components/schemas/VnfLocationConstraint' |
| additionalParamsForNs: |
| description: | |
| Allows the OSS/BSS to provide additional parameter(s) at the NS level |
| (as opposed to the VNF level, which is covered in additionalParamsForVnf). |
| $ref: '#/components/schemas/KeyValuePairs' |
| additionalParamsForVnf: |
| description: | |
| Allows the OSS/BSS to provide additional parameter(s) per VNF instance |
| (as opposed to the NS level, which is covered in additionalParamsForNs). |
| This is for VNFs that are to be created by the NFVO as part of the NS |
| instantiation and not for existing VNF that are referenced for reuse. |
| type: array |
| items: |
| $ref: '#/components/schemas/ParamsForVnf' |
| startTime: |
| description: | |
| Timestamp indicating the earliest time to instantiate the NS. |
| Cardinality "0" indicates the NS instantiation takes place immediately. |
| type: string |
| format: date-time |
| nsInstantiationLevelId: |
| description: | |
| Identifies one of the NS instantiation levels declared in the DF applicable |
| to this NS instance. If not present, the default NS instantiation level as |
| declared in the NSD shall be used. |
| type: string |
| additionalAffinityOrAntiAffiniityRule: |
| description: | |
| Specifies additional affinity or anti-affinity constraint for the VNF instances |
| to be instantiated as part of the NS instantiation. Shall not conflict with rules |
| already specified in the NSD. |
| type: array |
| items: |
| $ref: '#/components/schemas/AffinityOrAntiAffinityRule' |
| required: |
| - nsFlavourId |
| UpdateNsRequest: |
| type: object |
| properties: |
| updateType: |
| type: string |
| enum: [ ADD_VNF, REMOVE_VNF, INSTANTIATE_VNF, CHANGE_VNF_DF, |
| OPERATE_VNF, MODIFY_VNF_INFORMATION, CHANGE_EXTERNAL_VNF_CONNECTIVITY, |
| REMOVE_SAP, ADD_NESTED_NS, REMOVE_NESTED_NS, ASSOC_NEW_NSD_VERSION, |
| MOVE_VNF, ADD_VNFFG, REMOVE_VNFFG, UPDATE_VNFFG, CHANGE_NS_DF, ADD_PNF, |
| MODIFY_PNF, REMOVE_PNF ] |
| description: | |
| 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) |
| * `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_VNFFG`: Adding VNFFG(s) |
| * `REMOVE_VNFFG`: Removing VNFFG(s) |
| * `UPDATE_VNFFG`: Updating VNFFG(s) |
| * `CHANGE_NS_DF`: Changing NS DF |
| * `ADD_PNF`: Adding PNF |
| * `MODIFY_PNF`: Modifying PNF |
| * `REMOVE_PNF`: Removing PNF |
| # Specific properties are required for each updateType. Pending to be added. |
| additionalProperties: true |
| required: |
| - updateType |
| ScaleNsRequest: |
| type: object |
| additionalProperties: true |
| HealNsData: |
| type: object |
| additionalProperties: true |
| HealVnfData: |
| type: object |
| additionalProperties: true |
| HealNsRequest: |
| type: object |
| properties: |
| healNsData: |
| description: | |
| Provides the information needed to heal an NS. Either the parameter healNsData |
| or the parameter healVnfData, but not both shall be provided. |
| $ref: '#/components/schemas/HealNsData' |
| healVnfData: |
| description: | |
| Provides the information needed to heal a VNF. Either the parameter healNsData |
| or the parameter healVnfData, but not both shall be provided. |
| type: array |
| items: |
| $ref: '#/components/schemas/HealVnfData' |
| TerminateNsRequest: |
| type: object |
| properties: |
| terminationTime: |
| description: | |
| Timestamp indicating the end time of the NS, i.e. the NS will be terminated |
| automatically at this timestamp. Cardinality "0" indicates the NS termination |
| takes place immediately. |
| type: string |
| format: date-time |
| ArrayOfNsInstance: |
| type: array |
| items: |
| $ref: '#/components/schemas/NsInstance' |
| 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' |
| CreateNsRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/CreateNsRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/CreateNsRequest' |
| InstantiateNsRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/InstantiateNsRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/InstantiateNsRequest' |
| ScaleNsRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/ScaleNsRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/ScaleNsRequest' |
| UpdateNsRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/UpdateNsRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/UpdateNsRequest' |
| HealNsRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/HealNsRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/HealNsRequest' |
| TerminateNsRequest: |
| content: |
| application/json: |
| schema: |
| $ref: '#/components/schemas/TerminateNsRequest' |
| application/yaml: |
| schema: |
| $ref: '#/components/schemas/TerminateNsRequest' |
| securitySchemes: |
| bearerAuth: |
| type: http |
| scheme: bearer |
| |
| |