- name: 'NS instances'
description: Management operations of NS instances
paths:
- /nsd/v1/ns_descriptors:
+ '/nsd/v1/ns_descriptors':
get:
tags:
- "NS packages"
responses:
'201':
description: Created
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
content:
application/json:
schema:
$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
- userDefinedData:
- type: object
- additionalProperties:
- type: string
- CreateNsdInfoRequest:
- type: object
- properties:
- userDefinedData:
- $ref: '#/components/schemas/userDefinedData'
- 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.
- * `ENABLED` - The NSD is disabled.
- NsdUsageStateType:
- type: string
- enum: [IN_USE, NOT_IN_USE]
- description: |
- NSD operational 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/userDefinedData'
- 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
- 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:
- $ref: '#components/schemas/NsdOnboardingStateType'
- onboardingFailureDetails:
- $ref: '#/components/schemas/ProblemDetails'
- nsdOperationalState:
- $ref: '#components/schemas/NsdOperationalStateType'
- nsdUsagestate:
- $ref: '#components/schemas/NsdUsageStateType'
- userDefinedData:
- $ref: '#/components/schemas/userDefinedData'
- self:
- type: string
- format: uri
- nsd_content:
- type: string
- format: uri
- required:
- - id
- ArrayOfNsdInfo:
- type: array
- items:
- $ref: '#/components/schemas/NsdInfo'
- # Problem details as described in RFC 7807.
- # Optional fields "type" and "instance", as described in RFC 7807 are not used here.
- 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
- 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'
- securitySchemes:
- bearerAuth:
- type: http
- scheme: bearer
+ '/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
+