Feature 11009 NS config templates as first class citizens in OSM 43/14443/10
authorkayal2001 <kayalvizhi.v@tataelxsi.co.in>
Mon, 24 Jun 2024 12:34:47 +0000 (18:04 +0530)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 11 Jul 2024 15:04:21 +0000 (17:04 +0200)
Change-Id: I21a2faae5edaceb70b26b6dda4a9f2775d58ade9
Signed-off-by: kayal2001 <kayalvizhi.v@tataelxsi.co.in>
osm-openapi.yaml

index 736724f..b9dc2db 100644 (file)
@@ -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: