From: kayal2001 Date: Mon, 24 Jun 2024 12:34:47 +0000 (+0530) Subject: Feature 11009 NS config templates as first class citizens in OSM X-Git-Tag: release-v16.0-start~2 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=ae8f00a82fcf1140a9d15dc4ddbaf721ac9a61fd;p=osm%2FSOL005.git Feature 11009 NS config templates as first class citizens in OSM Change-Id: I21a2faae5edaceb70b26b6dda4a9f2775d58ade9 Signed-off-by: kayal2001 --- diff --git a/osm-openapi.yaml b/osm-openapi.yaml index 736724f..b9dc2db 100644 --- a/osm-openapi.yaml +++ b/osm-openapi.yaml @@ -678,6 +678,282 @@ paths: $ref: '#/components/responses/UnexpectedError' # END NS Packages +# BEGIN Ns Config Templates + '/nsd/v1/ns_config_template': + get: + tags: + - "Ns packages" + summary: Query information about multiple Ns config templates + description: Query information about multiple Ns config templates + operationId: getNsconfigtemplates + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ArrayOfNsConfigTemplateInfo' + application/yaml: + schema: + $ref: '#/components/schemas/ArrayOfNsConfigTemplateInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '500': + $ref: '#/components/responses/InternalServerError' + '503': + $ref: '#/components/responses/ServiceUnavailable' + '5XX': + $ref: '#/components/responses/UnexpectedError' + default: + $ref: '#/components/responses/UnexpectedError' + post: + tags: + - "Ns packages" + summary: Create a new Ns config template + description: | + NS config templates are specific configuration templates + (instantiation parameters) to be applied to NS packages. + when they are instantiated. + Template consist of NSD ID, template name and instantiation parameters. + operationId: addNsconfigtemplate + requestBody: + $ref: '#/components/requestBodies/CreateNsConfigTemplateInfoRequest' + 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' + '/nsd/v1/ns_config_template/{nsconfigTemplateId}': + parameters: + - name: nsconfigTemplateId + in: path + required: true + description: Ns config template ID + schema: + type: string + get: + tags: + - "Ns packages" + summary: Read information about an individual Ns config template resource + description: Read information about an individual Ns config template resource + operationId: getNsconfigtemplate + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsConfigTemplateInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NsConfigTemplateInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $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 config template + description: Delete an individual NS config template + operationId: deleteNsconfigtemplate + 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' + '/nsd/v1/ns_config_template/{nsconfigTemplateId}/template_content': + parameters: + - name: nsconfigTemplateId + in: path + required: true + description: Ns config template ID + schema: + type: string + get: + tags: + - "Ns packages" + summary: Fetch the content of a Ns config template + description: Fetch the content of a Ns config template + operationId: getTemplatecontent + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/NsConfigTemplateInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NsConfigTemplateInfo' + '206': + description: Partial Content + headers: + Content-Range: + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/NsConfigTemplateInfo' + application/yaml: + schema: + $ref: '#/components/schemas/NsConfigTemplateInfo' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '409': + $ref: '#/components/responses/Conflict' + '422': + $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 the content of a Ns config template + description: | + Template name and instantiation parameters + can be modified. + operationId: updateTemplatecontent + requestBody: + $ref: '#/components/requestBodies/NsConfigTemplateInfoModifications' + 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' +# END Ns Config Templates + # BEGIN VNF Packages '/vnfpkgm/v1/vnf_packages': get: @@ -6614,6 +6890,73 @@ components: required: - status - detail + CreateNsConfigTemplateInfoRequest: + type: object + properties: + name: + description: Ns Config Template name + type: string + nsdId: + description: | + ID of NS descriptor to which + template is associated + type: string + config: + description: Instantiation parameters + type: object + additionalProperties: false + required: + - name + - nsdId + - config + additionalProperties: false + NsConfigTemplateInfo: + description: | + Ns Config template information includes NSD ID, name + and instantiation parameters of vld, vnf, additionParamForVnf, + additionalParamsForNs. + type: object + properties: + _id: + description: | + Identifier of the inboarded Ns config template resource. + type: string + format: uuid + name: + description: | + Name of the onboarded Ns config template. This information + is given by the user and it is unique. + type: string + nsdId: + description: | + Identifier of the NS descriptor, which is associated + with Ns config template + type: string + config: + description: | + It includes instantiation parameters such as + vld, vnf, additionalParamforVnf. + type: object + ArrayOfNsConfigTemplateInfo: + type: array + items: + $ref: '#/components/schemas/NsConfigTemplateInfo' + NsConfigTemplateInfoModifications: + description: | + Ns Config Template information + It includes name of the template and instantiation parameters. + Ns descriptor id cannot be edited. + type: object + properties: + name: + description: | + Name of the template + type: string + config: + description: | + Instantiation parameters such as vld, vnf, additionalParamsForVnf + can be edit. + type: object VnfDescriptor: type: string format: yaml|json @@ -6715,6 +7058,12 @@ components: Identifier of the VIM Account where the NS instance shall be created. type: string format: uuid + nsConfigTemplateId: + description: | + Identifier of the Ns config template which is selected + while instantiation + type: string + format: uuid lcmOperationType: type: string nsInstanceId: @@ -9203,6 +9552,22 @@ components: application/zip: schema: $ref: '#/components/schemas/NsPackage' + CreateNsConfigTemplateInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNsdInfoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CreateNsdInfoRequest' + NsConfigTemplateInfoModifications: + content: + application/json: + schema: + $ref: '#/components/schemas/NsdInfoModifications' + application/yaml: + schema: + $ref: '#/components/schemas/NsdInfoModifications' CreateVnfPkgInfoRequest: content: application/json: