X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FSOL005.git;a=blobdiff_plain;f=osm-openapi.yaml;h=594becb991b0705eedf85fbcdaf86adcf662bbfb;hp=2daaada22de6616b4eb58214d6a58eb19d9deca7;hb=HEAD;hpb=69385fc84a489ef98570571edf16d35d9eb527b5 diff --git a/osm-openapi.yaml b/osm-openapi.yaml index 2daaada..e9eaad4 100644 --- a/osm-openapi.yaml +++ b/osm-openapi.yaml @@ -1,7 +1,9 @@ openapi: 3.0.0 + servers: - description: OSM NB API - url: https://osm.etsi.org/nbapi/v1.0.0 + url: 'https://osm.etsi.org/nbapi/v1.0.0' + info: description: | This is Open Source MANO Northbound API featuring ETSI NFV SOL005. @@ -15,6 +17,7 @@ info: 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 @@ -22,7 +25,31 @@ tags: description: Management operations of NS descriptors and packages - name: 'NS instances' description: Management operations of NS instances + - name: 'NetSlice templates' + description: Management operations of NetSlice Templates + - name: 'NetSlice instances' + description: Management operations of NetSlice Instances + - name: 'NS Performance Management' + description: Management operations related to Performance Mangement of NS instances + - name: 'Physical Data Units (PDU)' + description: Management operations of PDUs + - name: 'Authentication' + description: Authentication operations + - name: 'Identity' + description: Management operations of users, projects and roles + - name: 'Infrastructure' + description: Management operations of VIM, VIM accounts, WIM and SDN controllers + - name: 'Repositories' + description: Management operations of repositories + - name: 'Admin' + description: Management operations of Administration items + +security: + - bearerAuth: [] + paths: + +# BEGIN NS Packages '/nsd/v1/ns_descriptors': get: tags: @@ -30,8 +57,6 @@ paths: summary: Query information about multiple NS descriptor resources description: Query information about multiple NS descriptor resources operationId: getNSDs - security: - - bearerAuth: [] responses: '200': description: OK @@ -72,8 +97,6 @@ paths: summary: Create a new NS descriptor resource description: Create a new NS descriptor resource operationId: addNSD - security: - - bearerAuth: [] requestBody: $ref: '#/components/requestBodies/CreateNsdInfoRequest' responses: @@ -87,10 +110,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/NsdInfo' + $ref: '#/components/schemas/ObjectId' application/yaml: schema: - $ref: '#/components/schemas/NsdInfo' + $ref: '#/components/schemas/ObjectId' '400': $ref: '#/components/responses/BadRequest' '401': @@ -116,14 +139,19 @@ paths: default: $ref: '#/components/responses/UnexpectedError' '/nsd/v1/ns_descriptors/{nsdInfoId}': + parameters: + - name: nsdInfoId + in: path + required: true + description: NSD Info ID + schema: + type: string 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 @@ -164,8 +192,6 @@ paths: summary: Delete an individual NS descriptor resource description: Delete an individual NS descriptor resource operationId: deleteNSD - security: - - bearerAuth: [] responses: '204': description: No Content @@ -196,23 +222,14 @@ paths: 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 + summary: Modify the data of an individual NS descriptor resource + description: Modify the 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' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -238,25 +255,36 @@ paths: default: $ref: '#/components/responses/UnexpectedError' '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content': + parameters: + - name: nsdInfoId + in: path + required: true + description: NSD Info ID + schema: + type: string 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' + content: + application/zip: + schema: + $ref: '#/components/schemas/NsPackage' '206': description: Partial Content headers: Content-Range: schema: type: string - $ref: '#/components/requestBodies/NsdContent' + content: + application/zip: + schema: + $ref: '#/components/schemas/NsPackage' '400': $ref: '#/components/responses/BadRequest' '401': @@ -287,10 +315,8 @@ paths: summary: Upload the content of a NSD description: Upload the content of a NSD operationId: updateNSDcontent - security: - - bearerAuth: [] requestBody: - $ref: '#/components/requestBodies/NsdContent' + $ref: '#/components/requestBodies/NsPackage' responses: '202': description: Accepted @@ -320,25 +346,45 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/vnfpkgm/v1/vnf_packages': + '/nsd/v1/ns_descriptors/{nsdInfoId}/artifacts/{artifactPath}': + parameters: + - name: nsdInfoId + in: path + required: true + description: NS Package ID + schema: + type: string + - name: artifactPath + in: path + required: true + description: Artifact Path + schema: + type: string get: tags: - - "VNF packages" - summary: Query information about multiple VNF package resources - description: Query information about multiple VNF package resoureces - operationId: getVnfPkgs - security: - - bearerAuth: [] + - "NS packages" + summary: Fetch individual NS package artifact + description: Fetch individual NS package artifact + operationId: getNsPkgArtifact responses: '200': description: OK content: - application/json: + application/octet-stream: schema: - $ref: '#/components/schemas/ArrayOfVnfPkgInfo' - application/yaml: + type: string + format: binary + '206': + description: Partial Content + headers: + Content-Range: schema: - $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + type: string + content: + application/octet-stream: + schema: + type: string + format: binary '400': $ref: '#/components/responses/BadRequest' '401': @@ -363,31 +409,27 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - post: + '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd': + parameters: + - name: nsdInfoId + in: path + required: true + description: NS Package ID + schema: + type: string + get: 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' + - "NS packages" + summary: Read NSD of an on-boarded NS package + description: Read NSD of an on-boarded NS package + operationId: getNsPkgNsd responses: - '201': - description: Created - headers: - Location: - schema: - type: string - format: uri + '200': + description: OK content: - application/json: - schema: - $ref: '#/components/schemas/VnfPkgInfo' - application/yaml: + text/plain: schema: - $ref: '#/components/schemas/VnfPkgInfo' + $ref: '#/components/schemas/NsDescriptor' '400': $ref: '#/components/responses/BadRequest' '401': @@ -412,25 +454,37 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/vnfpkgm/v1/vnf_packages/{vnfPkgId}': - get: + '/nsd/v1/ns_descriptors_content': + post: 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: [] + - "NS packages" + summary: Upload a NS package by providing the content of the NS package + description: Upload a NS package by providing the content of the NS package + operationId: uploadNsPkgsContent + requestBody: + content: + application/zip: + schema: + $ref: '#/components/schemas/NsPackage' responses: - '200': - description: OK + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri content: application/json: schema: - $ref: '#/components/schemas/VnfPkgInfo' + $ref: '#/components/schemas/ObjectId' application/yaml: schema: - $ref: '#/components/schemas/VnfPkgInfo' + $ref: '#/components/schemas/ObjectId' + '202': + description: Accepted + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -455,17 +509,33 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - delete: + get: tags: - - "VNF packages" - summary: Delete an individual VNF package resource - description: Delete an individual VNF package resource - operationId: deleteVnfPkg - security: - - bearerAuth: [] + - "NS packages" + summary: Query information about multiple NS package resources + description: Query information about multiple NS package resources + operationId: getNsPkgsContent responses: - '204': - description: No Content + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNsdInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNsdInfo' + '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': @@ -490,26 +560,30 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - patch: + '/nsd/v1/ns_descriptors_content/{nsdInfoId}': + parameters: + - name: nsdInfoId + in: path + required: true + description: NS Package ID + schema: + type: string + get: 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' + - "NS packages" + summary: Read information about an individual NS package resource + description: Read information about an individual NS package resource + operationId: getNsPkgsIdContent responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/VnfPkgInfoModifications' + $ref: '#/components/schemas/NsdInfo' application/yaml: schema: - $ref: '#/components/schemas/VnfPkgInfoModifications' + $ref: '#/components/schemas/NsdInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -534,22 +608,17 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd': - get: + put: 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: [] + - "NS packages" + summary: Modify an individual NS package resource + description: Modify an individual NS package resource + operationId: updateNsPkgsIdContent + requestBody: + $ref: '#/components/requestBodies/NsdInfoModifications' responses: - '200': - description: OK - content: - text/plain: - schema: - $ref: '#/components/schemas/VnfDescriptor' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -574,32 +643,15 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content': - get: + delete: tags: - - "VNF packages" - summary: Fetch an on-boarded VNF package - description: Fetch an on-boarded VNF package - operationId: getVnfPkgContent - security: - - bearerAuth: [] + - "NS packages" + summary: Delete an individual NS package resource + description: Delete an individual NS package resource + operationId: deleteNSPkgsIdContent 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' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -624,21 +676,26 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - put: +# END NS Packages + +# BEGIN VNF Packages + '/vnfpkgm/v1/vnf_packages': + get: 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' + summary: Query information about multiple VNF package resources + description: Query information about multiple VNF package resources + operationId: getVnfPkgs responses: - '202': - description: Accepted - #'204': - # description: No Content + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -663,22 +720,29 @@ paths: $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: [] + summary: Create a new VNF package resource + description: Create a new VNF package resource + operationId: addVnfPkg requestBody: - $ref: '#/components/requestBodies/UploadVnfPackageFromUriRequest' + $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest' responses: - '202': - description: Accepted - #'204': - # description: No Content + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' '400': $ref: '#/components/responses/BadRequest' '401': @@ -703,34 +767,30 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string get: tags: - "VNF packages" - summary: Fetch individual VNF package artifact - description: Fetch individual VNF package artifact - operationId: getVnfPkgArtifact - security: - - bearerAuth: [] + summary: Read information about an individual VNF package resource + description: Read information about an individual VNF package resource + operationId: getVnfPkg responses: '200': description: OK content: - application/octet-stream: - schema: - type: string - format: binary - '206': - description: Partial Content - headers: - Content-Range: + application/json: schema: - type: string - content: - application/octet-stream: + $ref: '#/components/schemas/VnfPkgInfo' + application/yaml: schema: - type: string - format: binary + $ref: '#/components/schemas/VnfPkgInfo' '400': $ref: '#/components/responses/BadRequest' '401': @@ -755,25 +815,15 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances': - get: + delete: tags: - - "NS instances" - summary: Query information about multiple NS instances - description: Query information about multiple NS isntances - operationId: getNSinstances - security: - - bearerAuth: [] + - "VNF packages" + summary: Delete an individual VNF package resource + description: Delete an individual VNF package resource + operationId: deleteVnfPkg responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ArrayOfNsInstance' - application/yaml: - schema: - $ref: '#/components/schemas/ArrayOfNsInstance' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -798,31 +848,17 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - post: + patch: tags: - - "NS instances" - summary: Create a new NS instance resource - description: Create a new NS instance resource - operationId: addNSinstance - security: - - bearerAuth: [] + - "VNF packages" + summary: Modify an individual VNF package resource + description: Modify an individual VNF package resource + operationId: updateVnfPkg requestBody: - $ref: '#/components/requestBodies/CreateNsRequest' + $ref: '#/components/requestBodies/VnfPkgInfoModifications' 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' + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -847,25 +883,27 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances/{nsInstanceId}': + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string get: tags: - - "NS instances" - summary: Read an individual NS instance resource - description: Read an individual NS instance resource - operationId: getNSinstance - security: - - bearerAuth: [] + - "VNF packages" + summary: Read VNFD of an on-boarded VNF package + description: Read VNFD of an on-boarded VNF package + operationId: getVnfPkgVnfd responses: '200': description: OK content: - application/json: - schema: - $ref: '#/components/schemas/NsInstance' - application/yaml: + text/plain: schema: - $ref: '#/components/schemas/NsInstance' + $ref: '#/components/schemas/VnfDescriptor' '400': $ref: '#/components/responses/BadRequest' '401': @@ -890,17 +928,37 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - delete: + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string + get: tags: - - "NS instances" - summary: Delete an individual NS instance resource - description: Delete an individual NS instance resource - operationId: deleteNSinstance - security: - - bearerAuth: [] + - "VNF packages" + summary: Fetch an on-boarded VNF package + description: Fetch an on-boarded VNF package + operationId: getVnfPkgContent responses: - '204': - description: No Content + '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': @@ -925,33 +983,22 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate': - post: + put: 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: [] + - "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 requestBody: - $ref: '#/components/requestBodies/InstantiateNsRequest' + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' 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 + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -976,33 +1023,45 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances/{nsInstanceId}/scale': - post: + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string + - name: artifactPath + in: path + required: true + description: Artifact Path + schema: + type: string + get: 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' + - "VNF packages" + summary: Fetch individual VNF package artifact + description: Fetch individual VNF package artifact + operationId: getVnfPkgArtifact responses: - '202': - description: Accepted + '200': + description: OK + content: + application/octet-stream: + schema: + type: string + format: binary + '206': + description: Partial Content headers: - Location: - description: | - It must point to the new "NS Lifecycle Operation Occurrence" - resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" + Content-Range: schema: type: string - format: uri + content: + application/octet-stream: + schema: + type: string + format: binary '400': $ref: '#/components/responses/BadRequest' '401': @@ -1027,33 +1086,37 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances/{nsInstanceId}/update': + '/vnfpkgm/v1/vnf_packages_content': 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: [] + - "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: uploadVnfPkgsContent requestBody: - $ref: '#/components/requestBodies/UpdateNsRequest' + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' responses: - '202': - description: Accepted + '201': + description: Created 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 + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '202': + description: Accepted + '204': + description: No Content '400': $ref: '#/components/responses/BadRequest' '401': @@ -1078,33 +1141,33 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances/{nsInstanceId}/heal': - post: + get: 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' + - "VNF packages" + summary: Query information about multiple VNF package resources + description: Query information about multiple VNF package resources + operationId: getVnfPkgsContent responses: - '202': - description: Accepted + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + '206': + description: Partial Content headers: - Location: - description: | - It must point to the new "NS Lifecycle Operation Occurrence" - resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}" + Content-Range: schema: type: string - format: uri + content: + application/octet-stream: + schema: + type: string + format: binary '400': $ref: '#/components/responses/BadRequest' '401': @@ -1129,35 +1192,32 @@ paths: $ref: '#/components/responses/UnexpectedError' default: $ref: '#/components/responses/UnexpectedError' - '/nslcm/v1/ns_instances/{nsInstanceId}/terminate': - post: + '/vnfpkgm/v1/vnf_packages_content/{packageContentId}': + parameters: + - name: packageContentId + in: path + required: true + description: VNF Package Content ID + schema: + type: string + get: 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' + - "VNF packages" + summary: Read information about an individual VNF package resource + description: Read information about an individual VNF package resource + operationId: getVnfPkgsIdContent 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}" + '200': + description: OK + content: + application/json: schema: - type: string - format: uri - '400': - $ref: '#/components/responses/BadRequest' + $ref: '#/components/schemas/VnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VnfPkgInfo' + '400': + $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': @@ -1180,858 +1240,8007 @@ paths: $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. + put: + tags: + - "VNF packages" + summary: Modify an individual VNF package resource + description: Modify an individual VNF package resource + operationId: updateVnfPkgsIdContent + requestBody: + $ref: '#/components/requestBodies/VnfPkgInfoModifications' + 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' + delete: + tags: + - "VNF packages" + summary: Delete an individual VNF package resource + description: Delete an individual VNF package resource + operationId: deleteVnfPkgsIdContent + 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' +# END VNF Packages + +# BEGIN NS Instances + '/nslcm/v1/ns_instances': + get: + tags: + - "NS instances" + summary: Query information about multiple NS instances + description: Query information about multiple NS isntances + operationId: getNSinstances + 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 + requestBody: + $ref: '#/components/requestBodies/InstantiateNsRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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}': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + - name: vcaStatusRefresh + in: query + required: false + description: Set to true if vca status needs to be refreshed. + schema: + type: boolean + get: + tags: + - "NS instances" + summary: Read an individual NS instance resource + description: Read an individual NS instance resource + operationId: getNSinstance + 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 + 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': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + 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 + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + 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 + 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}/heal': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + 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 + 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}/migrate': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Migrate VNFs in a NS instance + description: | + Migrate the VNFs and VDUs in 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: migrateNSinstance + requestBody: + $ref: '#/components/requestBodies/NSinstanceMigrateRequest' + 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': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + 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 + requestBody: + # Request data is not required + $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 + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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}/action': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Execute an action on a NS instance + description: | + Execute an action on a NS instance. + The NS instance must have been created and must be in INSTANTIATED state. + operationId: actionOnNSinstance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NSinstanceActionRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NSinstanceActionRequest' + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + 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 + 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}/verticalscale': + parameters: + - name: nsInstanceId + in: path + required: true + description: NS Instance ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Vertical scale a NS instance + description: + Execute an verticalscale on a NS instance. + The NS instance must have been created and must be in INSTANTIATED state. + operationId: verticalscaleNSinstance + requestBody: + $ref: '#/components/requestBodies/VerticalscaleNsRequest' + 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_content': + get: + tags: + - "NS instances" + summary: Query information about multiple NS instances + description: Query information about multiple NS isntances + operationId: getNSinstancesContent + 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 + description: Create a new NS instance + operationId: createNSinstanceContent + requestBody: + $ref: '#/components/requestBodies/InstantiateNsRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNSinstanceContentResponse' + application/yaml: + schema: + $ref: '#/components/schemas/CreateNSinstanceContentResponse' + '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_content/{nsInstanceContentId}': + parameters: + - name: nsInstanceContentId + in: path + required: true + description: NS Instance Content ID + schema: + type: string + get: + tags: + - "NS instances" + summary: Read an individual NS instance resource + description: Read an individual NS instance resource + operationId: getNSinstanceContent + 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: deleteNSinstanceContent + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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_lcm_op_occs': + get: + tags: + - "NS instances" + summary: Query information about multiple NS LCM Operation Occurrences + description: Query information about multiple NS LCM Operation Occurrences + operationId: getNSLCMOpOccs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNsLcmOpOcc' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNsLcmOpOcc' + '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_lcm_op_occs/{nsLcmOpOccId}': + parameters: + - name: nsLcmOpOccId + in: path + required: true + description: NS LCM Operation Occurrence ID + schema: + type: string + get: + tags: + - "NS instances" + summary: Query information about an individual NS LCM Operation Occurrence + description: Query information about an individual NS LCM Operation Occurrence + operationId: getNSLCMOpOcc + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsLcmOpOcc' + application/yaml: + schema: + $ref: '#/components/schemas/NsLcmOpOcc' + '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_lcm_op_occs/{nsLcmOpOccId}/cancel': + parameters: + - name: nsLcmOpOccId + in: path + required: true + description: NS LCM Operation Occurrence ID + schema: + type: string + post: + tags: + - "NS instances" + summary: Cancel an ongoing NS lifecycle management operation + description: Cancel an ongoing NS lifecycle management operation while it is being executed or rolled back + operationId: cancelNSLCMOpOcc + requestBody: + $ref: '#/components/requestBodies/CancelNSLCMOpOccRequest' + responses: + '202': + description: Accepted + '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/vnf_instances': + get: + tags: + - "NS instances" + summary: Query information about multiple VNF Instances + description: Query information about multiple VNF Instances + operationId: getVnfInstances + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVnfInstanceInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVnfInstanceInfo' + '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/vnf_instances/{vnfInstanceId}': + parameters: + - name: vnfInstanceId + in: path + required: true + description: VNF Instance ID + schema: + type: string + get: + tags: + - "NS instances" + summary: Query information about an individual VNF Instance + description: Query information about an individual VNF Instance + operationId: getVnfInstance + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VnfInstanceInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VnfInstanceInfo' + '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/subscriptions': + get: + tags: + - NS instances + summary: Query information about multiple NS instance subscription + description: Query information about multiple NS instance subscription + operationId: getNsSubcriptions + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo' + '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 subscription for the Network service + description: Create a new subscription for the Network service + operationId: addNsSubcriptions + requestBody: + $ref: '#/components/requestBodies/NslcmSubscriptionRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: object + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + '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/subscriptions/{nsSubscriptionsId}': + parameters: + - name: nsSubscriptionsId + in: path + required: true + description: Network Service Subscription ID + schema: + type: string + get: + tags: + - NS instances + summary: Read information about an individual Network Service Subscription + description: Read information about an individual Network Service Subscription + operationId: getNsSubcriptionId + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionInfo' + '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 Network Service Subscription + description: Delete an individual Network Service Subscription + operationId: deleteNsSubcriptionId + 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' +# END NS Instances + +# BEGIN Alarms + '/nsfm/v1/alarms': + get: + tags: + - "Alarms" + summary: Query information about multiple alarms + description: Query information about multiple alarms + operationId: getAlarms + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfAlarm' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfAlarm' + '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' + '/nsfm/v1/alarms/{uuid}': + parameters: + - name: uuid + in: path + required: true + description: Alarm UUID + schema: + type: string + get: + tags: + - "Alarms" + summary: Read an individual Alarm + description: Read an individual Alarm + operationId: getAlarm + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Alarm' + application/yaml: + schema: + $ref: '#/components/schemas/Alarm' + '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: + - "Alarms" + summary: Modify the data of an individual Alarm + description: Modify the data of an individual Alarm + operationId: updateAlarm + requestBody: + $ref: '#/components/requestBodies/AlarmInfoModifications' + 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' +# END Alarms + +# BEGIN NetSlice Templates + '/nst/v1/netslice_templates': + get: + tags: + - "NetSlice templates" + summary: Query information about multiple NetSlice template resources + description: Query information about multiple NetSlice template resources + operationId: getNSTs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNstInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNstInfo' + '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: + - "NetSlice templates" + summary: Create a new NetSlice template resource + description: Create a new NetSlice template resource + operationId: addNST + requestBody: + $ref: '#/components/requestBodies/CreateNstInfoRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/nst/v1/netslice_templates/{netsliceTemplateId}': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: + tags: + - "NetSlice templates" + summary: Read information about an individual NetSlice template resource + description: Read information about an individual NetSlice template resource + operationId: getNST + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NstInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NstInfo' + '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: + - "NetSlice templates" + summary: Delete an individual NetSlice template resource + description: Delete an individual NetSlice template resource + operationId: deleteNST + 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' + '/nst/v1/netslice_templates/{netsliceTemplateId}/artifacts/{artifactPath}': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + - name: artifactPath + in: path + required: true + description: Artifact Path + schema: + type: string + get: + tags: + - "NetSlice templates" + summary: Fetch individual NetSlice Template artifact + description: Fetch individual NetSlice Template artifact + operationId: getNstArtifact + 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' + '/nst/v1/netslice_templates/{netsliceTemplateId}/nst': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: + tags: + - "NetSlice templates" + summary: Read NST of an on-boarded NetSlice Template + description: Read NST of an on-boarded NetSlice Template + operationId: getNstNst + responses: + '200': + description: OK + content: + text/plain: + schema: + $ref: '#/components/schemas/NetSliceTemplate' + '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' + '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content': + parameters: + - name: netsliceTemplateId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: + tags: + - "NetSlice templates" + summary: Fetch the content of a NST + description: Fetch the content of a NST + operationId: getNSTcontent + responses: + '200': + description: OK + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + '206': + description: Partial Content + headers: + Content-Range: + schema: + type: string + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + '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: + - "NetSlice templates" + summary: Upload the content of a NST + description: Upload the content of a NST + operationId: updateNSTcontent + requestBody: + $ref: '#/components/requestBodies/NetSlicePackage' + 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' + '/nst/v1/netslice_templates_content': + post: + tags: + - "NetSlice templates" + summary: Upload a NetSlice package by providing the content of the NetSlice package + description: Upload a NetSlice package by providing the content of the NetSlice package + operationId: uploadNstContent + requestBody: + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + get: + tags: + - "NetSlice templates" + summary: Query information about multiple NetSlice Template resources + description: Query information about multiple NetSlice Template resources + operationId: getNstContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNstInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNstInfo' + '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' + '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}': + parameters: + - name: netsliceTemplateContentId + in: path + required: true + description: NetSlice Template ID + schema: + type: string + get: + tags: + - "NetSlice templates" + summary: Read information about an individual NetSlice Template resource + description: Read information about an individual NetSlice Template resource + operationId: getNstIdContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NstInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NstInfo' + '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: + - "NetSlice templates" + summary: Modify an individual NetSlice Template resource + description: Modify an individual NetSlice Template resource + operationId: updateNstIdContent + requestBody: + $ref: '#/components/requestBodies/NstInfoModifications' + 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' + delete: + tags: + - "NetSlice templates" + summary: Delete an individual NetSlice Template resource + description: Delete an individual NetSlice Template resource + operationId: deleteNstIdContent + 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' +# END NetSlice Templates + +# BEGIN NetSlice Instances + '/nsilcm/v1/netslice_instances': + get: + tags: + - "NetSlice instances" + summary: Query information about multiple NetSlice instances + description: Query information about multiple NetSlice isntances + operationId: getNSIs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNetSliceInstance' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNetSliceInstance' + '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: + - "NetSlice instances" + summary: Create a new NetSlice instance resource + description: Create a new NetSlice instance resource + operationId: addNSI + requestBody: + $ref: '#/components/requestBodies/InstantiateNsiRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}': + parameters: + - name: netsliceInstanceId + in: path + required: true + description: NetSlice Instance ID + schema: + type: string + get: + tags: + - "NetSlice instances" + summary: Read an individual NetSlice instance resource + description: Read an individual NetSlice instance resource + operationId: getNSI + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NetSliceInstance' + application/yaml: + schema: + $ref: '#/components/schemas/NetSliceInstance' + '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: + - "NetSlice instances" + summary: Delete an individual NetSlice instance resource + description: Delete an individual NetSlice instance resource + operationId: deleteNSI + 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' + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate': + parameters: + - name: netsliceInstanceId + in: path + required: true + description: NetSlice Instance ID + schema: + type: string + post: + tags: + - "NetSlice instances" + summary: Instantiate a NetSlice + description: | + Instantiate a NetSlice. The precondition is that the NetSlice 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 "NetSlice Lifecycle + Operation Occurrence" resource for the request, and the NS instance state + becomes INSTANTIATED. + operationId: instantiateNSI + requestBody: + $ref: '#/components/requestBodies/InstantiateNsiRequest' + responses: + '202': + description: Accepted + headers: + Location: + description: | + It must point to the new "NetSlice Lifecycle Operation Occurrence" + resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}" + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate': + parameters: + - name: netsliceInstanceId + in: path + required: true + description: NetSlice Instance ID + schema: + type: string + post: + tags: + - "NetSlice instances" + summary: Terminate a NetSlice instance + description: | + Terminate a NetSlice instance. The precondition is that the NetSlice instance + must have been created and must be in INSTANTIATED state. As a result of the + success of this operation, the NFVO creates a "NetSlice Lifecycle Operation + Occurrence" resource for the request, and the NetSlice instance state becomes + NOT_INSTANTIATED. + operationId: terminateNSI + requestBody: + # Request data is not required + $ref: '#/components/requestBodies/TerminateNsiRequest' + responses: + '202': + description: Accepted + headers: + Location: + description: | + It must point to the new "NetSlice Lifecycle Operation Occurrence" + resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}" + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/action': + parameters: + - name: netsliceInstanceId + in: path + required: true + description: NetSlice Instance ID + schema: + type: string + post: + tags: + - "NetSlice instances" + summary: Execute an action on a NetSlice instance + description: | + Execute an action on a NetSlice instance. + The NetSlice instance must have been created and must be in INSTANTIATED state. + operationId: actionOnNSI + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NsiActionRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NsiActionRequest' + 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 + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/nsilcm/v1/netslice_instances_content': + get: + tags: + - "NetSlice instances" + summary: Query information about multiple NetSlice instances + description: Query information about multiple NetSlice isntances + operationId: getNSIsContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNetSliceInstance' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNetSliceInstance' + '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: + - "NetSlice instances" + summary: Create a new NetSlice instance + description: Create a new NetSlice instance + operationId: createNSIContent + requestBody: + $ref: '#/components/requestBodies/InstantiateNsiRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNsiContentResponse' + application/yaml: + schema: + $ref: '#/components/schemas/CreateNsiContentResponse' + '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' + '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}': + parameters: + - name: netsliceInstanceContentId + in: path + required: true + description: NetSlice Instance Content ID + schema: + type: string + get: + tags: + - "NetSlice instances" + summary: Read an individual NetSlice instance resource + description: Read an individual NetSlice instance resource + operationId: getNSIContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NetSliceInstance' + application/yaml: + schema: + $ref: '#/components/schemas/NetSliceInstance' + '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: + - "NetSlice instances" + summary: Delete an individual NS instance resource + description: Delete an individual NS instance resource + operationId: deleteNSIContent + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/nsilcm/v1/nsi_lcm_op_occs': + get: + tags: + - "NetSlice instances" + summary: Query information about multiple NetSlice LCM Operation Occurrences + description: Query information about multiple NetSlice LCM Operation Occurrences + operationId: getNsiLcmOpOccs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc' + '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' + '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}': + parameters: + - name: nsiLcmOpOccId + in: path + required: true + description: NetSlice LCM Operation Occurrence ID + schema: + type: string + get: + tags: + - "NetSlice instances" + summary: Query information about an individual NetSlice LCM Operation Occurrence + description: Query information about an individual NetSlice LCM Operation Occurrence + operationId: getNsiLcmOpOcc + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsiLcmOpOcc' + application/yaml: + schema: + $ref: '#/components/schemas/NsiLcmOpOcc' + '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' +# END NetSlice Instances + +# BEGIN NSPM + '/nspm/v1/pm_jobs/{pmJobId}/reports/{nsId}': + parameters: + - name: pmJobId + in: path + required: true + description: NS PM Job ID + schema: + type: string + - name: nsId + in: path + required: true + description: NS ID + schema: + type: string + get: + tags: + - "NS Performance Management" + summary: Query information about an individual NS PM Job Report + description: Query information about an individual NS PM Job Report + operationId: getNsPmJobReport + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsPmJobReportInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NsPmJobReportInfo' + '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' +# END NSPM + +# BEGIN PDU + '/pdu/v1/pdu_descriptors': + get: + tags: + - "Physical Data Units (PDU)" + summary: Query information about multiple PDU Descriptors + description: Query information about multiple PDU Descriptors + operationId: getPDUs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfPduInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfPduInfo' + '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: + - "Physical Data Units (PDU)" + summary: Create a new PDU + description: Create a new PDU Descriptor + operationId: createPDU + requestBody: + $ref: '#/components/requestBodies/CreatePduRequest' + responses: + '200': + description: OK + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/pdu/v1/pdu_descriptors/{pduDescriptorId}': + parameters: + - name: pduDescriptorId + in: path + required: true + description: PDU Descriptor ID + schema: + type: string + get: + tags: + - "Physical Data Units (PDU)" + summary: Query information about an individual PDU Descriptor + description: Query information about an individual PDU Descriptor + operationId: getPDU + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PduInfo' + application/yaml: + schema: + $ref: '#/components/schemas/PduInfo' + '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: + - "Physical Data Units (PDU)" + summary: Modify an individual PDU Descriptor + description: Modify an individual PDU Descriptor + operationId: editPDU + requestBody: + $ref: '#/components/requestBodies/EditPduRequest' + 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' + delete: + tags: + - "Physical Data Units (PDU)" + summary: Delete an individual PDU Descriptor + description: Delete an individual PDU Descriptor + operationId: deletePDU + 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' +# END PDU + +# BEGIN Admin + '/admin/v1/tokens': + get: + tags: + - "Authentication" + - "Admin" + summary: Query information about multiple Tokens + description: Query information about multiple Tokens + operationId: getTokens + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfTokenInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfTokenInfo' + '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: + - "Authentication" + - "Admin" + summary: Request a new Token + description: Request a new Token + operationId: createToken + requestBody: + $ref: '#/components/requestBodies/CreateTokenRequest' + responses: + '200': + description: OK + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/TokenInfo' + - $ref: '#/components/schemas/PasswordExpiryInfo' + application/yaml: + schema: + oneOf: + - $ref: '#/components/schemas/TokenInfo' + - $ref: '#/components/schemas/PasswordExpiryInfo' + '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: + - "Authentication" + - "Admin" + summary: Delete the Token indicated in the Authorization Header + description: Delete the Token indicated in the Authorization Header + operationId: deleteAuthToken + responses: + '200': + description: OK + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + '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' + '/admin/v1/tokens/{tokenId}': + parameters: + - name: tokenId + in: path + required: true + description: Token ID + schema: + type: string + get: + tags: + - "Authentication" + - "Admin" + summary: Query information about an individual Token + description: Query information about an individual Token + operationId: getToken + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/TokenInfo' + application/yaml: + schema: + $ref: '#/components/schemas/TokenInfo' + '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: + - "Authentication" + - "Admin" + summary: Delete the Token indicated as parameter + description: Delete the Token indicated as parameter + operationId: deleteToken + responses: + '200': + description: OK + content: + application/json: + schema: + type: string + application/yaml: + schema: + type: string + '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' + '/admin/v1/users': + get: + tags: + - "Identity" + - "Admin" + summary: Query information about multiple Users + description: Query information about multiple Users + operationId: getUsers + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfUserInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfUserInfo' + '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: + - "Identity" + - "Admin" + summary: Create a new User + description: Create a new User + operationId: createUser + requestBody: + $ref: '#/components/requestBodies/CreateUserRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/admin/v1/users/{userId}': + parameters: + - name: userId + in: path + required: true + description: User ID/Name + schema: + type: string + get: + tags: + - "Identity" + - "Admin" + summary: Query information about an individual User + description: Query information about an individual User + operationId: getUser + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/UserInfo' + application/yaml: + schema: + $ref: '#/components/schemas/UserInfo' + '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: + - "Identity" + - "Admin" + summary: Modify a User + description: Modify a User + operationId: editUser + requestBody: + $ref: '#/components/requestBodies/EditUserRequest' + 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' + delete: + tags: + - "Identity" + - "Admin" + summary: Delete a User + description: Delete a User + operationId: deleteUser + 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' + '/admin/v1/projects': + get: + tags: + - "Identity" + - "Admin" + summary: Query information about multiple Projects + description: Query information about multiple Projects + operationId: getProjects + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfProjectInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfProjectInfo' + '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: + - "Identity" + - "Admin" + summary: Create a new Project + description: Create a new Project + operationId: createProject + requestBody: + $ref: '#/components/requestBodies/CreateProjectRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/admin/v1/projects/{projectId}': + parameters: + - name: projectId + in: path + required: true + description: Project ID/Name + schema: + type: string + get: + tags: + - "Identity" + - "Admin" + summary: Query information about an individual Project + description: Query information about an individual Project + operationId: getProject + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ProjectInfo' + '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: + - "Identity" + - "Admin" + summary: Modify a Project + description: Modify a Project + operationId: editProject + requestBody: + $ref: '#/components/requestBodies/EditProjectRequest' + 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' + delete: + tags: + - "Identity" + - "Admin" + summary: Delete a Project + description: Delete a Project + operationId: deleteProject + 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' + '/admin/v1/roles': + get: + tags: + - "Identity" + - "Admin" + summary: Query information about multiple Roles + description: Query information about multiple Roles + operationId: getRoles + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfRoleInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfRoleInfo' + '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: + - "Identity" + - "Admin" + summary: Create a new Role + description: Create a new Role + operationId: createRole + requestBody: + $ref: '#/components/requestBodies/CreateRoleRequest' + responses: + '201': + description: Created + headers: + Location: + schema: + type: string + format: uri + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId' + '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' + '/admin/v1/roles/{roleId}': + parameters: + - name: roleId + in: path + required: true + description: Role ID/Name + schema: + type: string + get: + tags: + - "Identity" + - "Admin" + summary: Query information about an individual Role + description: Query information about an individual Role + operationId: getRole + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/RoleInfo' + application/yaml: + schema: + $ref: '#/components/schemas/RoleInfo' + '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: + - "Identity" + - "Admin" + summary: Modify a Role + description: Modify a Role + operationId: editRole + requestBody: + $ref: '#/components/requestBodies/EditRoleRequest' + 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' + delete: + tags: + - "Identity" + - "Admin" + summary: Delete a Role + description: Delete a Role + operationId: deleteRole + 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' + '/admin/v1/vims': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple VIMs + description: Query information about multiple VIMs + operationId: getVIMs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Create a new VIM + description: Create a new VIM + operationId: createVIM + requestBody: + $ref: '#/components/requestBodies/CreateVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/vims/{vimId}': + parameters: + - name: vimId + in: path + required: true + description: VIM ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual VIM + description: Query information about an individual VIM + operationId: getVIM + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VimInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Modify a VIM + description: Modify a VIM + operationId: editVIM + requestBody: + $ref: '#/components/requestBodies/EditVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '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: + - "Infrastructure" + - "Admin" + summary: Delete a VIM + description: Delete a VIM + operationId: deleteVIM + responses: + '202': + description: Accepted + '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' + '/admin/v1/vim_accounts': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple VIM Accounts + description: Query information about multiple VIM Accounts + operationId: getVimAccounts + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVimInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Create a new VIM Account + description: Create a new VIM Account + operationId: createVimAccount + requestBody: + $ref: '#/components/requestBodies/CreateVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/vim_accounts/{vimAccountId}': + parameters: + - name: vimAccountId + in: path + required: true + description: VIM Account ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual VIM Account + description: Query information about an individual VIM Account + operationId: getVimAccount + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VimInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Modify a VIM Account + description: Modify a VIM Account + operationId: editVimAccount + requestBody: + $ref: '#/components/requestBodies/EditVimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '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: + - "Infrastructure" + - "Admin" + summary: Delete a VIM Account + description: Delete a VIM Account + operationId: deleteVimAccount + responses: + '202': + description: Accepted + '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' + '/admin/v1/wim_accounts': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple WIM Accounts + description: Query information about multiple WIM Accounts + operationId: getWimAccounts + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfWimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfWimInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Create a new WIM Account + description: Create a new WIM Account + operationId: createWimAccount + requestBody: + $ref: '#/components/requestBodies/CreateWimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/wim_accounts/{wimAccountId}': + parameters: + - name: wimAccountId + in: path + required: true + description: WIM Account ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual WIM Account + description: Query information about an individual WIM Account + operationId: getWimAccount + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/WimInfo' + application/yaml: + schema: + $ref: '#/components/schemas/WimInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Modify a WIM Account + description: Modify a WIM Account + operationId: editWimAccount + requestBody: + $ref: '#/components/requestBodies/EditWimRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '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: + - "Infrastructure" + - "Admin" + summary: Delete a WIM Account + description: Delete a WIM Account + operationId: deleteWimAccount + responses: + '202': + description: Accepted + '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' + '/admin/v1/sdns': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple SDNs + description: Query information about multiple SDNs + operationId: getSDNs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfSdnInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfSdnInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Create a new SDN + description: Create a new SDN + operationId: createSDN + requestBody: + $ref: '#/components/requestBodies/CreateSdnRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/sdns/{sdnId}': + parameters: + - name: sdnId + in: path + required: true + description: SDN ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual SDN + description: Query information about an individual SDN + operationId: getSDN + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/SdnInfo' + application/yaml: + schema: + $ref: '#/components/schemas/SdnInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Modify a SDN + description: Modify a SDN + operationId: editSDN + requestBody: + $ref: '#/components/requestBodies/EditSdnRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '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: + - "Infrastructure" + - "Admin" + summary: Delete a SDN + description: Delete a SDN + operationId: deleteSDN + responses: + '202': + description: Accepted + '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' + '/admin/v1/k8sclusters': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple K8s Clusters + description: Query information about multiple K8s Clusters + operationId: getK8sClusters + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfK8sClusterInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfK8sClusterInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Create a new K8s Cluster + description: Create a new K8s Cluster + operationId: createK8sCluster + requestBody: + $ref: '#/components/requestBodies/CreateK8sClusterRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/k8sclusters/{k8sClusterId}': + parameters: + - name: k8sClusterId + in: path + required: true + description: K8s Cluster ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual K8s Cluster + description: Query information about an individual K8s Cluster + operationId: getK8sCluster + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/K8sClusterInfo' + application/yaml: + schema: + $ref: '#/components/schemas/K8sClusterInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Modify a K8s Cluster + description: Modify a K8s Cluster + operationId: editK8sCluster + requestBody: + $ref: '#/components/requestBodies/EditK8sClusterRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '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: + - "Infrastructure" + - "Admin" + summary: Delete a K8s Cluster + description: Delete a K8s Cluster + operationId: deleteK8sCluster + responses: + '202': + description: Accepted + '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' + '/admin/v1/vca': + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about multiple VCAs + description: Query information about multiple VCAs + operationId: getVcas + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVcaInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVcaInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Create a new VCA + description: Create a new VCA + operationId: createVca + requestBody: + $ref: '#/components/requestBodies/CreateVcaRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/vca/{vcaId}': + parameters: + - name: vcaId + in: path + required: true + description: VCA ID + schema: + type: string + format: uuid + get: + tags: + - "Infrastructure" + - "Admin" + summary: Query information about an individual VCA + description: Query information about an individual VCA + operationId: getVca + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VcaInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VcaInfo' + '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: + - "Infrastructure" + - "Admin" + summary: Modify a VCA + description: Modify a VCA + operationId: editVca + requestBody: + $ref: '#/components/requestBodies/EditVcaRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/OpId' + application/yaml: + schema: + $ref: '#/components/schemas/OpId' + '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: + - "Infrastructure" + - "Admin" + summary: Delete a VCA + description: Delete a VCA + operationId: deleteVca + responses: + '202': + description: Accepted + '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' + '/admin/v1/k8srepos': + get: + tags: + - "Repositories" + - "Admin" + summary: Query information about multiple K8s Repos + description: Query information about multiple K8s Repos + operationId: getK8sRepos + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfK8sRepoInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfK8sRepoInfo' + '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: + - "Repositories" + - "Admin" + summary: Create a new K8s Repo + description: Create a new K8s Repo + operationId: createK8sRepo + requestBody: + $ref: '#/components/requestBodies/CreateK8sRepoRequest' + responses: + '202': + description: Accepted + content: + application/json: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + application/yaml: + schema: + $ref: '#/components/schemas/ObjectId_plus_OpId' + '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' + '/admin/v1/k8srepos/{k8sRepoId}': + parameters: + - name: k8sRepoId + in: path + required: true + description: K8s Repo ID + schema: + type: string + format: uuid + get: + tags: + - "Repositories" + - "Admin" + summary: Query information about an individual K8s Repo + description: Query information about an individual K8s Repo + operationId: getK8sRepo + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/K8sRepoInfo' + application/yaml: + schema: + $ref: '#/components/schemas/K8sRepoInfo' + '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: + - "Repositories" + - "Admin" + summary: Delete a K8s Repo + description: Delete a K8s Repo + operationId: deleteK8sRepo + responses: + '202': + description: Accepted + '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' +# END Admin + +externalDocs: + description: Find out more about OSM + url: 'https://osm.etsi.org/docs/user-guide/' + +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' + VnfDescriptor: + description: VNF Descriptor (plaintext) + content: + text/plain: + schema: + $ref: '#/components/schemas/VnfDescriptor' + VnfPackage: + description: VNF Package (compressed) + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + NsDescriptor: + description: NS Descriptor (plaintext) + content: + text/plain: + schema: + $ref: '#/components/schemas/NsDescriptor' + NsPackage: + description: NS Package (compressed) + content: + application/zip: + schema: + $ref: '#/components/schemas/NsPackage' + NetSliceTemplate: + description: NetSlice Template (plaintext) + content: + text/plain: + schema: + $ref: '#/components/schemas/NetSliceTemplate' + NetSlicePackage: + description: NetSlice Package (compressed) + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + NslcmSubscriptionResponse: + description: NslcmSubscriptionResponse + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionResponse' + # END RESPONSES + + schemas: + ObjectId: + type: object + properties: + id: + type: string + format: uuid + KeyValuePairs: + # A free list of key:value pairs + type: object + additionalProperties: true + NsDescriptor: + type: string + format: yaml|json + NsPackage: + type: string + format: binary + CreateNsdInfoRequest: + # A free list of key:value pairs + type: object + additionalProperties: true + NsdInfoModifications: + description: | + NS Descriptor Information + Only generic fields (id, name, description) are described + For a full specification of the NS Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/nsd.html + type: object + properties: + id: + description: NSD Identifier + type: string + name: + description: NSD Name + type: string + description: + description: NSD Description + type: string + AlarmInfoModifications: + description: | + Alarm Information + type: object + properties: + id: + description: UUID + type: string + is_enable: + description: To enable/disable the alarm. + type: string + threshold: + description: Threshold value of the Alarm + type: string + NsdInfo: + description: | + NS Descriptor Information + Only generic fields (_id, id, name, description) are described + For a full specification of the NS Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/nsd.html + type: object + properties: + _id: + description: | + Identifier of the onboarded individual NS descriptor + resource. This identifier is allocated by the NFVO. + type: string + format: uuid + id: + 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 + name: + 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 + description: + description: | + Description of the onboarded NSD. + This information is copied from the NSD content. + type: string + required: + - _id + - id + 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 + format: yaml|json + VnfPackage: + type: string + format: binary + CreateVnfPkgInfoRequest: + # A free list of key:value pairs + type: object + additionalProperties: true + VnfPkgInfoModifications: + description: | + VNF Package Information + Only generic fields (id, name, description) are described + For a full specification of the VNF Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/vnfd.html + type: object + properties: + id: + description: VNF Package Identifier + type: string + name: + description: VNF Package Name + type: string + description: + description: VNF Package description + type: string + VnfPkgInfo: + description: | + VNF Package Information + Only generic fields (_id, id, name, description) are described + For a full specification of the VNF Descriptor see: + http://osm-download.etsi.org/ftp/osm-doc/vnfd.html + type: object + properties: + _id: + description: | + Identifier of the VNF package. This identifier is allocated by the NFVO. + type: string + format: uuid + id: + description: VNF Package Identifier + type: string + name: + description: VNF Package Name + type: string + description: + description: VNF Package description + type: string + required: + - _id + - id + ArrayOfVnfPkgInfo: + type: array + items: + $ref: '#/components/schemas/VnfPkgInfo' + # CreateNsRequest: + # Substituted by InstantiateNsRequest + NsInstance: + description: | + NS Instance Information + Only generic fields (_id, id, name, description) are described + For a full specification of the NS Instance see: + http://osm-download.etsi.org/ftp/osm-doc/nsr.html + type: object + properties: + _id: + description: Identifier of the NS instance. + type: string + format: uuid + id: + description: Identifier of the NS instance. + type: string + format: uuid + name: + description: Human readable name of the NS instance. + type: string + description: + description: Human readable description of the NS instance. + type: string + required: + - _id + - id + - name + InstantiateNsRequest: + type: object + properties: + nsName: + description: | + Human-readable name of the NS instance to be created. + type: string + nsdId: + description: | + Identifier of the NSD that defines the NS instance to be created. + type: string + format: uuid + vimAccountId: + description: | + Identifier of the VIM Account where the NS instance shall be created. + type: string + format: uuid + lcmOperationType: + type: string + nsInstanceId: + type: string + format: uuid + netsliceInstanceId: + type: string + format: uuid + nsDescription: + type: string + nullable: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + additionalParamsForNs: + type: object + additionalProperties: true + additionalParamsForVnf: &additionalparamsforvnf + type: array + items: + type: object + properties: + member-vnf-index: + type: string + additionalParams: + type: object + additionalProperties: true + k8s-namespace: + type: string + description: | + use this namespace for all the KDU deployed in this VNF + (if any). By default it is used the id of the project + additionalParamsForVdu: + type: array + items: + type: object + properties: + vdu_id: + type: string + additionalParams: + type: object + additionalProperties: true + required: + - vdu_id + - additionalParams + additionalProperties: false + additionalParamsForKdu: + type: array + items: + type: object + properties: + kdu_name: + type: string + k8s-namespace: + type: string + description: use this namespace for this KDU + kdu_model: + type: string + additionalParams: + type: object + additionalProperties: true + required: + - kdu_name + minProperties: 2 + additionalProperties: false + required: + - member-vnf-index + minProperties: 2 + additionalProperties: false + ssh_keys: + type: array + items: + type: string + nsr_id: + type: string + format: uuid + vduImage: + type: string + placement-engine: + type: string + description: | + To compute automatically the target VIM for each VNF based on + constrains, e.g. latency. Currently only 'PLA' is supported + placement-constraints: + type: object + additionalProperties: true + k8s-namespace: + type: string + timeout_ns_deploy: + type: integer + vnf: + type: array + items: + type: object + properties: + member-vnf-index: + type: string + vimAccountId: + type: string + format: uuid + vdu: + type: array + items: + type: object + properties: + id: + type: string + volume: + type: array + items: + type: object + properties: + name: + type: string + vim-volume-id: + type: string + required: + - name + - vim-volume-id + additionalProperties: false + minItems: 1 + interface: + type: array + items: + type: object + properties: + name: + type: string + ip-address: + type: string + format: ipv4 + mac-address: + type: string + format: mac_address + floating-ip-required: + type: boolean + required: + - name + additionalProperties: false + minItems: 1 + required: + - id + additionalProperties: false + minItems: 1 + internal-vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + type: string + vim-network-id: + type: string + ip-profile: + type: object + properties: + ip-version: + type: string + enum: + - ipv4 + - ipv6 + subnet-address: + type: string + format: ip_prefix + nullable: true + gateway-address: + type: string + format: ipv4 + nullable: true + dns-server: + type: array + items: + type: object + properties: + address: + type: string + format: ipv4 + required: + - address + additionalProperties: false + minItems: 1 + nullable: true + dhcp-params: + type: object + properties: + enabled: + type: boolean + count: + type: integer + minimum: 1 + start-address: + type: string + format: ipv4 + additionalProperties: false + nullable: true + additionalProperties: false + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + network-type: + type: string + sdn-ports: + description: | + connect additional ports to the created underlay SDN connectivity. + Normally for external connectivy. + type: array + items: + type: object + properties: + switch_id: + type: string + switch_port: + type: string + mac_address: + type: string + format: mac_address + vlan: + type: integer + additionalProperties: true + required: + - switch_id + - switch_port + minItems: 1 + additionalProperties: false + internal-connection-point: + type: array + items: + type: object + properties: + id-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - id-ref + minProperties: 2 + additionalProperties: False + minItems: 1 + required: + - name + minProperties: 2 + additionalProperties: false + minItems: 1 + required: + - member-vnf-index + minProperties: 2 + additionalProperties: false + minItems: 1 + vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + oneOf: + - type: string + - type: object + vim-network-id: + oneOf: + - type: string + - type: object + ns-net: + type: object + additionalProperties: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + ip-profile: + type: object + additionalProperties: true + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + additionalProperties: false + vnfd-connection-point-ref: + type: array + items: + type: object + properties: + member-vnf-index-ref: + type: string + vnfd-connection-point-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - member-vnf-index-ref + - vnfd-connection-point-ref + minProperties: 3 + additionalProperties: false + minItems: 1 + required: + - name + additionalProperties: false + minItems: 1 + required: + - nsName + - nsdId + - vimAccountId + additionalProperties: false + ScaleNsRequest: + type: object + properties: + scaleType: + type: string + enum: + - SCALE_VNF + timeout_ns_scale: + description: timeout for the scale operation + type: integer + scaleVnfData: + type: object + properties: + scaleVnfType: + type: string + enum: + - SCALE_IN + - SCALE_OUT + scaleByStepData: + type: object + properties: + scaling-group-descriptor: + type: string + scaling-policy: + type: string + member-vnf-index: + type: string + required: + - scaling-group-descriptor + - member-vnf-index + additionalProperties: false + required: + - scaleVnfType + - scaleByStepData + additionalProperties: false + required: + - scaleType + - scaleVnfData + additionalProperties: false + HealNsRequest: + description: > + This type represents request parameters for the "Heal NS" operation. This operation supports the healing of an NS + instance by healing one or more of the VNF that are part of this NS. + type: object + properties: + timeout_ns_heal: + description: timeout for the heal operation in seconds + type: integer + healVnfData: + description: > + List of VNF to be healed, together with the information needed to heal each. + type: array + items: + $ref: "#/components/schemas/HealVnfData" + required: + - healVnfData + HealVnfData: + description: > + This type represents the information to heal a VNF that is part of an NS. + type: object + required: + - vnfInstanceId + properties: + vnfInstanceId: + description: > + Identifies the VNF instance, part of the NS, requiring a + healing action. + type: string + format: uuid + cause: + description: > + Indicates the reason why a healing procedure is required. + type: string + additionalParams: + description: > + Additional parameters passed by the NFVO as input to + the healing process, specific to the VNF being healed. + type: object + properties: + run-day1: + description: > + Flag to indicate whether or not to run day1 primitives for the VNF (default: false). + type: boolean + default: false + vdu: + description: > + List of VDU to be healed, together with the information needed to heal each. + type: array + items: + $ref: "#/components/schemas/HealVduData" + HealVduData: + description: > + This type represents the information to heal a VDU that is part of a VNF. + type: object + required: + - vdu-id + properties: + vdu-id: + description: > + Identifies the VDU id, part of the VNF, requiring a healing action. + type: string + format: uuid + count-index: + description: > + Indicates the VDU number when the VDU is part of a scale-group. + type: integer + minimum: 0 + run-day1: + description: > + Flag to indicate whether or not to run day1 primitives for the VDU (default: false). + type: boolean + default: false + NSinstanceMigrateRequest: + description: > + This type represents request parameters for the "Migrate" operation. This operation supports the migration of an NS + instance by migrating one or more of the VDUs that are part of this NS. + type: object + properties: + vnfInstanceId: + type: string + migrateToHost: + type: string + vdu: + type: object + properties: + vduId: + type: string + vduCountIndex: + type: integer + required: + - vduId + required: + - vnfInstanceId + additionalProperties: false + TerminateNsRequest: + type: object + properties: + timeout_ns_terminate: + description: timeout for terminate operation + type: integer + autoremove: + description: remove network service if termination end without error + type: boolean + skip_terminate_primitives: + description: Do not execute network service termination primitives + type: boolean + additionalProperties: false + ArrayOfNsInstance: + type: array + items: + $ref: '#/components/schemas/NsInstance' + NSinstanceActionRequest: + type: object + properties: + primitive: + type: string + description: | + name of the primitive in the 'config-descriptor'. If the target is + a kdu it can be also 'status', 'rollback' or 'upgrade' + primitive_params: + description: parameters of this primitive + $ref: '#/components/schemas/KeyValuePairs' + member_vnf_index: + type: string + description: provide if the target action is for a vnf, vdu or kdu + vdu_id: + type: string + description: provide if the target action is for a vdu + kdu_name: + type: string + description: provide if the target action is for a kdu + vdu_count_index: + type: integer + timeout_ns_action: + description: timeout for the day 1/2 operation + type: integer + required: + - primitive + - primitive_params + additionalProperties: false + UpdateNsRequest: + description: > + This type represents request parameters for the "Update NS" operation. This operation supports the update of an NS + instance by updating one or more of the VNFs that are part of this NS. + type: object + properties: + updateType: + type: string + enum: + - CHANGE_VNFPKG + - REMOVE_VNF + - MODIFY_VNF_INFORMATION + - OPERATE_VNF + changeVnfPackageData: + type: object + properties: + vnfInstanceId: + type: string + vnfdId: + type: string + required: + - vnfInstanceId + - vnfdId + removeVnfInstanceId: + type: string + modifyVnfInfoData: + type: object + properties: + vnfInstanceId: + type: string + vnfdId: + type: string + required: + - vnfInstanceId + - vnfdId + operateVnfData: + type: object + properties: + vnfInstanceId: + type: string + changeStateTo: + type: string + additionalParam: + type: object + properties: + run-day1: + type: boolean + vdu_id: + type: string + count-index: + type: number + required: + - vdu_id + - count-index + required: + - vnfInstanceId + - changeStateTo + additionalProperties: false + required: + - updateType + additionalProperties: false + VerticalscaleNsRequest: + description: > + This type represents request parameters for the "Vertical Scale NS" operation. + This operation supports the vertical scale of an NS instance by verticalscaling + one or more of the VNFs that are part of this NS. + type: object + properties: + verticalScale: + type: string + changeVnfFlavorData: + type: object + properties: + vnfInstanceId: + type: string + format: uuid + additionalParams: + type: object + properties: + vduid: + type: string + format: uuid + vduCountIndex: + type: integer + virtualMemory: + type: integer + sizeOfStorage: + type: integer + numVirtualCpu: + type: integer + required: + - vnfInstanceId + - additionalParams + additionalProperties: false + required: + - verticalScale + additionalProperties: false + # CreateNSinstanceContentRequest: + # Substituted by InstantiateNsRequest + CreateNSinstanceContentResponse: + type: object + properties: + id: + type: string + format: uuid + nslcmop_id: + type: string + format: uuid + NsLcmOpOcc: + type: object + properties: + _id: + type: string + format: uuid + id: + type: string + format: uuid + lcmOperationType: + type: string + nsInstanceId: + type: string + format: uuid + isAutomaticInvocation: + type: boolean + isCancelPending: + type: boolean + startTime: + type: number + format: float + statusEnteredTime: + type: number + format: float + operationParams: + type: object + properties: + nsName: + type: string + nsdId: + type: string + format: uuid + vimAccountId: + type: string + format: uuid + nsInstanceId: + type: string + format: uuid + lcmOperationType: + type: string + operationState: + type: string + detailed-status: + type: string + links: + type: object + properties: + self: + type: string + format: path # uri? + nsInstance: + type: string + format: path # uri? + ArrayOfNsLcmOpOcc: + type: array + items: + $ref: '#/components/schemas/NsLcmOpOcc' + VnfInstanceInfo: + description: | + VNF Instance Information + Only generic fields (_id, id) are described + For a full specification of the VNF Instance see: + http://osm-download.etsi.org/ftp/osm-doc/vnfr.html + type: object + properties: + _id: + type: string + format: uuid + id: + type: string + format: uuid + ArrayOfVnfInstanceInfo: + type: array + items: + $ref: '#/components/schemas/VnfInstanceInfo' + NstInfo: + description: | + NetSlice Template Information + Only generic fields (_id, id, name) are described + For a full specification of the NetSlice Template see: + http://osm-download.etsi.org/ftp/osm-doc/nst.html + type: object + properties: + _id: + description: NetSlice Template Identifier + type: string + format: uuid + id: + description: Human readable NetSlice Template Identifier + type: string + name: + description: Human readable name of the NetSlice Template + type: string + ArrayOfNstInfo: + type: array + items: + $ref: '#/components/schemas/NstInfo' + CreateNstInfoRequest: + # A free list of key:value pairs + type: object + additionalProperties: true + NetSliceTemplate: + type: string + format: yaml|json + NetSlicePackage: + type: string + format: binary + NstInfoModifications: + description: | + NetSlice Template Information + Only generic fields (id, name) are described + For a full specification of the NetSlice Template see: + http://osm-download.etsi.org/ftp/osm-doc/nst.html + type: object + properties: + id: + description: NST Identifier + type: string + name: + description: NST Name + type: string + NetSliceInstance: + description: | + NetSlice Instance Information + Only generic fields (_id, id, name, description) are described + For a full specification of the NetSlice Instance see: + http://osm-download.etsi.org/ftp/osm-doc/nsi.html + type: object + properties: + _id: + description: Identifier of the NetSlice instance. + type: string + format: uuid + id: + description: Identifier of the NetSlice instance. + type: string + format: uuid + name: + description: Human readable name of the NetSlice instance. + type: string + description: + description: Human readable description of the NetSlice instance. + type: string + required: + - _id + - id + - name + ArrayOfNetSliceInstance: + type: array + items: + $ref: '#/components/schemas/NetSliceInstance' + Alarm: + description: | + Alarm Information + type: object + properties: + _id: + description: Identifier of the Alarm. + type: string + format: uuid + id: + description: Identifier of the Alarm. + type: string + format: uuid + metric: + description: Alarm metric. + type: string + threshold: + description: Threshold value of the Alarm. + type: number + format: float + operation: + description: Operation to be applied. + type: string + action: + description: Action to be taken. + type: string + status: + description: Current status of the alarm. + type: string + required: + - _id + - id + - metric + - threshold + - operation + ArrayOfAlarm: + type: array + items: + $ref: '#/components/schemas/Alarm' + # CreateNsiRequest: + # Substituted by InstantiateNsiRequest + InstantiateNsiRequest: + type: object + properties: + nsiName: + description: | + Human-readable name of the NetSlice instance to be created. + type: string + nstId: + description: | + Identifier of the NST that defines the NetSlice instance to be created. + type: string + format: uuid + vimAccountId: + description: | + Identifier of the VIM Account where the NetSlice instance shall be created. + type: string + format: uuid + lcmOperationType: + type: string + netsliceInstanceId: + type: string + format: uuid + nsiDescription: + type: string + nullable: true + ssh_keys: + type: string + nsi_id: + type: string + format: uuid + additionalParamsForNsi: + type: object + additionalProperties: true + netslice-subnet: + type: array + items: + type: object + properties: + id: + type: string + nsName: + type: string + nsdId: + type: string + format: uuid + vimAccountId: + type: string + format: uuid + lcmOperationType: + type: string + nsInstanceId: + type: string + format: uuid + netsliceInstanceId: + type: string + format: uuid + nsDescription: + type: string + nullable: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + additionalParamsForNs: + type: object + additionalProperties: true + additionalParamsForVnf: *additionalparamsforvnf + ssh_keys: + type: array + items: + type: string + nsr_id: + type: string + format: uuid + vduImage: + type: string + vnf: + type: array + items: + type: object + properties: + member-vnf-index: + type: string + vimAccountId: + type: string + format: uuid + vdu: + type: array + items: + type: object + properties: + id: + type: string + volume: + type: array + items: + type: object + properties: + name: + type: string + vim-volume-id: + type: string + required: + - name + - vim-volume-id + additionalProperties: false + minItems: 1 + interface: + type: array + items: + type: object + properties: + name: + type: string + ip-address: + type: string + format: ipv4 + mac-address: + type: string + format: mac_address + floating-ip-required: + type: boolean + required: + - name + additionalProperties: false + minItems: 1 + required: + - id + additionalProperties: false + minItems: 1 + internal-vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + type: string + vim-network-id: + type: string + ip-profile: + type: object + properties: + ip-version: + type: string + enum: + - ipv4 + - ipv6 + subnet-address: + type: string + format: ip_prefix + nullable: true + gateway-address: + type: string + format: ipv4 + nullable: true + dns-server: + type: array + items: + type: object + properties: + address: + type: string + format: ipv4 + required: + - address + additionalProperties: false + minItems: 1 + nullable: true + dhcp-params: + type: object + properties: + enabled: + type: boolean + count: + type: integer + minimum: 1 + start-address: + type: string + format: ipv4 + additionalProperties: false + nullable: true + additionalProperties: false + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + additionalProperties: false + internal-connection-point: + type: array + items: + type: object + properties: + id-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - id-ref + minProperties: 2 + additionalProperties: False + minItems: 1 + required: + - name + minProperties: 2 + additionalProperties: false + minItems: 1 + required: + - member-vnf-index + minProperties: 2 + additionalProperties: false + minItems: 1 + vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + oneOf: + - type: string + - type: object + vim-network-id: + oneOf: + - type: string + - type: object + ns-net: + type: object + additionalProperties: true + wimAccountId: + oneOf: + - type: string + - type: boolean + nullable: true + ip-profile: + type: object + additionalProperties: true + provider-network: + type: object + properties: + physical-network: + type: string + segmentation-id: + type: string + additionalProperties: false + vnfd-connection-point-ref: + type: array + items: + type: object + properties: + member-vnf-index-ref: + type: string + vnfd-connection-point-ref: + type: string + ip-address: + type: string + format: ipv4 + required: + - member-vnf-index-ref + - vnfd-connection-point-ref + minProperties: 3 + additionalProperties: false + minItems: 1 + required: + - name + additionalProperties: false + minItems: 1 + additionalProperties: false + minItems: 1 + netslice-vld: + type: array + items: + type: object + properties: + name: + type: string + vim-network-name: + oneOf: + - type: string + - type: object + vim-network-id: + oneOf: + - type: string + - type: object + ip-profile: + type: object + additionalProperties: true + required: + - name + additionalProperties: false + minItems: 1 + required: + - nsiName + - nstId + - vimAccountId + additionalProperties: false + TerminateNsiRequest: + type: object + properties: + terminationTime: + description: | + Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated + automatically at this timestamp. Cardinality "0" indicates the NSI termination + takes place immediately. + type: string + format: date-time + NsiActionRequest: + type: object + properties: + primitive: + type: string + primitive_params: + $ref: '#/components/schemas/KeyValuePairs' + lcmOperationType: + type: string + netsliceInstanceId: + type: string + format: uuid + required: + - primitive + - primitive_params + # CreateNsiContentRequest: + # Substituted by InstantiateNsiRequest + CreateNsiContentResponse: + type: object + properties: + id: + type: string + format: uuid + nsilcmop_id: + type: string + format: uuid + NsiLcmOpOcc: + type: object + properties: + _id: + type: string + format: uuid + id: + type: string + format: uuid + lcmOperationType: + type: string + netsliceInstanceId: + type: string + format: uuid + isAutomaticInvocation: + type: boolean + isCancelPending: + type: boolean + startTime: + type: number + format: float + statusEnteredTime: + type: number + format: float + operationParams: + type: object + properties: + nsiName: + type: string + nstId: + type: string + format: uuid + vimAccountId: + type: string + format: uuid + netsliceInstanceId: + type: string + format: uuid + lcmOperationType: + type: string + nslcmops_ids: + type: array + items: + type: string + format: uuid + operationState: + type: string + detailed-status: + type: string + links: + type: object + properties: + self: + type: string + format: path # uri? + netsliceInstanceId: + type: string + format: path # uri? + ArrayOfNsiLcmOpOcc: + type: array + items: + $ref: '#/components/schemas/NsiLcmOpOcc' + TokenInfo: + type: object + properties: + _id: + type: string + id: + type: string + admin: + type: boolean + admin_show: + type: boolean + project_id: + type: string + format: uuid + user_id: + type: string + format: uuid + project_name: + type: string + username: + type: string + issued_at: + type: number + format: float + user_show: + type: boolean + last_login: + type: number + format: float + login_count: + type: number + expires: + type: number + format: float + remote_host: + type: string + format: ipv4 + remote_port: + type: integer + roles: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + PasswordExpiryInfo: + type: object + properties: + id: + type: string + message: + type: string + user_id: + type: string + format: uuid + ArrayOfTokenInfo: + type: array + items: + $ref: '#/components/schemas/TokenInfo' + CreateTokenRequest: + type: object + properties: + username: + type: string + password: + type: string + project_id: + type: string + required: + - username + - password + UserInfo: + type: object + properties: + _id: + type: string + format: uuid + username: + type: string + password: + type: string + project_role_mappings: + type: array + items: + type: object + properties: + project: + type: string + format: uuid + role: + type: string + format: uuid + project_name: + type: string + role_name: + type: string + projects: + type: array + items: + type: string + ArrayOfUserInfo: + type: array + items: + $ref: '#/components/schemas/UserInfo' + ProjectRoleMappings: + type: array + items: + type: object + properties: + project: + type: string + role: + type: string + required: + - project + - role + additionalProperties: false + ProjectRoleMappingsOpt: + type: array + items: + type: object + properties: + project: + type: string + role: + type: string + required: + - project + additionalProperties: false + CreateUserRequest: + type: object + properties: + username: + type: string + password: + type: string + projects: + type: array + items: + type: string + project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappings' + required: + - username + - password + additionalProperties: false + ShortNameList: + type: array + items: + type: string + ArrayEditionSchema: + type: object + additionalProperties: true + minProperties: 1 + description: | + Array edition keys must start with '$' + and follow the syntax defined in: https://osm.etsi.org/wikipub/index.php/NBI_API_Description + EditUserRequest: + type: object + properties: + username: + type: string + password: + type: string + old_password: + type: string + system_admin_id: + type: string + format: uuid + unlock: + type: boolean + renew: + type: boolean + projects: + oneOf: + - $ref: '#/components/schemas/ShortNameList' + - $ref: '#/components/schemas/ArrayEditionSchema' + project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappings' + add_project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappings' + remove_project_role_mappings: + $ref: '#/components/schemas/ProjectRoleMappingsOpt' + QuotasInfo: + type: object + properties: + vnfds: + type: integer + minimum: 0 + nullable: false + nsds: + type: integer + minimum: 0 + nullable: false + slice_templates: + type: integer + minimum: 0 + nullable: false + pduds: + type: integer + minimum: 0 + nullable: false + ns_instances: + type: integer + minimum: 0 + nullable: false + slice_instances: + type: integer + minimum: 0 + nullable: false + vim_accounts: + type: integer + minimum: 0 + nullable: false + wim_accounts: + type: integer + minimum: 0 + nullable: false + sdn_controllers: + type: integer + minimum: 0 + nullable: false + k8sclusters: + type: integer + minimum: 0 + nullable: false + vca: + type: integer + minimum: 0 + nullable: false + k8srepos: + type: integer + minimum: 0 + nullable: false + osmrepos: + type: integer + minimum: 0 + nullable: false + additionalProperties: false + EditQuotasInfo: + type: object + properties: + vnfds: + type: integer + minimum: 0 + nullable: true + nsds: + type: integer + minimum: 0 + nullable: true + slice_templates: + type: integer + minimum: 0 + nullable: true + pduds: + type: integer + minimum: 0 + nullable: true + ns_instances: + type: integer + minimum: 0 + nullable: true + slice_instances: + type: integer + minimum: 0 + nullable: true + vim_accounts: + type: integer + minimum: 0 + nullable: true + wim_accounts: + type: integer + minimum: 0 + nullable: true + sdn_controllers: + type: integer + minimum: 0 + nullable: true + k8sclusters: + type: integer + minimum: 0 + nullable: true + vca: + type: integer + minimum: 0 + nullable: true + k8srepos: + type: integer + minimum: 0 + nullable: true + osmrepos: + type: integer + minimum: 0 + nullable: true + additionalProperties: false + ProjectInfo: + type: object + properties: + _id: + type: string + format: uuid + name: + type: string + quotas: + $ref: '#/components/schemas/QuotasInfo' + ArrayOfProjectInfo: + type: array + items: + $ref: '#/components/schemas/ProjectInfo' + CreateProjectRequest: + type: object + properties: + name: + type: string + admin: + type: boolean + quotas: + $ref: '#/components/schemas/QuotasInfo' + required: + - name + additionalProperties: false + EditProjectRequest: + type: object + properties: + name: + type: string + admin: + type: boolean + quotas: + $ref: '#/components/schemas/EditQuotasInfo' + additionalProperties: false + PermissionsInfo: + type: object + additionalProperties: + type: boolean + nullable: false + description: | + Permissions keys must follow the syntax 'main_topic[:subtopic[:id[:component|action|etc]]]' + Permission values are either true or false + EditPermissionsInfo: + type: object + additionalProperties: + type: boolean + nullable: true + description: | + Permissions keys must follow the syntax 'main_topic[:subtopic[:id[:component|action|etc]]]' + Permission values are either true, false, or null + RoleInfo: + type: object + properties: + _id: + type: string + format: uuid + name: + type: string + permissions: + $ref: '#/components/schemas/PermissionsInfo' + ArrayOfRoleInfo: + type: array + items: + $ref: '#/components/schemas/RoleInfo' + CreateRoleRequest: + type: object + properties: + name: + type: string + permissions: + $ref: '#/components/schemas/PermissionsInfo' + required: + - name + additionalProperties: false + EditRoleRequest: + type: object + properties: + name: + type: string + permissions: + $ref: '#/components/schemas/EditPermissionsInfo' + additionalProperties: false + VimType: + type: string + enum: + - openvim + - openstack + - vmware + - opennebula + - aws + - azure + - fos + VimInfo: + type: object + properties: + _id: + type: string + format: uuid + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + vim: + type: string + datacenter: + type: string + vim_type: + $ref: '#/components/schemas/VimType' + vim_url: + type: string + format: uri + vim_tenant_name: + type: string + vim_user: + type: string + vim_password: + type: string + vca: + type: string + format: uuid + config: + type: object + additionalProperties: true + resources: + type: object + ArrayOfVimInfo: + type: array + items: + $ref: '#/components/schemas/VimInfo' + CreateVimRequest: + type: object + properties: + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + vim: + type: string + datacenter: + type: string + vim_type: + $ref: '#/components/schemas/VimType' + vim_url: + type: string + format: uri + vim_tenant_name: + type: string + vim_user: + type: string + vim_password: + type: string + vca: + type: string + format: uuid + config: + type: object + additionalProperties: true + prometheus-config: + type: object + additionalProperties: true + resources: + type: object + required: + - name + - vim_url + - vim_type + - vim_user + - vim_password + - vim_tenant_name + additionalProperties: false + EditVimRequest: + type: object + properties: + name: + type: string + description: + type: string + vim: + type: string + datacenter: + type: string + vim_type: + $ref: '#/components/schemas/VimType' + vim_url: + type: string + format: uri + vim_tenant_name: + type: string + vim_user: + type: string + vim_password: + type: string + vca: + type: string + format: uuid + prometheus-config: + type: object + additionalProperties: true + config: + type: object + additionalProperties: true + additionalProperties: false + ObjectId_plus_OpId: + type: object + properties: + id: + type: string + format: uuid + op_id: + type: string + format: uuid + OpId: + type: object + properties: + op_id: + type: string + format: uuid + WimType: + type: string + enum: + - onos + - odl + - tapi + - dynpac + - fake + WimInfo: + type: object + properties: + _id: + type: string + format: uuid + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + wim: + type: string + wim_type: + $ref: '#/components/schemas/WimType' + wim_url: + type: string + format: uri + user: + type: string + password: + type: string + config: + type: object + additionalProperties: true + ArrayOfWimInfo: + type: array + items: + $ref: '#/components/schemas/WimInfo' + CreateWimRequest: + type: object + properties: + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + name: + type: string + description: + type: string + wim: + type: string + wim_type: + $ref: '#/components/schemas/WimType' + wim_url: + type: string + format: uri + user: + type: string + password: + type: string + config: + type: object + additionalProperties: true + required: + - name + - wim_url + - wim_type + additionalProperties: false + EditWimRequest: + type: object + properties: + name: + type: string + description: + type: string + wim: + type: string + wim_type: + type: string + wim_url: + type: string + format: uri + user: + type: string + password: + type: string + config: + type: object + additionalProperties: true + additionalProperties: false + SdnBasicProperties: + type: object + properties: + name: + type: string + description: + type: string + dpid: + type: string + format: mac_address + ip: + type: string + format: ipv4 + port: + type: integer + type: + type: string + enum: + - floodlight + - opendaylight + - onos + version: + type: string + user: + type: string + password: + type: string + SdnExtraProperties: + type: object + properties: + _id: + type: string + format: uuid + schema_version: + type: string + format: X.Y[.Z] + SdnInfo: + allOf: + - $ref: '#/components/schemas/SdnExtraProperties' + - $ref: '#/components/schemas/SdnBasicProperties' + ArrayOfSdnInfo: + type: array + items: + $ref: '#/components/schemas/SdnInfo' + CreateSdnRequest: + allOf: + - $ref: '#/components/schemas/SdnBasicProperties' + required: + - name + - type + - ip + - port + - dpid + additionalProperties: false + EditSdnRequest: + allOf: + - $ref: '#/components/schemas/SdnBasicProperties' + additionalProperties: false + NsPmJobReportInfo: + type: object + properties: + entries: + type: array + items: + type: object + properties: + objectInstanceId: + type: string + format: uuid + performanceMetric: + type: string + performanceValue: + type: object + properties: + performanceValue: + type: object + properties: + performanceValue: + type: number + vnfMemberIndex: + type: string + vduName: + type: string + timestamp: + type: number + PduInterfaces: + type: array + items: + type: object + properties: + name: + type: string + mgmt: + type: boolean + type: + type: string + enum: + - overlay + - underlay + ip-address: + type: string + format: ipv4 + mac-address: + type: string + format: mac_address + vim-network-name: + type: string + vim-network-id: + type: string + required: + - name + - mgmt + - ip-address + additionalProperties: false + PduInfo: + type: object + properties: + _id: + type: string + format: uuid + name: + type: string + type: + type: string + description: + type: string + shared: + type: boolean + vims: + type: array + items: + type: string + vim_accounts: + type: array + items: + type: string + interfaces: + $ref: '#/components/schemas/PduInterfaces' + ArrayOfPduInfo: + type: array + items: + $ref: '#/components/schemas/PduInfo' + CreatePduRequest: + type: object + properties: + name: + type: string + type: + type: string + description: type: string - format: uuid - vnfPkgIds: - description: | - List of VNF package identifiers referenced by the on-boarded - NS descriptor resource. + shared: + type: boolean + vims: type: array items: type: string - format: uuid - pnfdInfoIds: - description: | - List of PNFD identifiers referenced by the on-boarded NS - descriptor resource. + vim_accounts: type: array items: type: string - format: uuid - nestedNsdInfoIds: - description: | - List of NSD identifiers referenced by the on-boarded NS - descriptor resource. + interfaces: + $ref: '#/components/schemas/PduInterfaces' + required: + - name + - type + - interfaces + additionalProperties: false + EditPduRequest: + type: object + properties: + name: + type: string + type: + type: string + description: + type: string + shared: + type: boolean + vims: 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 + vim_accounts: + type: array + items: + type: string + interfaces: + $ref: '#/components/schemas/PduInterfaces' + additionalProperties: false + K8sClusterNetList: + type: array + items: + type: object + additionalProperties: false + K8sClusterDeploymentMethods: + type: object + properties: + juju-bundle: + type: boolean + helm-chart-v3: + type: boolean + additionalProperties: false + minProperties: 3 + K8sClusterInfo: + type: object + properties: + _id: type: string - self: - description: | - URI of this resource + format: uuid + schema_version: type: string - format: uri - nsd_content: - description: | - Link to the NSD content resource. + format: X.Y[.Z] + schema_type: type: string - format: uri - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links - - self - - nsd_content - ArrayOfNsdInfo: + name: + type: string + description: + type: string + credentials: + type: object + additionalProperties: true + vim_account: + type: string + format: uuid + k8s_version: + type: string + nets: + $ref: '#/components/schemas/K8sClusterNetList' + deployment_methods: + $ref: '#/components/schemas/K8sClusterDeploymentMethods' + namespace: + type: string + cni: + type: array + items: + type: string + ArrayOfK8sClusterInfo: type: array items: - $ref: '#/components/schemas/NsdInfo' - ProblemDetails: + $ref: '#/components/schemas/K8sClusterInfo' + CreateK8sClusterRequest: type: object properties: - type: + schema_version: type: string - format: uri - title: + format: X.Y[.Z] + schema_type: type: string - status: - type: integer - detail: + name: type: string - instance: + description: type: string - format: uri - additionalProperties: true + credentials: + type: object + additionalProperties: true + vim_account: + type: string + format: uuid + k8s_version: + type: string + nets: + $ref: '#/components/schemas/K8sClusterNetList' + namespace: + type: string + cni: + type: array + items: + type: string 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: + - name + - credentials + - vim_account + - k8s_version + - nets + additionalProperties: false + EditK8sClusterRequest: type: object properties: - operationalState: - $ref: '#/components/schemas/VnfPackageOperationalStateType' - userDefinedData: - $ref: '#/components/schemas/KeyValuePairs' - VnfPkgInfo: + name: + type: string + description: + type: string + credentials: + type: object + additionalProperties: true + vim_account: + type: string + format: uuid + k8s_version: + type: string + nets: + $ref: '#/components/schemas/K8sClusterNetList' + namespace: + type: string + cni: + type: array + items: + type: string + additionalProperties: false + VcaInfo: type: object properties: - id: - description: | - Identifier of the VNF package. This identifier is allocated by the NFVO. + _id: 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. + schema_version: 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. + format: X.Y[.Z] + schema_type: 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. + name: 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. + description: 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. + endpoints: 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. + user: 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 + secret: type: string - self: - description: | - URI of this resource + cacert: type: string - format: uri - vnfd: - description: | - Link to the VNFD resource. This link shall be present after the VNF - package content is on-boarded. + lxd-cloud: type: string - format: uri - package_content: - description: | - Link to the "VNF package content" resource. + lxd-credentials: type: string - format: uri - required: - - id - - onboardingState - - operationalState - - usageState - - _links - - self - - package_content - ArrayOfVnfPkgInfo: + k8s-cloud: + type: string + k8s-credentials: + type: string + model-config: + type: object + additionalProperties: true + ArrayOfVcaInfo: type: array items: - $ref: '#/components/schemas/VnfPkgInfo' - UploadVnfPackageFromUriRequest: + $ref: '#/components/schemas/VcaInfo' + CreateVcaRequest: type: object properties: - addressInformation: - description: | - Address information of the VNF package content. The NFVO can use - this address to obtain the VNF package. + schema_version: 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. + format: X.Y[.Z] + schema_type: 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. + name: + type: string + description: + type: string + endpoints: + type: string + user: + type: string + secret: + type: string + cacert: + type: string + lxd-cloud: + type: string + lxd-credentials: + type: string + k8s-cloud: + type: string + k8s-credentials: type: string + model-config: + type: object + additionalProperties: true required: - - addressInformation - CreateNsRequest: + - name + - endpoints + - user + - secret + - cacert + - lxd-cloud + - lxd-credentials + - k8s-cloud + - k8s-credentials + additionalProperties: false + EditVcaRequest: type: object properties: - nsdId: - description: | - Identifier of the NSD that defines the NS instance to be created. + name: type: string - format: uuid - nsName: - description: | - Human-readable name of the NS instance to be created. + description: type: string - nsDescription: - description: | - Human-readable description of the NS instance to be created. + endpoints: type: string - required: - - nsdId - - nsName - - nsDescription - NsStateType: + user: + type: string + secret: + type: string + cacert: + type: string + lxd-cloud: + type: string + lxd-credentials: + type: string + k8s-cloud: + type: string + k8s-credentials: + type: string + model-config: + type: object + additionalProperties: true + additionalProperties: false + K8sRepoType: 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: + enum: + - chart + - bundle + K8sRepoInfo: type: object properties: - id: - description: Identifier of the NS instance. + _id: type: string format: uuid - nsInstanceName: - description: Human readable name of the NS instance. + name: type: string - nsInstanceDescription: - description: Human readable description of the NS instance. + description: type: string - nsdId: - description: Identifier of the NSD on which the NS instance is based. + type: + $ref: '#/components/schemas/K8sRepoType' + url: 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. + format: uri + username: 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 + description: repository username + password: type: string - self: - description: | - URI of this resource + description: repository password + ca-file: 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). + description: verify certificates of HTTPS-enabled servers using this CA bundle + cert-file: 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). + description: identify HTTPS client using this SSL certificate file + skip-tls-verify: + type: boolean + description: skip tls certificate checks for the repository + key-file: 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). + description: identify HTTPS client using this SSL key file + oci: + type: boolean + default: false + description: > + Flag to indicate whether or not it is an OCI-enabled repo (default: false) + required: + - name + - type + - url + additionalProperties: false + ArrayOfK8sRepoInfo: + type: array + items: + $ref: '#/components/schemas/K8sRepoInfo' + CreateK8sRepoRequest: + type: object + properties: + name: 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). + description: 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: + $ref: '#/components/schemas/K8sRepoType' + url: 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: + - name + - type + - url + additionalProperties: false + NslcmSubscriptionResponse: 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: + properties: + id: + type: string + format: uuid + filter: + type: object + CallbackUri: + type: string + format: uri + _links: + type: object + NslcmSubscriptionInfo: type: object properties: - nsFlavourId: - description: Identifier of the NS deployment flavour to be instantiated. + _id: 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. + format: uuid + _admin: + type: object + schema_version: + type: string + format: 'X.Y[.Z]' + CallbackUri: + type: string + format: uri + filter: + type: object + authentication: + $ref: '#/components/schemas/Authenticationschema' + ArrayOfNslcmSubscriptionInfo: + type: array + items: + $ref: '#/components/schemas/NslcmSubscriptionInfo' + NsInstanceSubscriptionFilter: + description: | + used to identify the network service + type: object + oneOf: + - $ref: '#/components/schemas/nsdIds' + - $ref: '#/components/schemas/vnfdIds' + - $ref: '#/components/schemas/pnfdIds' + - $ref: '#/components/schemas/nsInstanceIds' + - $ref: '#/components/schemas/nsInstanceNames' + nsdIds: + type: array + items: + type: string + vnfdIds: + type: array + items: + type: string + pnfdIds: + type: array + items: + type: string + nsInstanceIds: + type: array + items: + type: string + nsInstanceNames: + type: array + items: + type: string + Nslcmsubschema: + type: object + properties: + nsInstanceSubscriptionFilter: + $ref: '#/components/schemas/NsInstanceSubscriptionFilter' + notificationTypes: + description: | + If NsLcmOperationOccurrenceNotification is selected then at least operationTypes or states is required. If NsLcmOperationOccurrenceNotification is selected then at least nsComponentTypes, lcmOpName and lcmOpOccStatus is required 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: string + enum: + - NsIdentifierCreationNotification + - NsIdentifierDeletionNotification + - NsLcmOperationOccurrenceNotification + - NsChangeNotification + operationTypes: 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: string + enum: + - INSTANTIATE + - SCALE + - TERMINATE + - UPDATE + - HEAL + operationStates: 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. + enum: + - PROCESSING + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - FAILED_TEMP + - ROLLING_BACK + - ROLLED_BACK + nsComponentTypes: 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: string + enum: + - VNF + - NS + - PNF + lcmOpNameImpactingNsComponent: 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: string + enum: + - VNF_INSTANTIATE + - VNF_SCALE + - VNF_SCALE_TO_LEVEL + - VNF_CHANGE_FLAVOUR + - VNF_TERMINATE + - VNF_HEAL + - VNF_OPERATE + - VNF_CHANGE_EXT_CONN + - VNF_MODIFY_INFO + - NS_INSTANTIATE + - NS_SCALE + - NS_UPDATE + - NS_TERMINATE + - NS_HEAL + lcmOpOccStatusImpactingNsComponent: type: array items: - $ref: '#/components/schemas/AffinityOrAntiAffinityRule' - required: - - nsFlavourId - UpdateNsRequest: + type: string + enum: + - START + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - ROLLED_BACK + Authenticationschema: type: object properties: - updateType: + authType: 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: + enum: + - basic + paramsBasic: + type: object + properties: + userName: + type: string + password: + type: string + NslcmSubscriptionRequest: 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: + filter: + $ref: '#/components/schemas/Nslcmsubschema' + CallbackUri: + type: string + format: uri + authentication: + $ref: '#/components/schemas/Authenticationschema' + required: + - CallbackUri + CancelNSLCMOpOccRequest: 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. + cancelMode: type: string - format: date-time - ArrayOfNsInstance: - type: array - items: - $ref: '#/components/schemas/NsInstance' + enum: + - GRACEFUL + - FORCEFUL + # END SCHEMAS + requestBodies: CreateNsdInfoRequest: content: @@ -2049,11 +9258,21 @@ components: application/yaml: schema: $ref: '#/components/schemas/NsdInfoModifications' - NsdContent: + AlarmInfoModifications: + content: + application/json: + schema: + $ref: '#/components/schemas/AlarmInfoModifications' + application/yaml: + schema: + $ref: '#/components/schemas/AlarmInfoModifications' + NsDescriptor: content: text/plain: schema: $ref: '#/components/schemas/NsDescriptor' + NsPackage: + content: application/zip: schema: $ref: '#/components/schemas/NsPackage' @@ -2078,30 +9297,37 @@ components: application/zip: schema: $ref: '#/components/schemas/VnfPackage' - UploadVnfPackageFromUriRequest: + VnfDescriptor: + content: + text/plain: + schema: + $ref: '#/components/schemas/VnfDescriptor' + # CreateNsRequest: + # Substituted by InstantiateNsRequest + InstantiateNsRequest: content: application/json: schema: - $ref: '#/components/schemas/UploadVnfPackageFromUriRequest' + $ref: '#/components/schemas/InstantiateNsRequest' application/yaml: schema: - $ref: '#/components/schemas/UploadVnfPackageFromUriRequest' - CreateNsRequest: + $ref: '#/components/schemas/InstantiateNsRequest' + HealNsRequest: content: application/json: schema: - $ref: '#/components/schemas/CreateNsRequest' + $ref: '#/components/schemas/HealNsRequest' application/yaml: schema: - $ref: '#/components/schemas/CreateNsRequest' - InstantiateNsRequest: + $ref: '#/components/schemas/HealNsRequest' + NSinstanceMigrateRequest: content: application/json: schema: - $ref: '#/components/schemas/InstantiateNsRequest' + $ref: '#/components/schemas/NSinstanceMigrateRequest' application/yaml: schema: - $ref: '#/components/schemas/InstantiateNsRequest' + $ref: '#/components/schemas/NSinstanceMigrateRequest' ScaleNsRequest: content: application/json: @@ -2110,6 +9336,14 @@ components: application/yaml: schema: $ref: '#/components/schemas/ScaleNsRequest' + TerminateNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/TerminateNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/TerminateNsRequest' UpdateNsRequest: content: application/json: @@ -2118,25 +9352,249 @@ components: application/yaml: schema: $ref: '#/components/schemas/UpdateNsRequest' - HealNsRequest: + VerticalscaleNsRequest: content: application/json: schema: - $ref: '#/components/schemas/HealNsRequest' + $ref: '#/components/schemas/VerticalscaleNsRequest' application/yaml: schema: - $ref: '#/components/schemas/HealNsRequest' - TerminateNsRequest: + $ref: '#/components/schemas/VerticalscaleNsRequest' + # CreateNSinstanceContentRequest: + # Substituted by InstantiateNsRequest + CreateNstInfoRequest: content: application/json: schema: - $ref: '#/components/schemas/TerminateNsRequest' + $ref: '#/components/schemas/CreateNstInfoRequest' application/yaml: schema: - $ref: '#/components/schemas/TerminateNsRequest' + $ref: '#/components/schemas/CreateNstInfoRequest' + NetSliceTemplate: + content: + text/plain: + schema: + $ref: '#/components/schemas/NetSliceTemplate' + NetSlicePackage: + content: + application/zip: + schema: + $ref: '#/components/schemas/NetSlicePackage' + NstInfoModifications: + content: + application/json: + schema: + $ref: '#/components/schemas/NstInfoModifications' + application/yaml: + schema: + $ref: '#/components/schemas/NstInfoModifications' + # CreateNsiRequest: + # Substituted by InstantiateNsiRequest + InstantiateNsiRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/InstantiateNsiRequest' + application/yaml: + schema: + $ref: '#/components/schemas/InstantiateNsiRequest' + TerminateNsiRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/TerminateNsiRequest' + application/yaml: + schema: + $ref: '#/components/schemas/TerminateNsiRequest' + NsiActionRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/NsiActionRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NsiActionRequest' + # CreateNsiContentRequest: + # Substituted by InstantiateNsiRequest + CreateTokenRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTokenRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateTokenRequest' + CreateUserRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateUserRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateUserRequest' + EditUserRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditUserRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditUserRequest' + CreateProjectRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateProjectRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateProjectRequest' + EditProjectRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditProjectRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditProjectRequest' + CreateRoleRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateRoleRequest' + EditRoleRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditRoleRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditRoleRequest' + CreateVimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateVimRequest' + EditVimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditVimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditVimRequest' + CreateWimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateWimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateWimRequest' + EditWimRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditWimRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditWimRequest' + CreateSdnRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSdnRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateSdnRequest' + EditSdnRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditSdnRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditSdnRequest' + CreatePduRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePduRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreatePduRequest' + EditPduRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditPduRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditPduRequest' + CreateK8sClusterRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateK8sClusterRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateK8sClusterRequest' + EditK8sClusterRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditK8sClusterRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditK8sClusterRequest' + CreateVcaRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVcaRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateVcaRequest' + EditVcaRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/EditVcaRequest' + application/yaml: + schema: + $ref: '#/components/schemas/EditVcaRequest' + CreateK8sRepoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateK8sRepoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateK8sRepoRequest' + NslcmSubscriptionRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/NslcmSubscriptionRequest' + application/yaml: + schema: + $ref: '#/components/schemas/NslcmSubscriptionRequest' + CancelNSLCMOpOccRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CancelNSLCMOpOccRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CancelNSLCMOpOccRequest' + # END REQUEST BODIES + securitySchemes: bearerAuth: type: http scheme: bearer - -