blob: 5e00a2a935b02dac9d7e3b1d05adb88a6524a446 [file] [log] [blame]
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'
'/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