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