blob: f948f70a5ab6f37a039beb0174398c0d967f09a3 [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'
externalDocs:
description: Find out more OSM
url: 'http://osm.etsi.org/wikipub'
components:
responses:
BadRequest:
description: Bad request. The server cannot process the request due to a client error.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
Unauthorized:
description: Authorization information is missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
Forbidden:
description: Not enough permissions to do this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
NotFound:
description: The specified resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
MethodNotAllowed:
description: This method is not supported for the requested resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
NotAcceptable:
description: The requested resource content cannot match the Accept headers sent in the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
Conflict:
description: The operation cannot be executed currently, due to a conflict with the state of the resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
UnprocessableEntity:
description: The request was well-formed but was unable to be followed due to semantic errors.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
InternalServerError:
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
ServiceUnavailable:
description: Service temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
UnexpectedError:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
schemas:
NsDescriptor:
type: string
NsPackage:
type: string
format: binary
KeyValuePairs:
type: object
additionalProperties:
type: string
CreateNsdInfoRequest:
type: object
properties:
userDefinedData:
$ref: '#/components/schemas/KeyValuePairs'
NsdOnboardingStateType:
type: string
enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
description: |
NSD onboarding state:
* `CREATED` - The NSD information object is created.
* `UPLOADING` - The associated NSD content is being uploaded.
* `PROCESSING` - The associated NSD content is being processed, e.g. validation.
* `ONBOARDED` - The associated NSD content is on-boarded.
NsdOperationalStateType:
type: string
enum: [ENABLED, DISABLED]
description: |
NSD operational state:
* `ENABLED` - The NSD is enabled.
* `DISABLED` - The NSD is disabled.
NsdUsageStateType:
type: string
enum: [IN_USE, NOT_IN_USE]
description: |
NSD usage state:
* `IN_USE` - The NSD is in use.
* `NOT_IN_USE` - The NSD is not in use.
NsdInfoModifications:
type: object
properties:
nsdOperationalState:
$ref: '#/components/schemas/NsdOperationalStateType'
userDefinedData:
$ref: '#/components/schemas/KeyValuePairs'
NsdInfo:
type: object
properties:
id:
description: |
Identifier of the onboarded individual NS descriptor
resource. This identifier is allocated by the NFVO.
type: string
format: uuid
nsdId:
description: |
This identifier, which is allocated by the NSD
designer, identifies the NSD in a globally unique
way. It is copied from the NSD content and shall be
present after the NSD content is on-boarded.
type: string
format: uuid
nsdName:
description: |
Name of the onboarded NSD. This information is
copied from the NSD content and shall be present
after the NSD content is on-boarded.
type: string
nsdVersion:
description: |
Version of the on-boarded NSD. This information is
copied from the NSD content and shall be present
after the NSD content is on-boarded.
type: string
nsdDesigner:
description: |
Designer of the on-boarded NSD. This information is
copied from the NSD content and shall be present
after the NSD content is on-boarded.
type: string
nsdInvariantId:
description: |
This identifier, which is allocated by the NSD designer,
identifies an NSD in a version independent manner. This
information is copied from the NSD content and shall be
present after the NSD content is on-boarded.
type: string
format: uuid
vnfPkgIds:
description: |
List of VNF package identifiers referenced by the on-boarded
NS descriptor resource.
type: array
items:
type: string
format: uuid
pnfdInfoIds:
description: |
List of PNFD identifiers referenced by the on-boarded NS
descriptor resource.
type: array
items:
type: string
format: uuid
nestedNsdInfoIds:
description: |
List of NSD identifiers referenced by the on-boarded NS
descriptor resource.
type: array
items:
type: string
format: uuid
nsdOnboardingState:
description: |
Onboarding state of the individual NS descriptor resource.
$ref: '#components/schemas/NsdOnboardingStateType'
onboardingFailureDetails:
description: |
Failure details of current onboarding procedure. It follows
the "ProblemDetails" structure. It shall be present when the
"nsdOnboardingState" attribute is CREATED and the uploading or
processing fails in NFVO.
$ref: '#/components/schemas/ProblemDetails'
nsdOperationalState:
description: |
Operational state of the individual NS descriptor resource. This
attribute can be modified with the PATCH method. If the value of
the nsdOnboardingState attribute is not equal to "ONBOARDED", the
value of the nsdOperationalState attribute shall be equal to
"DISABLED".
$ref: '#components/schemas/NsdOperationalStateType'
nsdUsagestate:
description: |
Usage state of the individual NS descriptor resource. If the value
of the nsdOnboardingState attribute is not equal to "ONBOARDED",
the value of the nsdUsageState attribute shall be equal to
"NOT_IN_USE".
$ref: '#components/schemas/NsdUsageStateType'
userDefinedData:
$ref: '#/components/schemas/KeyValuePairs'
_links:
description: |
Links to resources related to this resource
type: string
self:
description: |
URI of this resource
type: string
format: uri
nsd_content:
description: |
Link to the NSD content resource.
type: string
format: uri
required:
- id
- nsdOnboardingState
- nsdOperationalState
- nsdUsageState
- _links
- self
- nsd_content
ArrayOfNsdInfo:
type: array
items:
$ref: '#/components/schemas/NsdInfo'
ProblemDetails:
type: object
properties:
type:
type: string
format: uri
title:
type: string
status:
type: integer
detail:
type: string
instance:
type: string
format: uri
additionalProperties: true
required:
- status
- detail
VnfDescriptor:
type: string
VnfPackage:
type: string
format: binary
CreateVnfPkgInfoRequest:
type: object
properties:
userDefinedData:
$ref: '#/components/schemas/KeyValuePairs'
VnfPackageOnboardingStateType:
type: string
enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
description: |
VNF Package onboarding state:
* `CREATED` - The VNF Package information object is created.
* `UPLOADING` - The VNF Package is being uploaded.
* `PROCESSING` - The VNF Package is being processed, e.g. validation.
* `ONBOARDED` - The VNF Package is successfully on-boarded.
VnfPackageOperationalStateType:
type: string
enum: [ENABLED, DISABLED]
description: |
VNF Package operational state:
* `ENABLED` - The VNF Package is enabled.
* `DISABLED` - The VNF Package is disabled.
VnfPackageUsageStateType:
type: string
enum: [IN_USE, NOT_IN_USE]
description: |
VNF Package usage state:
* `IN_USE` - The VNF Package is in use.
* `NOT_IN_USE` - The VNF Package is not in use.
#SoftwareImageFormatType:
# type: string
# enum: [AKI, AMI, ARI, BARE, DOCKER, OVA, OVF]
# description: |
# Software image format. Permitted values:
# * `AKI`: a kernel image format
# * `AMI`: a machine image format
# * `ARI`: a ramdisk image format
# * `BARE`: the image does not have a container or metadata envelope
# * `DOCKER`: docker container format
# * `OVA`: OVF package in a tarfile
# * `OVF`: OVF container format
VnfPackageSoftwareImageInfo:
type: object
additionalProperties: true
#properties:
#id:
# description: |
# Identifier of the software image, unique in the scope of a VNFD.
# type: string
#name:
# description: |
# Name of the software image.
# type: string
#provider:
# description: |
# Provider of the software image.
# type: string
#version:
# description: |
# Version of the software image.
# type: string
#checksum:
# description: |
# Checksum of the software image file.
# type: string
#containerFormat:
# description: |
# Container format indicates whether the software image is in a
# file format that also contains metadata about the actual
# software.
# $ref: '#/components/schemas/SoftwareImageFormatType'
#diskFormat:
# description: |
# Disk format of a software image is the format of the underlying
# disk image.
# $ref: '#/components/schemas/DiskFormatType'
# ...
VnfPackageArtifactInfo:
type: object
additionalProperties: true
VnfPkgInfoModifications:
type: object
properties:
operationalState:
$ref: '#/components/schemas/VnfPackageOperationalStateType'
userDefinedData:
$ref: '#/components/schemas/KeyValuePairs'
VnfPkgInfo:
type: object
properties:
id:
description: |
Identifier of the VNF package. This identifier is allocated by the NFVO.
type: string
format: uuid
vnfdId:
description: |
This identifier, which is managed by the VNF provider, identifies
the VNF package and the VNFD in a globally unique way. It's
copied from the VNFD of the on-boarded VNF package. It shall be
present after the VNF package content has been on-boarded and
absent otherwise.
type: string
format: uuid
vnfProvider:
description: |
Deovider of the VNF pacakge and the VNFD. This information is
copied from the VNFD. It shall be present after the VNF package
content has been on-boarded and absent otherwise.
type: string
vnfProductName:
description: |
Name to identify the VNF product. Invariant for the VNF product
ligetime. This information is copied from the VNFD. It shall be
present after the VNF package content has been on-boarded and
absent otherwise.
type: string
vnfSoftwareVersion:
description: |
Software version of the VNF. This is changed when there is any
change to the software included in the VNF package. This
information is copied from the VNFD. It shall be present after the
VNF package content has been on-boarded and absent otherwise.
type: string
vnfdVersion:
description: |
The version of the VNFD. TSof information is copied from the VNFD.
It shall be present after the VNF package content has been
on-boarded and absent otherwise.
type: string
checksum:
description: |
Checksum of the on-boarded VNF package. It shall be present after
the VNF package content has been on-boarded and absent otherwise.
type: string
softwareImages:
description: |
Information about VNF package artifacts that are software images.
This attribute shall not be present before the VNF package content
is on-boarded. Otherwise, this attribute shall be present unless
it has been requested to be excluded per attribute selector.
type: array
items:
$ref: '#/components/schemas/VnfPackageSoftwareImageInfo'
additionalArtifacts:
description: |
Information about VNF package artifacts contained in the VNF
package that are not software images. This attribute shall not be
present before the VNF package content is on-boarded. Otherwise,
this attribute shall be present if the VNF package contains
additional artifacts.
type: array
items:
$ref: '#/components/schemas/VnfPackageArtifactInfo'
onboardingState:
description: |
On-boarding state of the VNF package.
$ref: '#components/schemas/VnfPackageOnboardingStateType'
operationalState:
description: |
Operational state of the VNF package. If the value of the
onboardingState attribute is not equal to "ONBOARDED", the value
of the operationalState attribute shall be equal to "DISABLED".
$ref: '#components/schemas/VnfPackageOperationalStateType'
usageState:
description: |
Usage state of the VNF package. If the value of the
onboardingState attribute is not equal to "ONBOARDED", the value
of the usageState attribute shall be equal to "NOT_IN_USE".
$ref: '#components/schemas/VnfPackageUsageStateType'
userDefinedData:
description: |
User defined data for the VNF package
$ref: '#/components/schemas/KeyValuePairs'
_links:
description: |
Links to resources related to this resource
type: string
self:
description: |
URI of this resource
type: string
format: uri
vnfd:
description: |
Link to the VNFD resource. This link shall be present after the VNF
package content is on-boarded.
type: string
format: uri
package_content:
description: |
Link to the "VNF package content" resource.
type: string
format: uri
required:
- id
- onboardingState
- operationalState
- usageState
- _links
- self
- package_content
ArrayOfVnfPkgInfo:
type: array
items:
$ref: '#/components/schemas/VnfPkgInfo'
UploadVnfPackageFromUriRequest:
type: object
properties:
addressInformation:
description: |
Address information of the VNF package content. The NFVO can use
this address to obtain the VNF package.
type: string
format: uri
userName:
description: |
User name to be used for authentication. Shall be present if user
name is needed but has not been provisioned out of band.
type: string
password:
description: |
Password to be used for authentication. Shall be present if password
is needed but has not been provisioned out of band.
type: string
required:
- addressInformation
requestBodies:
CreateNsdInfoRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateNsdInfoRequest'
application/yaml:
schema:
$ref: '#/components/schemas/CreateNsdInfoRequest'
NsdInfoModifications:
content:
application/json:
schema:
$ref: '#/components/schemas/NsdInfoModifications'
application/yaml:
schema:
$ref: '#/components/schemas/NsdInfoModifications'
NsdContent:
content:
text/plain:
schema:
$ref: '#/components/schemas/NsDescriptor'
application/zip:
schema:
$ref: '#/components/schemas/NsPackage'
CreateVnfPkgInfoRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateVnfPkgInfoRequest'
application/yaml:
schema:
$ref: '#/components/schemas/CreateVnfPkgInfoRequest'
VnfPkgInfoModifications:
content:
application/json:
schema:
$ref: '#/components/schemas/VnfPkgInfoModifications'
application/yaml:
schema:
$ref: '#/components/schemas/VnfPkgInfoModifications'
VnfPackage:
content:
application/zip:
schema:
$ref: '#/components/schemas/VnfPackage'
UploadVnfPackageFromUriRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
application/yaml:
schema:
$ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
securitySchemes:
bearerAuth:
type: http
scheme: bearer