Feature 10909: Heal operation for VDU
[osm/SOL005.git] / osm-openapi.yaml
index 3b3354a..a7f57be 100644 (file)
@@ -1407,6 +1407,12 @@ paths:
         description: NS Instance ID
         schema:
           type: string
+      - name: vcaStatusRefresh
+        in: query
+        required: false
+        description: Set to true if vca status needs to be refreshed.
+        schema:
+          type: boolean
     get:
       tags:
         - "NS instances"
@@ -1599,6 +1605,62 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/heal':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Heal a NS instance
+      description: |
+        Heal a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state remains
+        INSTANTIATED.
+      operationId: healNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/HealNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
   '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
     parameters:
       - name: nsInstanceId
@@ -2085,8 +2147,303 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/subscriptions':
+    get:
+      tags:
+        - NS instances
+      summary: Query information about multiple NS instance subscription
+      description: Query information about multiple NS instance subscription
+      operationId: getNsSubcriptions
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        5XX:
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - NS instances
+      summary: Create a new subscription for the Network service
+      description: Create a new subscription for the Network service
+      operationId: addNsSubcriptions
+      requestBody:
+        $ref: '#/components/requestBodies/NslcmSubscriptionRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: object
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionResponse'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionResponse'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        5XX:
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/subscriptions/{nsSubscriptionsId}':
+    parameters:
+      - name: nsSubscriptionsId
+        in: path
+        required: true
+        description: Network Service Subscription ID
+        schema:
+          type: string
+    get:
+      tags:
+        - NS instances
+      summary: Read information about an individual Network Service Subscription
+      description: Read information about an individual Network Service Subscription
+      operationId: getNsSubcriptionId
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        5XX:
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - NS instances
+      summary: Delete an individual Network Service Subscription
+      description: Delete an individual Network Service Subscription
+      operationId: deleteNsSubcriptionId
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        5XX:
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
 # END NS Instances
 
+# BEGIN Alarms
+  '/nsfm/v1/alarms':
+    get:
+      tags:
+        - "Alarms"
+      summary: Query information about multiple alarms
+      description: Query information about multiple alarms
+      operationId: getAlarms
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfAlarm'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfAlarm'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsfm/v1/alarms/{uuid}':
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: Alarm UUID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Alarms"
+      summary: Read an individual Alarm
+      description: Read an individual Alarm
+      operationId: getAlarm
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Alarm'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/Alarm'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    patch:
+      tags:
+        - "Alarms"
+      summary: Modify the data of an  individual Alarm
+      description: Modify the data of an  individual Alarm
+      operationId: updateAlarm
+      requestBody:
+        $ref: '#/components/requestBodies/AlarmInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END Alarms
+
 # BEGIN NetSlice Templates
   '/nst/v1/netslice_templates':
     get:
@@ -5486,6 +5843,218 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/admin/v1/vca':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple VCAs
+      description: Query information about multiple VCAs
+      operationId: getVcas
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVcaInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVcaInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new VCA
+      description: Create a new VCA
+      operationId: createVca
+      requestBody:
+        $ref: '#/components/requestBodies/CreateVcaRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/admin/v1/vca/{vcaId}':
+    parameters:
+      - name: vcaId
+        in: path
+        required: true
+        description: VCA ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual VCA
+      description: Query information about an individual VCA
+      operationId: getVca
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VcaInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VcaInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    patch:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a VCA
+      description: Modify a VCA
+      operationId: editVca
+      requestBody:
+        $ref: '#/components/requestBodies/EditVcaRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a VCA
+      description: Delete a VCA
+      operationId: deleteVca
+      responses:
+        '202':
+          description: Accepted
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
   '/admin/v1/k8srepos':
     get:
       tags:
@@ -5765,6 +6334,15 @@ components:
         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:
@@ -5805,6 +6383,20 @@ components:
         description:
           description: NSD Description
           type: string
+    AlarmInfoModifications:
+      description: |
+        Alarm Information
+      type: object
+      properties:
+        id:
+          description: UUID
+          type: string
+        is_enable:
+          description: To enable/disable the alarm.
+          type: string
+        threshold:
+          description: Threshold value of the Alarm
+          type: string
     NsdInfo:
       description: |
         NS Descriptor Information
@@ -6318,9 +6910,82 @@ components:
             - scaleByStepData
           additionalProperties: false
       required:
-        - scaleType
-        - scaleVnfData
-      additionalProperties: false
+        - scaleType
+        - scaleVnfData
+      additionalProperties: false
+    HealNsRequest:
+      description: >
+        This type represents request parameters for the "Heal NS" operation. This operation supports the healing of an NS
+        instance by healing one or more of the VNF that are part of this NS.
+      type: object
+      properties:
+        timeout_ns_heal:
+          description: timeout for the heal operation in seconds
+          type: integer
+        healVnfData:
+          description: >
+            List of VNF to be healed, together with the information needed to heal each.
+          type: array
+          items:
+            $ref: "#/components/schemas/HealVnfData"
+      required:
+        - healVnfData
+    HealVnfData:
+      description: >
+        This type represents the information to heal a VNF that is part of an NS.
+      type: object
+      required:
+        - vnfInstanceId
+      properties:
+        vnfInstanceId:
+          description: >
+            Identifies the VNF instance, part of the NS, requiring a
+            healing action.
+          type: string
+          format: uuid
+        cause:
+          description: >
+            Indicates the reason why a healing procedure is required.
+          type: string
+        additionalParams:
+          description: >
+            Additional parameters passed by the NFVO as input to
+            the healing process, specific to the VNF being healed.
+          type: object
+          properties:
+            run-day1:
+              description: >
+                Flag to indicate whether or not to run day1 primitives for the VNF (default: false).
+              type: boolean
+              default: false
+            vdu:
+              description: >
+                List of VDU to be healed, together with the information needed to heal each.
+              type: array
+              items:
+                $ref: "#/components/schemas/HealVduData"
+    HealVduData:
+      description: >
+        This type represents the information to heal a VDU that is part of a VNF.
+      type: object
+      required:
+        - vdu-id
+      properties:
+        vdu-id:
+          description: >
+            Identifies the VDU id, part of the VNF, requiring a healing action.
+          type: string
+          format: uuid
+        count-index:
+          description: >
+            Indicates the VDU number when the VDU is part of a scale-group.
+          type: integer
+          minimum: 0
+        run-day1:
+          description: >
+            Flag to indicate whether or not to run day1 primitives for the VDU (default: false).
+          type: boolean
+          default: false
     TerminateNsRequest:
       type: object
       properties:
@@ -6529,6 +7194,45 @@ components:
       type: array
       items:
         $ref: '#/components/schemas/NetSliceInstance'
+    Alarm:
+      description: |
+        Alarm Information
+      type: object
+      properties:
+        _id:
+          description: Identifier of the Alarm.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the Alarm.
+          type: string
+          format: uuid
+        metric:
+          description: Alarm metric.
+          type: string
+        threshold:
+          description: Threshold value of the Alarm.
+          type: number
+          format: float
+        operation:
+          description: Operation to be applied.
+          type: string
+        action:
+          description: Action to be taken.
+          type: string
+        status:
+          description: Current status of the alarm.
+          type: string
+      required:
+        - _id
+        - id
+        - metric
+        - threshold
+        - operation
+    ArrayOfAlarm:
+      type: array
+      items:
+        $ref: '#/components/schemas/Alarm'
     # CreateNsiRequest:
       # Substituted by InstantiateNsiRequest
     InstantiateNsiRequest:
@@ -7102,19 +7806,19 @@ components:
           type: integer
           minimum: 0
           nullable: false
-        nsts:
+        slice_templates:
           type: integer
           minimum: 0
           nullable: false
-        pdus:
+        pduds:
           type: integer
           minimum: 0
           nullable: false
-        nsrs:
+        ns_instances:
           type: integer
           minimum: 0
           nullable: false
-        nsis:
+        slice_instances:
           type: integer
           minimum: 0
           nullable: false
@@ -7126,7 +7830,23 @@ components:
           type: integer
           minimum: 0
           nullable: false
-        sdns:
+        sdn_controllers:
+          type: integer
+          minimum: 0
+          nullable: false
+        k8sclusters:
+          type: integer
+          minimum: 0
+          nullable: false
+        vca:
+          type: integer
+          minimum: 0
+          nullable: false
+        k8srepos:
+          type: integer
+          minimum: 0
+          nullable: false
+        osmrepos:
           type: integer
           minimum: 0
           nullable: false
@@ -7142,19 +7862,19 @@ components:
           type: integer
           minimum: 0
           nullable: true
-        nsts:
+        slice_templates:
           type: integer
           minimum: 0
           nullable: true
-        pdus:
+        pduds:
           type: integer
           minimum: 0
           nullable: true
-        nsrs:
+        ns_instances:
           type: integer
           minimum: 0
           nullable: true
-        nsis:
+        slice_instances:
           type: integer
           minimum: 0
           nullable: true
@@ -7166,7 +7886,23 @@ components:
           type: integer
           minimum: 0
           nullable: true
-        sdns:
+        sdn_controllers:
+          type: integer
+          minimum: 0
+          nullable: true
+        k8sclusters:
+          type: integer
+          minimum: 0
+          nullable: true
+        vca:
+          type: integer
+          minimum: 0
+          nullable: true
+        k8srepos:
+          type: integer
+          minimum: 0
+          nullable: true
+        osmrepos:
           type: integer
           minimum: 0
           nullable: true
@@ -7295,9 +8031,14 @@ components:
           type: string
         vim_password:
           type: string
+        vca:
+          type: string
+          format: uuid
         config:
           type: object
           additionalProperties: true
+        resources:
+          type: object
     ArrayOfVimInfo:
       type: array
       items:
@@ -7329,9 +8070,14 @@ components:
           type: string
         vim_password:
           type: string
+        vca:
+          type: string
+          format: uuid
         config:
           type: object
           additionalProperties: true
+        resources:
+          type: object
       required:
         - name
         - vim_url
@@ -7362,6 +8108,9 @@ components:
           type: string
         vim_password:
           type: string
+        vca:
+          type: string
+          format: uuid
         config:
           type: object
           additionalProperties: true
@@ -7764,6 +8513,113 @@ components:
           items:
             type: string
       additionalProperties: false
+    VcaInfo:
+      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
+        endpoints:
+          type: string
+        user:
+          type: string
+        secret:
+          type: string
+        cacert:
+          type: string
+        lxd-cloud:
+          type: string
+        lxd-credentials:
+          type: string
+        k8s-cloud:
+          type: string
+        k8s-credentials:
+          type: string
+        model-config:
+          type: object
+          additionalProperties: true
+    ArrayOfVcaInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VcaInfo'
+    CreateVcaRequest:
+      type: object
+      properties:
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
+          type: string
+        name:
+          type: string
+        description:
+          type: string
+        endpoints:
+          type: string
+        user:
+          type: string
+        secret:
+          type: string
+        cacert:
+          type: string
+        lxd-cloud:
+          type: string
+        lxd-credentials:
+          type: string
+        k8s-cloud:
+          type: string
+        k8s-credentials:
+          type: string
+        model-config:
+          type: object
+          additionalProperties: true
+      required:
+        - name
+        - endpoints
+        - user
+        - secret
+        - cacert
+        - lxd-cloud
+        - lxd-credentials
+        - k8s-cloud
+        - k8s-credentials
+      additionalProperties: false
+    EditVcaRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        description:
+          type: string
+        endpoints:
+          type: string
+        user:
+          type: string
+        secret:
+          type: string
+        cacert:
+          type: string
+        lxd-cloud:
+          type: string
+        lxd-credentials:
+          type: string
+        k8s-cloud:
+          type: string
+        k8s-credentials:
+          type: string
+        model-config:
+          type: object
+          additionalProperties: true
+      additionalProperties: false
     K8sRepoType:
       type: string
       enum:
@@ -7784,6 +8640,24 @@ components:
         url:
           type: string
           format: uri
+        username:
+          type: string
+          description: repository username
+        password:
+          type: string
+          description: repository password
+        ca-file:
+          type: string
+          description: verify certificates of HTTPS-enabled servers using this CA bundle
+        cert-file:
+          type: string
+          description: identify HTTPS client using this SSL certificate file
+        skip-tls-verify:
+          type: boolean
+          description: skip tls certificate checks for the repository
+        key-file:
+          type: string
+          description: identify HTTPS client using this SSL key file
     ArrayOfK8sRepoInfo:
       type: array
       items:
@@ -7805,6 +8679,172 @@ components:
         - 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:
@@ -7824,6 +8864,14 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NsdInfoModifications'
+    AlarmInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/AlarmInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/AlarmInfoModifications'
     NsDescriptor:
       content:
         text/plain:
@@ -7870,6 +8918,14 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/InstantiateNsRequest'
+    HealNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/HealNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/HealNsRequest'
     ScaleNsRequest:
       content:
         application/json:
@@ -8078,6 +9134,22 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/EditK8sClusterRequest'
+    CreateVcaRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateVcaRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateVcaRequest'
+    EditVcaRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditVcaRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditVcaRequest'
     CreateK8sRepoRequest:
       content:
         application/json:
@@ -8086,6 +9158,14 @@ components:
         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: