X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm-openapi.yaml;h=44789655a9e612ec1d2f81a630c108a74f4ccdd8;hb=31b3a80ba77bded74b9af8782180f6005f932298;hp=d8d843996b19712a140c5b075a30d6737b7d409f;hpb=60e2ee99de20cc9c822647da835c62be514dd3db;p=osm%2FSOL005.git diff --git a/osm-openapi.yaml b/osm-openapi.yaml index d8d8439..4478965 100644 --- a/osm-openapi.yaml +++ b/osm-openapi.yaml @@ -1,14 +1,15 @@ 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. - For more information on OSM, you can visit - [http://osm.etsi.org](http://osm.etsi.org) or connect to IRCs - [Freenode, #etsi-osm](http://webchat.freenode.net?channels=etsi-osm) or on - [OSM IRC, #tech](https://osm.etsi.org:8080/kiwi) + For more information on OSM, you can visit [http://osm.etsi.org](http://osm.etsi.org). + You can send us your comments and questions to OSM_TECH@list.etsi.org + or join the [OpenSourceMANO Slack Workplace](https://join.slack.com/t/opensourcemano/shared_invite/enQtMzQ3MzYzNTQ0NDIyLWVkNTE4ZjZjNWI0ZTQyN2VhOTI1MjViMzU1NWYwMWM3ODI4NTQyY2VlODA2ZjczMWIyYTFkZWNiZmFkM2M2ZDk) version: "1.0.0" title: OSM NB API featuring ETSI NFV SOL005 contact: @@ -16,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 @@ -23,16 +25,38 @@ 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: - /nsd/v1/ns_descriptors: + +# BEGIN NS Packages + '/nsd/v1/ns_descriptors': get: tags: - "NS packages" summary: Query information about multiple NS descriptor resources description: Query information about multiple NS descriptor resources operationId: getNSDs - security: - - bearerAuth: [] responses: '200': description: OK @@ -73,20 +97,23 @@ 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: '201': description: Created + headers: + Location: + schema: + type: string + format: uri 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': @@ -112,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 @@ -160,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 @@ -192,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': @@ -234,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': @@ -283,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 @@ -316,258 +346,8124 @@ 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 - userDefinedData: - type: object - additionalProperties: - type: string - CreateNsdInfoRequest: - type: object - properties: - userDefinedData: - $ref: '#/components/schemas/userDefinedData' - NsdOnboardingStateType: - type: string - enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED] - description: | - NSD onboarding state: - * `CREATED` - The NSD information object is created. - * `UPLOADING` - The associated NSD content is being uploaded. - * `PROCESSING` - The associated NSD content is being processed, e.g. validation. - * `ONBOARDED` - The associated NSD content is on-boarded. - NsdOperationalStateType: - type: string - enum: [ENABLED, DISABLED] - description: | - NSD operational state: - * `ENABLED` - The NSD is enabled. - * `ENABLED` - The NSD is disabled. - NsdUsageStateType: - type: string - enum: [IN_USE, NOT_IN_USE] - description: | - NSD operational state: - * `IN_USE` - The NSD is in use. - * `NOT_IN_USE` - The NSD is not in use. - NsdInfoModifications: - type: object - properties: - nsdOperationalState: - $ref: '#/components/schemas/NsdOperationalStateType' - userDefinedData: - $ref: '#/components/schemas/userDefinedData' - NsdInfo: - type: object - properties: - id: - description: | - Identifier of the onboarded individual NS descriptor - resource. This identifier is allocated by the NFVO. - type: string - format: uuid - nsdId: - description: | - This identifier, which is allocated by the NSD - designer, identifies the NSD in a globally unique - way. It is copied from the NSD content and shall be - present after the NSD content is on-boarded. - type: string - format: uuid - nsdName: - description: | - Name of the onboarded NSD. This information is - copied from the NSD content and shall be present - after the NSD content is on-boarded. - type: string - nsdVersion: - description: | - Version of the on-boarded NSD. This information is - copied from the NSD content and shall be present - after the NSD content is on-boarded. - type: string - nsdDesigner: - description: | - Designer of the on-boarded NSD. This information is - copied from the NSD content and shall be present - after the NSD content is on-boarded. - type: string - nsdInvariantId: - description: | - This identifier, which is allocated by the NSD designer, - identifies an NSD in a version independent manner. This - information is copied from the NSD content and shall be - present after the NSD content is on-boarded. - type: string - vnfPkgIds: - description: | - List of VNF package identifiers referenced by the on-boarded - NS descriptor resource. - type: array - items: - type: string - format: uuid - pnfdInfoIds: - description: | - List of PNFD identifiers referenced by the on-boarded NS - descriptor resource. - type: array - items: - type: string - format: uuid - nestedNsdInfoIds: - description: | - List of NSD identifiers referenced by the on-boarded NS - descriptor resource. - type: array - items: - type: string - format: uuid - nsdOnboardingState: - $ref: '#components/schemas/NsdOnboardingStateType' - onboardingFailureDetails: - $ref: '#/components/schemas/ProblemDetails' - nsdOperationalState: - $ref: '#components/schemas/NsdOperationalStateType' - nsdUsagestate: - $ref: '#components/schemas/NsdUsageStateType' - userDefinedData: - $ref: '#/components/schemas/userDefinedData' - self: - type: string - format: uri - nsd_content: - type: string - format: uri - required: - - id - ArrayOfNsdInfo: - type: array - items: - $ref: '#/components/schemas/NsdInfo' - # Problem details as described in RFC 7807. - # Optional fields "type" and "instance", as described in RFC 7807 are not used here. - ProblemDetails: - type: object - properties: - type: - type: string - format: uri - title: + '/nsd/v1/ns_descriptors/{nsdInfoId}/artifacts/{artifactPath}': + parameters: + - name: nsdInfoId + in: path + required: true + description: NS Package ID + schema: type: string - status: - type: integer - detail: + - name: artifactPath + in: path + required: true + description: Artifact Path + schema: type: string - instance: + get: + tags: + - "NS packages" + summary: Fetch individual NS package artifact + description: Fetch individual NS package artifact + operationId: getNsPkgArtifact + 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' + '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd': + parameters: + - name: nsdInfoId + in: path + required: true + description: NS Package ID + schema: type: string - format: uri - additionalProperties: true - required: - - status - - detail - requestBodies: - CreateNsdInfoRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNsdInfoRequest' - application/yaml: - schema: - $ref: '#/components/schemas/CreateNsdInfoRequest' - NsdInfoModifications: - content: - application/json: - schema: - $ref: '#/components/schemas/NsdInfoModifications' - application/yaml: - schema: - $ref: '#/components/schemas/NsdInfoModifications' - NsdContent: - content: - text/plain: - schema: - $ref: '#/components/schemas/NsDescriptor' - application/zip: - schema: - $ref: '#/components/schemas/NsPackage' - securitySchemes: - bearerAuth: - type: http - scheme: bearer - + get: + tags: + - "NS packages" + summary: Read NSD of an on-boarded NS package + description: Read NSD of an on-boarded NS package + operationId: getNsPkgNsd + responses: + '200': + description: OK + content: + text/plain: + schema: + $ref: '#/components/schemas/NsDescriptor' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nsd/v1/ns_descriptors_content': + post: + tags: + - "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: + '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: + - "NS packages" + summary: Query information about multiple NS package resources + description: Query information about multiple NS package resources + operationId: getNsPkgsContent + responses: + '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': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/nsd/v1/ns_descriptors_content/{nsdInfoId}': + parameters: + - name: nsdInfoId + in: path + required: true + description: NS Package ID + schema: + type: string + get: + tags: + - "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/NsdInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NsdInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + put: + tags: + - "NS packages" + summary: Modify an individual NS package resource + description: Modify an individual NS package resource + operationId: updateNsPkgsIdContent + requestBody: + $ref: '#/components/requestBodies/NsdInfoModifications' + 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: + - "NS packages" + summary: Delete an individual NS package resource + description: Delete an individual NS package resource + operationId: deleteNSPkgsIdContent + 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 Packages + +# BEGIN VNF Packages + '/vnfpkgm/v1/vnf_packages': + get: + tags: + - "VNF packages" + summary: Query information about multiple VNF package resources + description: Query information about multiple VNF package resources + operationId: getVnfPkgs + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "VNF packages" + summary: Create a new VNF package resource + description: Create a new VNF package resource + operationId: addVnfPkg + requestBody: + $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest' + 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' + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string + get: + tags: + - "VNF packages" + 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/json: + schema: + $ref: '#/components/schemas/VnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VnfPkgInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + delete: + tags: + - "VNF packages" + summary: Delete an individual VNF package resource + description: Delete an individual VNF package resource + operationId: deleteVnfPkg + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + patch: + tags: + - "VNF packages" + summary: Modify an individual VNF package resource + description: Modify an individual VNF package resource + operationId: updateVnfPkg + 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' + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string + get: + tags: + - "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: + text/plain: + schema: + $ref: '#/components/schemas/VnfDescriptor' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content': + parameters: + - name: vnfPkgId + in: path + required: true + description: VNF Package ID + schema: + type: string + get: + tags: + - "VNF packages" + summary: Fetch an on-boarded VNF package + description: Fetch an on-boarded VNF package + operationId: getVnfPkgContent + responses: + '200': + description: OK + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + '206': + description: Partial Content + headers: + Content-Range: + schema: + type: string + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + put: + tags: + - "VNF packages" + summary: Upload a VNF package by providing the content of the VNF package + description: Upload a VNF package by providing the content of the VNF package + operationId: uploadVnfPkgContent + requestBody: + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + responses: + '202': + description: Accepted + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/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: + - "VNF packages" + summary: Fetch individual VNF package artifact + description: Fetch individual VNF package artifact + operationId: getVnfPkgArtifact + 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' + '/vnfpkgm/v1/vnf_packages_content': + post: + 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: uploadVnfPkgsContent + requestBody: + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + 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: + - "VNF packages" + summary: Query information about multiple VNF package resources + description: Query information about multiple VNF package resources + operationId: getVnfPkgsContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfVnfPkgInfo' + '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' + '/vnfpkgm/v1/vnf_packages_content/{packageContentId}': + parameters: + - name: packageContentId + in: path + required: true + description: VNF Package Content ID + schema: + type: string + get: + tags: + - "VNF packages" + summary: Read information about an individual VNF package resource + description: Read information about an individual VNF package resource + operationId: getVnfPkgsIdContent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VnfPkgInfo' + application/yaml: + schema: + $ref: '#/components/schemas/VnfPkgInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + 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 + 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}/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_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/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 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: + $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 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/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 + 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 + 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 + # 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' + # 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 + 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 + 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 + 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 + 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 + 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 + 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 + config: + type: object + additionalProperties: true + 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 + config: + type: object + additionalProperties: true + 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 + 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 + shared: + type: boolean + vims: + type: array + items: + type: string + vim_accounts: + type: array + items: + type: string + 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 + vim_accounts: + type: array + items: + type: string + interfaces: + $ref: '#/components/schemas/PduInterfaces' + additionalProperties: false + K8sClusterNetList: + type: array + items: + type: object + additionalProperties: true + K8sClusterInfo: + 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 + 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 + ArrayOfK8sClusterInfo: + type: array + items: + $ref: '#/components/schemas/K8sClusterInfo' + CreateK8sClusterRequest: + type: object + properties: + schema_version: + type: string + format: X.Y[.Z] + schema_type: + type: string + 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 + required: + - name + - credentials + - vim_account + - k8s_version + - nets + additionalProperties: false + EditK8sClusterRequest: + type: object + properties: + 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 + K8sRepoType: + type: string + enum: + - chart + - bundle + K8sRepoInfo: + type: object + properties: + _id: + type: string + format: uuid + name: + type: string + description: + type: string + type: + $ref: '#/components/schemas/K8sRepoType' + url: + type: string + format: uri + ArrayOfK8sRepoInfo: + type: array + items: + $ref: '#/components/schemas/K8sRepoInfo' + CreateK8sRepoRequest: + type: object + properties: + name: + type: string + description: + type: string + type: + $ref: '#/components/schemas/K8sRepoType' + url: + type: string + format: uri + required: + - name + - type + - url + additionalProperties: false + NslcmSubscriptionResponse: + type: object + properties: + id: + type: string + format: uuid + filter: + type: object + CallbackUri: + type: string + format: uri + _links: + type: object + NslcmSubscriptionInfo: + type: object + properties: + _id: + type: string + 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: + type: string + enum: + - NsIdentifierCreationNotification + - NsIdentifierDeletionNotification + - NsLcmOperationOccurrenceNotification + - NsChangeNotification + operationTypes: + type: array + items: + type: string + enum: + - INSTANTIATE + - SCALE + - TERMINATE + - UPDATE + - HEAL + operationStates: + type: array + items: + type: string + enum: + - PROCESSING + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - FAILED_TEMP + - ROLLING_BACK + - ROLLED_BACK + nsComponentTypes: + type: array + items: + type: string + enum: + - VNF + - NS + - PNF + lcmOpNameImpactingNsComponent: + type: array + items: + 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: + type: string + enum: + - START + - COMPLETED + - PARTIALLY_COMPLETED + - FAILED + - ROLLED_BACK + Authenticationschema: + type: object + properties: + authType: + type: string + enum: + - basic + paramsBasic: + type: object + properties: + userName: + type: string + password: + type: string + NslcmSubscriptionRequest: + type: object + properties: + filter: + $ref: '#/components/schemas/Nslcmsubschema' + CallbackUri: + type: string + format: uri + authentication: + $ref: '#/components/schemas/Authenticationschema' + required: + - CallbackUri + # END SCHEMAS + + requestBodies: + CreateNsdInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNsdInfoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateNsdInfoRequest' + NsdInfoModifications: + content: + application/json: + schema: + $ref: '#/components/schemas/NsdInfoModifications' + application/yaml: + schema: + $ref: '#/components/schemas/NsdInfoModifications' + NsDescriptor: + content: + text/plain: + schema: + $ref: '#/components/schemas/NsDescriptor' + NsPackage: + content: + application/zip: + schema: + $ref: '#/components/schemas/NsPackage' + CreateVnfPkgInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVnfPkgInfoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateVnfPkgInfoRequest' + VnfPkgInfoModifications: + content: + application/json: + schema: + $ref: '#/components/schemas/VnfPkgInfoModifications' + application/yaml: + schema: + $ref: '#/components/schemas/VnfPkgInfoModifications' + VnfPackage: + content: + application/zip: + schema: + $ref: '#/components/schemas/VnfPackage' + VnfDescriptor: + content: + text/plain: + schema: + $ref: '#/components/schemas/VnfDescriptor' + # CreateNsRequest: + # Substituted by InstantiateNsRequest + InstantiateNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/InstantiateNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/InstantiateNsRequest' + ScaleNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/ScaleNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/ScaleNsRequest' + TerminateNsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/TerminateNsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/TerminateNsRequest' + # CreateNSinstanceContentRequest: + # Substituted by InstantiateNsRequest + CreateNstInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNstInfoRequest' + application/yaml: + schema: + $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' + 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' + # END REQUEST BODIES + + securitySchemes: + bearerAuth: + type: http + scheme: bearer