diff --git a/.gitignore b/.gitignore
index b92d66299da73b0469424fb704da6e59b27e038c..bd807fe65e47931373170ecc22b10e605dc2a008 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 build/
 *.pyc
+ 
diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c2ff8bbcf4e4c4c3edbcdf2bb9440bc601b3d421
--- /dev/null
+++ b/src/SOL002/APIVersion/APIVersion.yaml
@@ -0,0 +1,50 @@
+swagger: "2.0"
+
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
+  title: SOL002 - API version interface
+  description: >
+    SOL002 - API version Interface
+    IMPORTANT: Please note that this file might be not aligned to the current
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
+  license:
+    name: ETSI Forge copyright notice
+    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
+
+externalDocs:
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
+
+schemes:
+  - http
+  - https
+
+consumes:
+  - application/json
+
+produces:
+  - application/json
+
+paths:
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/vnfconfig/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnffm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnfind/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnflcm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnfpm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
\ No newline at end of file
diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml
index 223ffdf63c3a0b851a77c6db6b6b5b266d6137d2..f9aad982a2b8626f5de5b4ffb6eb7a38599fce49 100644
--- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml
+++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml
@@ -1,101 +1,172 @@
 swagger: "2.0"
 
-info: 
-  version: "1.1.0"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL002 - VNF Configuration interface
   description: >
-    VNF Configuration interface of ETSI NFV SOL002
-
-
+    SOL002 - VNF Configuration Interface
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
+
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
 basePath: /vnfconfig/v1
 
-schemes: 
+schemes:
   - http
   - https
 
-consumes: 
+consumes:
   - application/json
 
-produces: 
+produces:
   - application/json
 
-
 paths:
-###############################################################################
-# Configuration                                                               #
-###############################################################################
-    /configuration:
-      #SOL002 location: 9.4.2
-      get:
-        summary: Read VNF/VNFC configuration from VNF.
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # VNF Configuration                                                           #
+  ###############################################################################
+  '/configuration':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
         description: >
-          The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.
-        responses:
-          200:
-            description: >
-              OK
-              
-              Configuration information about a VNF instance was read successfully.
-              The response body shall contain a representation of the configuration resource.
-            schema:
-              $ref: '#/definitions/VnfConfiguration'                  
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-      patch:
-        summary: Modify VNF/VNFC configuration.
-        description: This method sets or modifies a configuration resource.
-        parameters:
-         - name: configModifications
-           description: The parameter for the configuration modification.
-           required: true
-           in: body
-           schema: 
-             $ref: '#/definitions/VnfConfigModifications'            
-        responses:
-          200:
-            description: >
-              OK
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Read VNF/VNFC configuration from VNF
+      description: >
+        The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.
+      responses:
+        200:
+          description: >
+            200 OK
+            Configuration information about a VNF instance was read successfully.
+            The response body shall contain a representation of the configuration resource.
+          schema:
+            $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration'
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+    patch:
+      summary: Modify VNF/VNFC configuration.
+      description: This method sets or modifies a configuration resource.
+      parameters:
+        - name: configModifications
+          description: >
+            The parameter for the configuration modification, as defined in
+            clause 9.5.2.2.
+          required: true
+          in: body
+          schema:
+            $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
+      responses:
+        200:
+          description: >
+            200 OK
 
-              The request was accepted and completed. The response body shall contain the parameters
-              of the configuration modification that was applied to the configuration resource.
-            schema:
-              $ref: '#/definitions/VnfConfigModifications'                  
-          412: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/412' }
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-definitions:
-  VnfConfiguration:
-    $ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfiguration'
-  VnfConfigModifications: 
-    $ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
+            The request was accepted and completed. The response body shall contain the parameters
+            of the configuration modification that was applied to the configuration resource.
+          schema:
+            $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        412:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
\ No newline at end of file
diff --git a/src/SOL002/VNFConfiguration/definitions/VnfConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml
similarity index 68%
rename from src/SOL002/VNFConfiguration/definitions/VnfConfiguration_def.yaml
rename to src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml
index e13f5d1972f0736b71e869d755cbc0e3ff1db397..36c24796ae088a8bdc1fabbd7baa1c9386669012 100644
--- a/src/SOL002/VNFConfiguration/definitions/VnfConfiguration_def.yaml
+++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml
@@ -1,24 +1,7 @@
-definitions:
-
-  VnfConfiguration:
-    description: >
-      This type represents configuration parameters of a VNF instance and its VNFC instances.
-    type: object
-    required:
-      - vnfConfigurationData
-    properties:
-      vnfConfigurationData:
-        description: >
-          Configuration parameters of the VNF instance.
-        $ref: '#/definitions/VnfConfigurationData'                  
-      vnfcConfigurationData:
-        description: >
-          Configuration parameters of the VNFC instances.
-        type: array
-        items:
-          $ref: '#/definitions/VnfcConfigurationData'                  
-
+# Copyright (c) ETSI 2017.
+# https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
+definitions:
   VnfConfigModifications:
     description: >
       This type represents request parameters for the "Set Configuration" operation.
@@ -33,33 +16,57 @@ definitions:
           Modifications to configuration data for the VNF instance. See NOTE 1.
           If present, the modifications of the "vnfConfigurationData" attribute shall
           be applied according to the rules of JSON Merge PATCH (see IETF RFC 7396).
-        $ref: '#/definitions/VnfConfigurationData'                  
+        $ref: '#/definitions/VnfConfigurationData'
       vnfcConfigurationData:
         description: >
           Modifications to configuration data for certain VNFC instances. See NOTE 1 and NOTE 2.
-          If present, the modifications of the "vnfcConfigurationData" attribute shall follow these 
+          If present, the modifications of the "vnfcConfigurationData" attribute shall follow these
           provisions:
             Modifying an attribute that is an array of objects of type "VnfcConfigurationData".
               Assumptions:
-                  1) "oldList" is the "VnfcConfigurationData" array to be modified and "newList"
-                     is the "VnfcConfigurationData" array that contains the changes.
-                  2) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
-                  3) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that 
-                     has the same content of the "vnfcInstanceId" attribute as the "newEntry"; 
-                     a "newEntry" has no corresponding entry if no such "oldEntry" exists.
-                  4) In any array of "VnfcConfigurationData" structures, the content of "vnfcInstanceId"
-                     is unique (i.e. there shall be no two entries with the same content of "vnfcInstanceId").
+                1) "oldList" is the "VnfcConfigurationData" array to be modified and "newList"
+                   is the "VnfcConfigurationData" array that contains the changes.
+                2) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
+                3) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that
+                   has the same content of the "vnfcInstanceId" attribute as the "newEntry";
+                   a "newEntry" has no corresponding entry if no such "oldEntry" exists.
+                4) In any array of "VnfcConfigurationData" structures, the content of "vnfcInstanceId"
+                   is unique (i.e. there shall be no two entries with the same content of "vnfcInstanceId").
               Provisions:
-                  1) For each "newEntry" in "newList" that has no corresponding entry in "oldList", 
-                     the "oldList" array shall be modified by adding that "newEntry".
+                1) For each "newEntry" in "newList" that has no corresponding entry in "oldList",
+                   the "oldList" array shall be modified by adding that "newEntry".
 
-                  2) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList",
-                     the value of "oldEntry" shall be updated with the value of "newEntry" according to
-                    the rules of JSON Merge PATCH (see IETF RFC 7396 ).
+                2) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList",
+                   the value of "oldEntry" shall be updated with the value of "newEntry" according to
+                  the rules of JSON Merge PATCH (see IETF RFC 7396 ).
         type: array
         items:
-          $ref: '#/definitions/VnfcConfigurationData'                  
+          $ref: '#/definitions/VnfcConfigurationData'
+      vnfcConfigurationDataDeleteIds:
+        description: >
+          List of identifiers entries to be deleted from the 'vnfcConfigurationData" attribute array to be used
+          as "deleteIdList" as defined below this table.
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
 
+  VnfConfiguration:
+    description: >
+      This type represents configuration parameters of a VNF instance and its VNFC instances.
+    type: object
+    required:
+      - vnfConfigurationData
+    properties:
+      vnfConfigurationData:
+        description: >
+          Configuration parameters of the VNF instance.
+        $ref: '#/definitions/VnfConfigurationData'
+      vnfcConfigurationData:
+        description: >
+          Configuration parameters of the VNFC instances.
+        type: array
+        items:
+          $ref: '#/definitions/VnfcConfigurationData'
 
   VnfConfigurationData:
     description: >
@@ -69,18 +76,17 @@ definitions:
       extCpConfig:
         description: >
           Configuration parameters for the external CPs of the VNF instance.
-        $ref: '#/definitions/CpConfiguration'                  
+        $ref: '#/definitions/CpConfiguration'
       dhcpServer:
         description: >
           IP address of the DHCP server that the VNF instance can use to obtain
           IP addresses to be assigned to its external CPs.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'                  
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'
       vnfSpecificData:
         description: >
           Additional configurable properties of the VNF instance declared in the
           VNFD as "VnfConfigurableProperties".
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs'                  
-
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs'
 
   VnfcConfigurationData:
     description: >
@@ -92,24 +98,21 @@ definitions:
       vnfcInstanceId:
         description: >
           Identifier of a VNFC instance to which this set of configuration data applies.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'                  
-      intCpConfig:
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'
+      extCpConfig:
         description: >
-          Configuration parameters for the internal CPs of the VNFC instance.
-        type: array
-        items:
-          $ref: '#/definitions/CpConfiguration'                  
+          Configuration parameters for the external CPs of the VNFC instance.
+        $ref: '#/definitions/CpConfiguration'
       dhcpServer:
         description: >
           IP address of the DHCP server that the VNF instance can use to obtain
           IP addresses to be assigned to its external CPs.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'                  
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'
       vnfcSpecificData:
         description: >
           Additional configurable properties of the VNFC instance declared in the
           VNFD as "VnfcConfigurableProperties".
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs'                  
-
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs'
 
   CpConfiguration:
     description: >
@@ -123,17 +126,17 @@ definitions:
       cpId:
         description: >
           Identifier of a CP instance within the namespace of a specific VNF instance or a VNFC instance.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'                  
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'
       cpdId:
         description: >
           Identifier of the CPD in the VNFD.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd'                  
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd'
       addresses:
         description: >
           Network address and port assigned to the CP.
         type: array
         items:
-          $ref: '#/definitions/CpAddress'                  
+          $ref: '#/definitions/CpAddress'
 
   CpAddress:
     description: >
@@ -150,11 +153,11 @@ definitions:
           macAddress:
             description: >
               Mac address. See NOTE 2.
-            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/MacAddress'                  
+            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/MacAddress'
           ipAddress:
             description: >
               IP address. See NOTE 2.
-            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'                  
+            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'
       useDynamicAddress:
         description: >
           Set to true if an address shall be assigned dynamically. Otherwise set to false.
@@ -163,8 +166,4 @@ definitions:
       port:
         description: >
           The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.).
-        type: integer
-
-
-
-
+        type: integer
\ No newline at end of file
diff --git a/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml b/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml
deleted file mode 100644
index 89938b310aa0a88113897523e91796ce760b402f..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-responses:
-  409:
-    description: >
-      Conflict
-
-      Another request is in progress that prohibits the fulfilment of
-      the current request, or the current resource state is inconsistent
-      with the request.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml
index d16269a667900cdfe37935d22064c96dc1e5e3f0..6d690c31ddd9715f91cc9cbe71c16396a3fdeef9 100644
--- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml
+++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml
@@ -1,45 +1,63 @@
 swagger: "2.0"
 
-info: 
-  version: "1.1.0"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL002 - VNF Fault Management interface
   description: >
-    DRAFT VNF Fault Management interface of ETSI NFV SOL002
-
+    SOL002 - VNF Fault Management interface
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
-  
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
 basePath: /vnffm/v1
 
-schemes: 
+schemes:
   - http
   - https
 
-consumes: 
+consumes:
   - application/json
 
-produces: 
+produces:
   - application/json
 
-
 paths:
-###############################################################################
-# Alarms                                                                      #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # Alarms                                                                      #
+  ###############################################################################
   '/alarms':
-  #SOL002 location: 7.4.2
+    #SOL003 location: 7.4.2
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method to retrieve information about the alarm
@@ -59,23 +77,67 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
+        - name: filter
           description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter.
+            The following attribute names shall be supported in the filter expression: id, managedObjectId,
+            vnfcInstanceIds, rootCauseFaultyResource.faultyResourceType, eventType, perceivedSeverity, probableCause.
+            If the vnfcInstanceIds parameter is provided, exactly one value for the managedObjectId attribute
+            shall be provided.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response.
+            Shall be supported by the VNFM if the VNFM supports alternative 2
+            (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
           type: string
       responses:
         200:
-          description: > 
-            The request has succeeded.
-            The response body shall contain the list of related alarms.
+          description: >
+            200 OK
+
+            Information about zero or more alarms was queried successfully.
+            The response body shall contain in an array the representations of zero or more alarms
+            as defined in clause 7.5.2.4.
+            If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -87,27 +149,44 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
-            $ref: "./definitions/VNFFaultManagement_def.yaml#/definitions/Alarm"
+            $ref: "./definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual alarm                                                            #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual alarm                                                            #
+  ###############################################################################
   '/alarms/{alarmId}':
-  #SOL002 location: 7.4.3
+    #SOL003 location: 7.4.3
     parameters:
       - name: alarmId
         description: >
@@ -120,6 +199,19 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method to read an individual alarm.
@@ -138,24 +230,22 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             Information about an individual alarm was read successfully.
             The response body shall contain a representation of the individual
             alarm.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -168,21 +258,31 @@ paths:
               maximum: 1
               minimum: 0
           schema:
-            $ref: "./definitions/VNFFaultManagement_def.yaml#/definitions/Alarm"
+            $ref: "definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     patch:
       description: >
         This method modifies an individual alarm resource.
@@ -207,26 +307,22 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
           description: >
-            OK
+            200 OK
 
             The request was accepted and completed. The response body shall
             contain attribute modifications for an ‘Individual alarm’
             resource.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -246,27 +342,61 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFFaultManagement_resp.yaml#/responses/409-alarm-state-conflict"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of
+            the "Individual alarm" resource.
+            Typically, this is due to the fact that the alarm is already in the state that is requested
+            to be set (such as trying to acknowledge an already-acknowledged alarm).
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
         412:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Escalate Perceived Severity task                                                               #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Escalate Perceived Severity task                                            #
+  ###############################################################################
   '/alarms/{alarmId}/escalate':
-  #SOL002 location: 7.4.4  
+    #SOL002 location: 7.4.4
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
-        The POST method enables the consumer to escalate the perceived severity 
-        of an alarm that is represented by an ndividual alarm resource. 
+        The POST method enables the consumer to escalate the perceived severity
+        of an alarm that is represented by an ndividual alarm resource.
       parameters:
         - name: alarmId
           description: >
@@ -283,35 +413,64 @@ paths:
           description: The proposed "escalated perceived severity" value
           in: body
           schema:
-            $ref: "./definitions/VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityRequest"
+            $ref: "definitions/SOL002VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityRequest"
       responses:
         200:
           description: >
-            OK
+            200 OK
 
-            The VNFM has received the proposed "escalated perceived severity" value 
+            The VNFM has received the proposed "escalated perceived severity" value
             successfully. The response body shall be empty.
+          headers:
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        412:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"         
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
-  '/alarms/subscriptions':
-  #SOL002 location: 7.4.5
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
+  '/subscriptions':
+    #SOL003 location: 7.4.4
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         The POST method creates a new subscription.
@@ -336,17 +495,10 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         201:
           description: >
-            Created
+            201 CREATED
 
             The subscription was created successfully. The response body shall
             contain a representation of the created subscription resource.
@@ -354,9 +506,12 @@ paths:
             points to the created subscription resource.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -376,6 +531,14 @@ paths:
           schema:
             $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
         303:
+          description: >
+            303 SEE OTHER
+
+            A subscription with the same callbackURI and the same filter already exists and the policy of
+            the VNFM is to not create redundant subscriptions.
+            The HTTP response shall include a "Location" HTTP header that contains the resource URI of the
+            existing subscription resource.
+            The response body shall be empty.
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
@@ -383,14 +546,24 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     get:
       description: >
         The client can use this method to retrieve the list of active
@@ -411,26 +584,66 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
+        - name: filter
           description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter.
+            All attribute names that appear in the FmSubscription and in data types referenced from it
+            shall be supported by the VNFM in the filter expression.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response.
+            Shall be supported by the VNFM if the VNFM supports alternative 2
+            (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
           type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The list of subscriptions was queried successfully. The response
             body shall contain the representations of all active
             subscriptions of the functional block that invokes the method.
+            If the VNFM supports alternative 2 (paging) according to clause
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in this
+            response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -442,29 +655,44 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        412:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
-  #SOL002 location: 7.4.5
+    #SOL003 location: 7.4.5
     parameters:
       - name: subscriptionId
         description: >
@@ -476,6 +704,19 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method for reading an individual subscription
@@ -495,26 +736,22 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The operation has completed successfully.
             The response body shall contain a representation of the
             subscription resource.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -534,37 +771,37 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     delete:
       description: >
         This method terminates an individual subscription.
-      parameters:
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
             The response body shall be empty.
           headers:
-            Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -582,11 +819,21 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
\ No newline at end of file
diff --git a/src/SOL002/VNFFaultManagement/definitions/VNFFaultManagement_def.yaml b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml
similarity index 70%
rename from src/SOL002/VNFFaultManagement/definitions/VNFFaultManagement_def.yaml
rename to src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml
index fd528ec36051050a3d599d4e0baf9d56d5ef4367..716f5924499515cbf1d66952281b8fddf89b2b9c 100644
--- a/src/SOL002/VNFFaultManagement/definitions/VNFFaultManagement_def.yaml
+++ b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml
@@ -9,6 +9,7 @@ definitions:
     required:
       - id
       - managedObjectId
+      - vnfcInstanceIds
       - rootCauseFaultyResource
       - alarmRaisedTime
       - ackState
@@ -19,7 +20,7 @@ definitions:
       - isRootCause
       - _links
     properties:
-      id: 
+      id:
         description: >
           Identifier of this Alarm information element.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
@@ -27,6 +28,12 @@ definitions:
         description: >
           Identifier of the affected VNF instance.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
+      vnfcInstanceIds:
+        description: >
+          Identifiers of the affected VNFC instances.
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
       rootCauseFaultyResource:
         description: >
           The virtualised resources that are causing the VNF fault.
@@ -53,23 +60,21 @@ definitions:
           * UNACKNOWLEDGED
           * ACKNOWLEDGED.
         type: string
-        enum: 
+        enum:
           - UNACKNOWLEDGED
           - ACKNOWLEDGED
       perceivedSeverity:
-        #description: >
-        #  Perceived severity of the managed object failure.
-        # $ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
-        type: string
-      eventTime: 
+        description: >
+          Perceived severity of the managed object failure.
+        $ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
+      eventTime:
         description: >
           Time stamp indicating when the fault was observed.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
       eventType:
-        #description: >
-        #  Type of event.
-        # todo: Fix
-        #$ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
+        description: >
+          Type of event.
+        $ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
         type: string
       faultType:
         description: >
@@ -84,12 +89,12 @@ definitions:
           Attribute indicating if this fault is the root for other correlated
           alarms. If TRUE, then the alarms listed in the attribute
           CorrelatedAlarmId are caused by this fault.
-        type: boolean
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean"
       correlatedAlarmIds:
         description: >
           List of identifiers of other alarms correlated to this fault.
         type: array
-        items: 
+        items:
           $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       faultDetails:
         description: >
@@ -105,14 +110,23 @@ definitions:
           - self
         properties:
           self:
-            #description: >
-            #  URI of this resource.
+            description: >
+              URI of this resource.
             $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
           objectInstance:
-            #description: >
-            #  Link to the resource representing the VNF instance to which the
-            #  notified alarm is correlated. Shall be present if the VNF
-            #  instance information is accessible as a resource.
+            description: >
+              Link to the resource representing the VNF instance to which the
+              notified alarm is correlated. Shall be present if the VNF
+              instance information is accessible as a resource.
             $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+
   PerceivedSeverityRequest:
-    type: string
\ No newline at end of file
+    description: >
+      This type represents the escalated value of the perceived severity for an alarm.
+    required:
+      - proposedPerceivedSeverity
+    properties:
+      proposedPerceivedSeverity:
+        description: >
+          Indicates the proposed escalated perceived severity for an alarm.
+        $ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
\ No newline at end of file
diff --git a/src/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml b/src/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml
deleted file mode 100644
index 30c373f309c8b6873f7259132f3b0c60698220f3..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) ETSI 2017.
-# https://forge.etsi.org/etsi-forge-copyright-notice.txt
-
-responses:
-  409-alarm-state-conflict:
-    description: >
-      Conflict
-
-      The operation cannot be executed currently, due to a conflict with the
-      state of the "Individual alarm" resource.
-      Typically, this is due to the fact that the alarm is already in the
-      state that is requested to be set (such as trying to acknowledge an
-      already-acknowledged alarm).
-      The response body shall contain a ProblemDetails structure, in which the
-      "detail" attribute should convey more information about the error.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-      WWW-Authenticate:
-        description: >
-          Challenge if the corresponding HTTP request has not provided
-          authorization, or error details if the corresponding HTTP
-          request has provided an invalid authorization token.
-        type: string
-        maximum: 1
-        minimum: 0
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml
index a340f310a9f1690f09c7805368eb2b59e78fd5d4..ddb3eac44de35f00011f68b37199003e8c152ac2 100644
--- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml
+++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml
@@ -1,53 +1,60 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL002 - VNF Fault Management Notification interface
   description: >
     SOL002 - VNF Fault Management Notification interface
-
-
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    In clause 4.3.2 of ETSI GS NFV-SOL 002 v2.4.1, an attribute-based
-    filtering mechanism is defined. This mechanism is currently not
-    included in the corresponding OpenAPI design for this GS version. Changes
-    to the attribute-based filtering mechanism are being considered in v2.5.1
-    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
-    design.
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
-basePath: "/callback/v1"
+basePath: /callback/v1
 
 schemes:
+  - http
   - https
 
 consumes:
-  - "application/json"
+  - application/json
+
 produces:
-  - "application/json"
+  - application/json
 
 paths:
   ###############################################################################
   # Notification endpoint AlarmNotification                                     #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_AlarmNotification':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         Notify
 
-
         The POST method notifies a VNF alarm or that the alarm list has been
         rebuilt.
       parameters:
@@ -57,14 +64,7 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/AlarmNotification"
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
+            $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmNotification"
         - name: Content-Type
           description: >
             The Content-Type header shall be set to
@@ -73,16 +73,10 @@ paths:
           in: header
           required: true
           type: string
-        - name: Version
-          description: >
-            Version of the API requested to use when responding to this request.
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -119,24 +113,10 @@ paths:
       description: >
         The GET method allows the server to test the notification endpoint
         that is provided by the client, e.g. during subscription.
-      parameters:
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Version
-          description: >
-            Version of the API requested to use when responding to this request.
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            201 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -169,15 +149,29 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
   ###############################################################################
   # Notification endpoint AlarmClearedNotification                              #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_AlarmClearedNotification':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         Notify
 
-
         The POST method notifies a VNF alarm or that the alarm list has been
         rebuilt.
       parameters:
@@ -188,13 +182,6 @@ paths:
           required: true
           schema:
             $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmClearedNotification"
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
         - name: Content-Type
           description: >
             The Content-Type header shall be set to
@@ -203,16 +190,10 @@ paths:
           in: header
           required: true
           type: string
-        - name: Version
-          description: >
-            Version of the API requested to use when responding to this request.
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -249,24 +230,10 @@ paths:
       description: >
         The GET method allows the server to test the notification endpoint
         that is provided by the client, e.g. during subscription.
-      parameters:
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Version
-          description: >
-            Version of the API requested to use when responding to this request.
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            201 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -299,15 +266,29 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
   ###############################################################################
   # Notification endpoint AlarmListRebuiltNotification                          #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_AlarmListRebuiltNotification':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         Notify
 
-
         The POST method notifies a VNF alarm or that the alarm list has been
         rebuilt.
       parameters:
@@ -318,13 +299,6 @@ paths:
           required: true
           schema:
             $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification"
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
         - name: Content-Type
           description: >
             The Content-Type header shall be set to
@@ -333,16 +307,10 @@ paths:
           in: header
           required: true
           type: string
-        - name: Version
-          description: >
-            Version of the API requested to use when responding to this request.
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -379,24 +347,10 @@ paths:
       description: >
         The GET method allows the server to test the notification endpoint
         that is provided by the client, e.g. during subscription.
-      parameters:
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Version
-          description: >
-            Version of the API requested to use when responding to this request.
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -428,4 +382,4 @@ paths:
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml
index 7ec26ab174e73e7e82c8c3880efe9ec9834d7937..eefb4de0f5ec2148041208d64cfb58e39c15d8d6 100644
--- a/src/SOL002/VNFIndicator/VNFIndicator.yaml
+++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml
@@ -1,483 +1,781 @@
-
 swagger: "2.0"
 
-info: 
-  version: "1.1.0"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL002 - VNF Indicator interface
   description: >
-    DRAFT VNF Indicator interface of ETSI NFV SOL002.
-    
-    This API allows the EM/VNF to provide information on value changes of VNF related indicators. 
-    VNF related indicators are declared in the VNFD.
-
-
+    SOL002 - VNF Indicator interface
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
     Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
-  
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url:  https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
 basePath: /vnfind/v1
 
-schemes: 
+schemes:
   - http
   - https
 
-consumes: 
+consumes:
   - application/json
 
-produces: 
+produces:
   - application/json
 
-
 paths:
-###############################################################################
-# VNF Indicators                                                              #
-###############################################################################
-    /indicators:
-      get:
-        summary: Query multiple indicators
-        description: The GET method queries multiple VNF indicators. 
-#        parameters:
-#         - name: id.eq
-#           in: query
-#           description: Attribute based filtering for indicator identifer as specified in VNFD.
-#           type: array
-#           items:
-#             type: string
-#         - name: name.eq
-#           in: query
-#           description: Attribute based filtering for indicator name as specified in VNFD.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.eq
-#           in: query
-#           description: Attribute based filtering for indicator value equality.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.neq
-#           in: query
-#           description: Attribute based filtering for indicator value unequality.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.gt
-#           in: query
-#           description: Attribute based filtering for indicator value greater than.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.gte
-#           in: query
-#           description: Attribute based filtering for indicator value greater then or equal.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.lt
-#           in: query
-#           description: Attribute based filtering for indicator value less than.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.lte
-#           in: query
-#           description: Attribute based filtering for indicator value less than or equal.
-#           type: array
-#           items:
-#             type: string
-#         - name: vnfInstanceId.eq
-#           in: query
-#           description: Attribute based filtering for indicators belonging to specified VNF instance.
-#           type: array
-#           items:
-#             type: string
-        responses:
-          200:
-            description: >
-              OK
-
-              The list of VNF indicators was queried successfully.
-              The response body shall contain the representations of all VNF indicators that match
-              the attribute-based filtering parameters.
-            schema:
-              type: array
-              items:
-                $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'                  
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-
-
-    /indicators/{vnfInstanceId}:
-      parameters:
-       - name: vnfInstanceId
-         in: path
-         description: >
-           Service Unavailable
-
-           Identifier of the VNF instance to which the VNF indicators applies.
-           NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a 
-           POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body 
-           of that response.
-         type: string
-         required: true
-      get:
-        summary: Query multiple indicators related to a VNF instance.
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # VNF Indicators                                                              #
+  ###############################################################################
+  /indicators:
+    parameters:
+      - name: Version
         description: >
-           Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters.
-#        parameters:
-#         - name: id.eq
-#           in: query
-#           description: Attribute based filtering for indicator identifer as specified in VNFD.
-#           type: array
-#           items:
-#             type: string
-#         - name: name.eq
-#           in: query
-#           description: Attribute based filtering for indicator name as specified in VNFD.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.eq
-#           in: query
-#           description: Attribute based filtering for indicator value equality.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.neq
-#           in: query
-#           description: Attribute based filtering for indicator value unequality.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.gt
-#           in: query
-#           description: Attribute based filtering for indicator value greater than.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.gte
-#           in: query
-#           description: Attribute based filtering for indicator value greater then or equal.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.lt
-#           in: query
-#           description: Attribute based filtering for indicator value less than.
-#           type: array
-#           items:
-#             type: string
-#         - name: value.lte
-#           in: query
-#           description: Attribute based filtering for indicator value less than or equal.
-#           type: array
-#           items:
-#             type: string
-        responses:
-          200:
-            description: >
-              OK
-
-              The list of VNF indicators was queried successfully.
-              The response body shall contain the representations of all VNF indicators that match
-              the attribute-based filtering parameters.
-            schema:
-              type: array
-              items:
-                $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'                  
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-
-
-    /indicators/{vnfInstanceId}/{indicatorId}:
-      parameters:
-       - name: vnfInstanceId
-         in: path
-         description: >
-           Service Unavailable
-
-           Identifier of the VNF instance to which the VNF indicators applies.
-           NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a 
-           POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body 
-           of that response.
-         type: string
-         required: true
-       - name: indicatorId
-         in: path
-         description: >
-           Identifier of the VNF indicator.
-# LEH        NOTE from SOL002 is strange
-         type: string
-         required: true
-      get:
-        summary: Read an inidividual VNF indicator.
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
         description: >
-          The GET method reads an individual VNF indicator.
-          
-          NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a 
-          POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body 
-          of that response.
-        responses:
-          200:
-            description: >
-              OK
-
-              The VNF indicator was read successfully.
-              The response body shall contain the representation of the VNF indicator.
-            schema:
-              $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'                  
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-
-
-    /subscriptions:
-      post:
-        summary: Create a new subscription to VNF indicator change notifications
-        description: Create a new subscription
-        parameters:
-         - name: subscription
-           in: body
-           description: Subscription data.
-           required: true
-           schema: 
-             $ref: 'definitions/VnfIndicatorSubscriptionRequest_def.yaml#/definitions/VnfIndicatorSubscriptionRequest'                  
-        responses:
-          201:
-            description: >
-              Created
-
-              The subscription was created successfully.
-              The response body shall contain a representation of the created subscription resource.
-            schema:
-              $ref: 'definitions/VnfIndicatorSubscription_def.yaml#/definitions/VnfIndicatorSubscription' 
-            headers:
-              Location:
-                description: >
-                  Pointer to the created subscription resource.
-                type: string
-                format: URI                 
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-      get:
-        summary: Query multiple subscriptions.
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Query multiple indicators
+      description: Get a list of indicators. Support of attribute based filtering via query parameters.
+      parameters:
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM/VNF may supply this parameter. The VNF may supply its instance Id as an attribute filter.
+            All attribute names that appear in the VnfIndicator data type and in data types referenced from
+            it shall be supported by the VNFM in the filter expression. If receiving, this parameter is not
+            supported a 400 Bad Request response shall be returned (See table 8.4.2.3.2-2).
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF
+            if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource
+          in: query
+          required: false
+          type: string
+      responses:
+        200:
+          description: >
+            200 OK
+
+            Information about zero or more VNF indicators was queried successfully.
+            The response body shall contain in an array the representations of all
+            VNF indicators that match the attribute-based filtering parameters,
+            i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2.
+            If the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
+          schema:
+            type: array
+            items:
+              $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator'
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # VNF indicators related to a VNF instance                                    #
+  ###############################################################################
+  /indicators/{vnfInstanceId}:
+    parameters:
+      - name: vnfInstanceId
+        in: path
         description: >
           Service Unavailable
 
-          The GET method queries the list of active subscriptions of the functional block
-          that invokes the method. It can be used e.g. for resynchronization after error situations.
-#        parameters:
-#         - name: id.eq
-#           in: query
-#           description: >
-#             Attribute based filtering for subscription identifiers.
-#           type: array
-#           items:
-#             type: string
-#         - name: callbackUri.eq
-#           in: query
-#           description: >
-#             Attribute based filtering for the subscription's call back URIs.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.indicatorIds.cont
-#           in: query
-#           description: >
-#             Attribute based filtering for indicator identifiers.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfdIds.cont
-#           in: query
-#           description: >
-#             Attribute based filtering for VNFD identifiers.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfProductsFromProviders.vnfProvider.eq
-#           in: query
-#           description: >
-#             Attribute based filtering for VNF providers.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfProductsFromProviders.vnfProducts.vnfProductName.eq
-#           in: query
-#           description: >
-#             Attribute based filtering for VNF product name.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfProductsFromProviders.vnfProducts.versions.vnfSoftwareVersion.cont
-#           in: query
-#           description: >
-#             Attribute based filtering for VNF software versions.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfProductsFromProviders.vnfProducts.versions.vnfdVersion.cont
-#           in: query
-#           description: >
-#             Attribute based filtering for VNFD versions.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfInstanceIds.cont
-#           in: query
-#           description: >
-#             Attribute based filtering for VNF instance identifiers.
-#           type: array
-#           items:
-#             type: string
-#         - name: filter.vnfInstanceSubscriptionFilter.vnfInstanceNames.cont
-#           in: query
-#           description: >
-#             Attribute based filtering for VNF instance names.
-#           type: array
-#           items:
-#             type: string
-        responses:
-          200:
-            description: >
-              OK
-
-              The list of subscriptions was queried successfully. The response body shall contain
-              the representations of all active subscriptions of the functional block that invokes
-              the method which match the attribute filter.
-            schema:
-              type: array
-              items:
-                $ref: 'definitions/VnfIndicatorSubscription_def.yaml#/definitions/VnfIndicatorSubscription'                  
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-
-
-    /subscriptions/{subscriptionId}:
-      get:
-        summary: Read an individual subscription.
+          Identifier of the VNF instance to which the VNF indicators applies.
+          NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
+          POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
+          of that response.
+        type: string
+        required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Query multiple indicators related to a VNF instance.
+      description: >
+        Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters.
+      parameters:
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM/VNF shall support receiving filtering parameters as part of the URI query string.
+            The VNFM may supply filtering parameters.
+            All attribute names that appear in the VnfIndicator data type and in data types referenced
+            from it shall be supported in attribute-based filtering parameters.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF
+            if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+      responses:
+        200:
+          description: >
+            200 OK
+
+            Information about zero or more VNF indicators was queried successfully.
+            The response body shall contain in an array the representations of all
+            VNF indicators that are related to the particular VNF instance and that
+            match the attribute filter., i.e. zero or more representations of VNF
+            indicators as defined in clause 8.5.2.2.
+            If the EM/VMF supports alternative 2 (paging) according to clause 4.7.2.1
+            for this resource, inclusion of the Link HTTP header in this response shall
+            follow the provisions in clause 4.7.2.3.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
+          schema:
+            type: array
+            items:
+              $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator'
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual VNF indicator                                                    #
+  ###############################################################################
+  /indicators/{vnfInstanceId}/{indicatorId}:
+    parameters:
+      - name: vnfInstanceId
+        in: path
         description: >
           Service Unavailable
 
-          This resource represents an individual subscription. The client can use this resource to 
-          read and to terminate a subscription to notifications related to VNF indicator value changes.
-        parameters:
-         - name: subscriptionId
-           description: >
-             Identifier of this subscription.
-             NOTE:
-              This identifier can be retrieved from the resource referenced by the "Location" HTTP header
-              in the response to a POST request creating a new subscription resource. It can also be retrieved
-              from the "id" attribute in the payload body of that response.
-           in: path
-           type: string
-           required: true
-        responses:
-          200:
-            description: >
-              OK
-
-              The subscriptions was queried successfully. The response body shall contain
-              the representation of the requested subscription.
-            schema:
-              $ref: 'definitions/VnfIndicatorSubscription_def.yaml#/definitions/VnfIndicatorSubscription'                  
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-      delete:
-        summary: Delete a subscription 
-        description: Terminate an individual subscription.
-        parameters:
-         - name: subscriptionId
-           description: >
-             Service Unavailable
-
-             Identifier of this subscription.
-             NOTE:
-              This identifier can be retrieved from the resource referenced by the "Location" HTTP header
-              in the response to a POST request creating a new subscription resource. It can also be retrieved
-              from the "id" attribute in the payload body of that response.
-           in: path
-           type: string
-           required: true
-        responses:
-          204:
-            description: >
-              No Content
-
-              The subscription was deleted successfully.
-              The response body shall be empty.
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
\ No newline at end of file
+          Identifier of the VNF instance to which the VNF indicators applies.
+          NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
+          POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
+          of that response.
+        type: string
+        required: true
+      - name: indicatorId
+        in: path
+        description: >
+          Identifier of the VNF indicator.
+        # LEH        NOTE from SOL002 is strange
+        type: string
+        required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Read an inidividual VNF indicator related to a VNF instance.
+      description: >
+        Read an individual VNF indicator related to a specific VNF instance.
+        NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
+        POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
+        of that response.
+      responses:
+        200:
+          description: >
+            200 OK
+
+            The VNF indicator was read successfully.
+            The response body shall contain the representation of the VNF indicator.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator'
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  /indicators/{indicatorId}:
+    parameters:
+      - name: indicatorId
+        in: path
+        description: >
+          Identifier of the VNF indicator.
+        type: string
+        required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Read an inidividual VNF indicator related to a VNF instance.
+      description: >
+        Reads a VNF indicator.
+      responses:
+        200:
+          description: >
+            200 OK
+
+            The VNF indicator was read successfully.
+            The response body shall contain the representation of the VNF indicator.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            $ref: '../../definitions/SOL002SOl003VNFIndicator_def.yaml#/definitions/VnfIndicator'
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
+  /subscriptions:
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
+      summary: Create a new subscription to VNF indicator change notifications
+      description: Create a new subscription
+      parameters:
+        - name: vnfIndicatorSubscriptionRequest
+          in: body
+          description: Details of the subscription to be created.
+          required: true
+          schema:
+            $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscriptionRequest'
+      responses:
+        201:
+          description: >
+            201 CREATED
+
+            The subscription was created successfully.
+            The response body shall contain a representation of the created subscription resource.
+          schema:
+            $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription'
+          headers:
+            Location:
+              description: >
+                Pointer to the created subscription resource.
+              type: string
+              format: URI
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+        303:
+          description: >
+            303 SEE OTHER
+
+            A subscription with the same callbackURI and the same filter already exists and the policy
+            of the VNFM is to not create redundant subscriptions.
+            The HTTP response shall include a "Location" HTTP header that contains the resource URI of
+            the existing subscription resource.
+            The response body shall be empty.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+    get:
+      summary: Query multiple subscriptions.
+      description: >
+        Service Unavailable
+
+        The GET method queries the list of active subscriptions of the functional block
+        that invokes the method. It can be used e.g. for resynchronization after error situations.
+      parameters:
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The EM shall and the VNF may support receiving this parameter as part
+            of the URI query string. The VNFM may supply this parameter.
+            All attribute names that appear in the VnfIndicatorSubscription data
+            type and in data types referenced from it shall be supported in the filter expression.
+            If receiving, this parameter is not supported, a 400 Bad Request response shall
+            be returned (see table 8.4.5.3.2-2).
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the EM
+            if the EM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+      responses:
+        200:
+          description: >
+            200 OK
+
+            The list of subscriptions was queried successfully.
+            The response body shall contain in an array the representations of all active
+            subscriptions of the functional block that invokes the method which match the
+            attribute filter, i.e. zero or more representations of VNF indicators subscriptions
+            as defined in clause 8.5.2.4.
+            If the EM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
+          schema:
+            type: array
+            items:
+              $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription'
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual Subscription                                                     #
+  ###############################################################################
+  /subscriptions/{subscriptionId}:
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Read an individual subscription.
+      description: >
+        Service Unavailable
+
+        This resource represents an individual subscription. The client can use this resource to
+        read and to terminate a subscription to notifications related to VNF indicator value changes.
+      parameters:
+        - name: subscriptionId
+          description: >
+            Identifier of this subscription.
+            NOTE:
+             This identifier can be retrieved from the resource referenced by the "Location" HTTP header
+             in the response to a POST request creating a new subscription resource. It can also be retrieved
+             from the "id" attribute in the payload body of that response.
+          in: path
+          type: string
+          required: true
+      responses:
+        200:
+          description: >
+            200 OK
+
+            The subscriptions was queried successfully. The response body shall contain
+            the representation of the requested subscription.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
+            $ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription'
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+    delete:
+      summary: Delete a subscription
+      description: Terminate an individual subscription.
+      parameters:
+        - name: subscriptionId
+          description: >
+            Service Unavailable
+
+            Identifier of this subscription.
+            NOTE:
+             This identifier can be retrieved from the resource referenced by the "Location" HTTP header
+             in the response to a POST request creating a new subscription resource. It can also be retrieved
+             from the "id" attribute in the payload body of that response.
+          in: path
+          type: string
+          required: true
+      responses:
+        204:
+          description: >
+            204 NO CONTENT
+
+            The subscription was deleted successfully.
+            The response body shall be empty.
+          headers:
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
\ No newline at end of file
diff --git a/src/SOL002/VNFIndicator/definitions/VnfIndicatorNotificationsFilter_def.yaml b/src/SOL002/VNFIndicator/definitions/VnfIndicatorNotificationsFilter_def.yaml
deleted file mode 100644
index 6a8b9a434556ae52621aeb47998f94200e9ceb76..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicator/definitions/VnfIndicatorNotificationsFilter_def.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-definitions:
-
-  VnfIndicatorNotificationsFilter:
-    description: >
-      This type represents a subscription filter related to notifications about VNF indicator value changes.
-      At a particular nesting level in the filter structure, the following applies: 
-      All attributes shall match in order for the filter to match (logical "and" between different filter attributes).
-      If an attribute is an array, the attribute shall match if at least one of the values in the array matches
-      (logical "or" between the values of one filter attribute).
-    type: object
-    properties:
-      vnfInstanceSubscriptionFilter:
-        description: >
-          Filter criteria to select VNF instances about which to notify. This attribute shall not be included
-          when the VNFM sends a subscription request to a particular VNF instance.
-        $ref: 'VnfInstanceSubscriptionFilter_def.yaml#/definitions/VnfInstanceSubscriptionFilter'                  
-      indicatorIds:
-        description: >
-          Match particular VNF indicator identifiers. 
-        type: array
-        items:
-          $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd'
-        
-
diff --git a/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml b/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml
deleted file mode 100644
index fc7b2b153105245e501da10fa11870db3a3340e5..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-definitions:
-
-  VnfIndicatorSubscriptionRequest:
-    description: >
-      This type represents a subscription request related to VNF indicator value change notifications.
-    type: object
-    required:
-      - callbackUri
-    properties:
-      filter:
-        description: >
-          Filter settings for this subscription, to define the subset of all notifications this
-          subscription relates to. A particular notification is sent to the subscriber if the filter
-          matches, or if there is no filter.
-        $ref: 'VnfIndicatorNotificationsFilter_def.yaml#/definitions/VnfIndicatorNotificationsFilter'                  
-      callbackUri:
-        description: >
-          The URI of the endpoint to send the notification to. 
-        type: string
-        format: URI
-      authentication:
-        description: >
-          Authentication parameters to configure the use of Authorization when sending notifications corresponding
-          to this subscription. This attribute shall only be present if the subscriber requires authorization of 
-          notifications.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
-   
\ No newline at end of file
diff --git a/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscription_def.yaml b/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscription_def.yaml
deleted file mode 100644
index b22ef1fce2b6c6d791f298ab45a0260353d11d50..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscription_def.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-definitions:
-
-  VnfIndicatorSubscription:
-    description: >
-      This type represents a subscription related to notifications about VNF indicator value changes.
-    type: object
-    required:
-      - callbackUri
-      - id
-      - _links
-    properties:
-      id:
-        description: >
-          Identifier of this subscription resource.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier'                 
-      filter:
-        description: >
-          Filter settings for this subscription, to define the subset of all notifications this subscription
-          relates to. A particular notification is sent to the subscriber if the filter matches, or if there
-          is no filter.
-        $ref: 'VnfIndicatorNotificationsFilter_def.yaml#/definitions/VnfIndicatorNotificationsFilter'                  
-      callbackUri:
-        description: >
-          The URI of the endpoint to send the notification to. 
-        type: string
-        format: URI
-      _links:
-        description: >
-          Links to resources related to this resource.
-        type: object
-        required:
-          - self
-        properties:
-          self:
-            description: >
-              URI of this resource.
-            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link'
diff --git a/src/SOL002/VNFIndicator/definitions/VnfIndicator_def.yaml b/src/SOL002/VNFIndicator/definitions/VnfIndicator_def.yaml
deleted file mode 100644
index 3348fab1edc24bf180136ac9407a4f99a862a225..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicator/definitions/VnfIndicator_def.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-definitions:
-
-  VnfIndicator: 
-    type: object
-    required:
-      - id
-      - value
-      - vnfInstanceId
-      - _links
-    properties:
-      id:
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd'
-      name:
-        type: string 
-      value:
-        type: object
-      vnfInstanceId:
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier'
-      _links:
-        description: >
-          Links to resources related to this resource.
-        type: object
-        required:
-          - self
-        properties:
-          self:
-            description: URI of this resource.
-            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link'
-          vnfInstance:
-            description: Link to the VNF instance that the operation applies to.
-            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link'
diff --git a/src/SOL002/VNFIndicator/definitions/VnfInstanceSubscriptionFilter_def.yaml b/src/SOL002/VNFIndicator/definitions/VnfInstanceSubscriptionFilter_def.yaml
deleted file mode 100644
index 19981aaf4a51c98768c06502df93a9faf4acf2f4..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicator/definitions/VnfInstanceSubscriptionFilter_def.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-definitions:
-
-  VnfInstanceSubscriptionFilter:
-    description: >
-      This type represents subscription filter criteria to match VNF instances.
-        * NOTE 1:
-           The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to 
-           VNF instances that are based on certain VNFDs in a filter. They should not be used both
-           in the same filter instance, but one alternative should be chosen.
-        * NOTE 2:
-           The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to
-          particular VNF instances in a filter. They should not be used both in the same filter instance,
-          but one alternative should be chosen.
-    type: object
-    properties:
-      vnfdIds:
-        description: >
-          If present, match VNF instances that were created based on a VNFD identified by one of the
-          vnfdId values listed in this attribute. See NOTE 1.
-        type: array
-        items: 
-          $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier'
-      vnfProductsFromProviders:
-        description: >
-          If present, match VNF instances that belong to VNF products from certain providers. See NOTE 1.
-        type: array
-        items:
-          type: object
-          required:
-            - vnfProvider
-          properties:
-            vnfProvider:
-              description: >
-                Name of the VNF provider to match.
-              type: string
-            vnfProducts:
-              description: >
-                If present, match VNF instances that belong to VNF products with certain product names,
-                from one particular provider.
-              type: array
-              items:
-                type: object
-                required:
-                  - vnfProductName
-                properties:
-                  vnfProductName:
-                    description: >
-                      Name of the VNF product to match.
-                    type: string
-                  versions: 
-                    description: >
-                      If present, match VNF instances that belong to VNF products with certain versions
-                      and a certain product name, from one particular provider.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - vnfSoftwareVersions
-                      properties:
-                        vnfSoftwareVersions:
-                          description: >
-                            Software version to match.
-                          $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Version'
-                        vnfdVersions:
-                          description: >
-                            If present, match VNF instances that belong to VNF products with certain VNFD versions,
-                            a certain software version and a certain product name, from one particular provider.
-                          type: array
-                          items:
-                            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Version'
-      vnfInstanceIds:
-        description: >
-          If present, match VNF instances with an instance identifier listed in this attribute. See NOTE 2.
-        type: array
-        items: 
-          $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier'
-      vnfInstanceNames:
-        description: >
-          If present, match VNF instances with a VNF Instance Name listed in this attribute. See NOTE 2
-        type: array
-        items:
-          type: string
-
diff --git a/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml b/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml
deleted file mode 100644
index 89938b310aa0a88113897523e91796ce760b402f..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-responses:
-  409:
-    description: >
-      Conflict
-
-      Another request is in progress that prohibits the fulfilment of
-      the current request, or the current resource state is inconsistent
-      with the request.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml
index a337ed087cd7ec3ee2f352aeab3e0c60ba96774c..e159dcdb240efa3ef96eb5d4e23a0c3daa9239c3 100644
--- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml
+++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml
@@ -1,95 +1,133 @@
 swagger: "2.0"
 
-info: 
-  version: "1.1.0"
-  title: "SOL002 - VNF Indicator Notification Endpoint interface"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
+  title: SOL002 - VNF Indicator Notification Endpoint interface
   description: >
-    VNF Indicator Notification Endpoint interface of ETSI NFV SOL002
-
-
+    SOL002 - VNF Indicator Notification Endpoint interface
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
-  
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
-
-basePath: /callback/v1
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
-schemes: 
+schemes:
   - http
   - https
 
-consumes: 
+consumes:
   - application/json
 
-produces: 
+produces:
   - application/json
 
-
 paths:
-###############################################################################
-# Notification endpoint VnfIndicatorValueChangeNotification                   #
-###############################################################################
-    /notificationendpoint:
-    #SOL002 location: 8.4.7
-      post:
-        summary: Notification endpoint
+  ###############################################################################
+  # Notification endpoint VnfIndicatorValueChangeNotification                   #
+  ###############################################################################
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIndicatorValueChangeNotification':
+    parameters:
+      - name: Version
         description: >
-          The API producer can use this resource to send notifications related to VNF indicator
-          value changes to a subscribed API consumer, which has provided the URI of this resource
-          during the subscription process.
-          The POST method delivers a notification from the server to the client.
-        parameters:
-         - name: vnfIndicatorValueChangeNotification
-           in: body
-           description: >
-             A notification about VNF indicator value changes.
-           required: true
-           schema: 
-             $ref: 'definitions/VnfIndicatorValueChangeNotification_def.yaml#/definitions/VnfIndicatorValueChangeNotification'                  
-        responses:
-          204:
-            description: >
-              The notification was delivered successfully. The response body shall be empty.
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicatorNotification_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
-      get:
-        summary: Test notification endpoint.
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
         description: >
-          The GET method allows the server to test the notification endpoint that is provided
-          by the client, e.g. during subscription.
-        responses:
-          204:
-            description: >
-              No Content
-              
-              The notification endpoint was tested successfully. The response body shall be empty.
-          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
-          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
-          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
-          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
-          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
-          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
-          409: { $ref: 'responses/VNFIndicatorNotification_resp.yaml#/responses/409' }
-          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
-          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
-          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
-          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
\ No newline at end of file
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
+      summary: Notification endpoint
+      description: >
+        The API producer can use this resource to send notifications related to VNF indicator
+        value changes to a subscribed API consumer, which has provided the URI of this resource
+        during the subscription process.
+        The POST method delivers a notification from the server to the client.
+      parameters:
+        - name: vnfIndicatorValueChangeNotification
+          in: body
+          description: >
+            A notification about VNF indicator value changes.
+          required: true
+          schema:
+            $ref: 'definitions/SOL002VNFIndicatorNotification_def.yaml#/definitions/VnfIndicatorValueChangeNotification'
+      responses:
+        204:
+          description: >
+            204 NO CONTENT
+
+            The notification was delivered successfully. The response body shall be empty.
+          headers:
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+    get:
+      summary: Test notification endpoint.
+      description: >
+        Service Unavailable
+
+        The GET method allows the server to test the notification endpoint that is provided
+        by the client, e.g. during subscription.
+      responses:
+        204:
+          description: >
+            204 NO CONTENT
+
+            The notification endpoint was tested successfully. The response body shall be empty.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
diff --git a/src/SOL002/VNFIndicatorNotification/definitions/VnfIndicatorValueChangeNotification_def.yaml b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml
similarity index 95%
rename from src/SOL002/VNFIndicatorNotification/definitions/VnfIndicatorValueChangeNotification_def.yaml
rename to src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml
index d4ab65d0a5044d6042faabd92e02f8517540306e..bc0d72b65c73716c169704a6bb553c76621c9506 100644
--- a/src/SOL002/VNFIndicatorNotification/definitions/VnfIndicatorValueChangeNotification_def.yaml
+++ b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml
@@ -1,5 +1,7 @@
-definitions:
+# Copyright (c) ETSI 2017.
+# https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
+definitions:
   VnfIndicatorValueChangeNotification:
     description: >
       This type represents a VNF indicator value change notification.
@@ -19,7 +21,7 @@ definitions:
           Identifier of this notification. If a notification is sent multiple
           times due to multiple subscriptions, the "id" attribute of all these
           notifications shall have the same value.
-        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier'                 
+        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier'
       notificationType:
         description: >
           Discriminator for the different notification types.
@@ -65,4 +67,4 @@ definitions:
           subscription:
             description: >
               Link to the related subscription.
-            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link'
+            $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/Link'
\ No newline at end of file
diff --git a/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml b/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml
deleted file mode 100644
index 89938b310aa0a88113897523e91796ce760b402f..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-responses:
-  409:
-    description: >
-      Conflict
-
-      Another request is in progress that prohibits the fulfilment of
-      the current request, or the current resource state is inconsistent
-      with the request.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml
index 150e1aaa79b6c0e8c8dd24b7dd6b02077f7cf7b1..493549c9ecd0ac2204d8cad119b7f282efdd161c 100644
--- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml
+++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml
@@ -1,51 +1,70 @@
 swagger: "2.0"
 
-info: 
-  version: "1.1.0"
-  title: "SOL002 - VNF Configuration interface"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
+  title: SOL002 - VNF Lifecycle Management interface
   description: >
-    VNF Configuration interface of ETSI NFV SOL002
-
-
+    SOL002 - VNF Lifecycle Management interface
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
-basePath: /vnfconfig/v1
+basePath: /vnflcm/v1
 
-schemes: 
+schemes:
   - http
   - https
 
-consumes: 
+consumes:
   - application/json
 
-produces: 
+produces:
   - application/json
 
-
 paths:
-###############################################################################
-# VNF instances                                                               #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # VNF instances                                                               #
+  ###############################################################################
   '/vnf_instances':
     #SOL003 location: 5.4.2
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
-      #TODO: Add headers defined in 4.3.4.2
-      description: "The POST method creates a new VNF instance resource."
+      description: >
+        The POST method creates a new VNF instance resource.
       parameters:
         - name: createVnfRequest
-          description: The VNF creation parameters
+          description: >
+            The VNF creation parameters, as defined in clause 5.5.2.3.
           in: body
           required: true
           schema:
@@ -57,13 +76,6 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
         - name: Content-Type
           description: >
             The MIME type of the body of the request.
@@ -73,30 +85,42 @@ paths:
           type: string
       responses:
         201:
-          description: A VNF Instance identifier was created successfully
+          description: >
+            201 CREATED
+
+            A VNF Instance identifier was created successfully.
+            The response body shall contain a representation of the created VNF instance, as defined in clause 5.5.2.2.
+            The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created VNF instance.
           headers:
-            #TODO: Add headers defined in 4.3.4.3
             Content-Type:
-              description: The MIME type of the body of the response.
+              description: >
+                The MIME type of the body of the response.
               type: string
               maximum: 1
               minimum: 1
             Location:
-              description: The resource URI of the created VNF instance
+              description: >
+                The resource URI of the created VNF instance
               type: string
               format: url
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
-                Created
-
                 Challenge if the corresponding HTTP request has not provided
                 authorization, or error details if the corresponding HTTP
                 request has provided an invalid authorization token.
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
+            $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -106,19 +130,21 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
         416:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
         422:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     get:
       description: >
         The GET method queries information about multiple VNF instances.
@@ -130,20 +156,79 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
+        - name: filter
           description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. All attribute names that appear in the VnfInstance
+            and in data types referenced from it shall be supported by the VNFM in the filter expression.
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the VnfInstance structure
+            in the response body if this parameter is provided, or none of the parameters
+            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
+            -	vnfConfigurableProperties
+            -	instantiatedVnfInfo
+            -	metadata
+            -	extensions
+          in: query
+          required: false
           type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about zero or more VNF instances was queried
-            successfully. The response body shall contain
+            successfully. The response body shall contain in an array the
             representations of zero or more VNF instances.
           headers:
             Content-Type:
@@ -159,12 +244,17 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             type: array
             items:
-              $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
+              $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -172,20 +262,25 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
         416:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF instance                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual VNF instance                                                     #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}':
     #SOL003 location: 5.4.3.2
     parameters:
@@ -199,13 +294,26 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         Information about an individual VNF instance was queried successfully.
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about zero or more VNF instances was queried
             successfully. The response body shall contain
@@ -224,8 +332,13 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
+            $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -235,17 +348,21 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
         416:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     patch:
       #SOL003 location: 5.4.3.3.4
       description: >
@@ -261,12 +378,47 @@ paths:
           required: true
           in: body
           schema:
-            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications"
+            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModificationRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            On success, the HTTP response shall include a "Location" HTTP header that contains
+            the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+            The response body shall be empty.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -274,25 +426,40 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state
+            of the VNF instance resource.
+            Typically, this is due to the fact that another LCM operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail"
+            attribute should convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
         412:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     delete:
-      #SOL003 location: 5.4.3.3.5
       description: >
         This method deletes an individual VNF instance resource.
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The VNF instance resource and the associated VNF identifier were
             deleted successfully.
@@ -306,8 +473,13 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -315,20 +487,34 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED"
-        412:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Instantiate VNF task                                                        #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Instantiate VNF task                                                        #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/instantiate':
     #SOL003 location: 5.4.4.2
     parameters:
@@ -342,7 +528,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       #SOL003 location: 5.4.4.3.1
       description: >
         The POST method instantiates a VNF instance.
@@ -352,15 +551,16 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest"
+            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest"
       responses:
-        200:
-          description: > 
-            OK
+        202:
+          description: >
+            202 ACCEPTED
 
-            Information about zero or more VNF instances was queried
-            successfully. The response body shall contain
-            representations of zero or more VNF instances.
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -375,8 +575,21 @@ paths:
               type: string
               maximum: 1
               minimum: 0
-          schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -386,20 +599,34 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
         416:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Scale VNF task                                                              #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Scale VNF task                                                              #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/scale':
     #SOL003 location: 5.4.5.2
     parameters:
@@ -413,7 +640,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       #SOL003 location: 5.4.5.3.1
       description: >
         The POST method requests to scale a VNF instance resource
@@ -427,7 +667,42 @@ paths:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -435,20 +710,37 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
+            or that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Scale VNF to Level task                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Scale VNF to Level task                                                     #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/scale_to_level':
     #SOL003 location: 5.4.6.2
     parameters:
@@ -462,7 +754,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       #SOL003 location: 5.4.6.3.1
       description: >
         The POST method requests to scale a VNF instance resource to a target
@@ -476,7 +781,42 @@ paths:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfToLevelRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -484,20 +824,37 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
+            or that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Change VNF Flavour task                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Change VNF Flavour task                                                     #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/change_flavour':
     #SOL003 location: 5.4.7.2
     parameters:
@@ -512,7 +869,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method changes the deployment flavour of a VNF instance.
       parameters:
@@ -521,10 +891,45 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest"
+            $ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -532,20 +937,37 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
+            or that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Terminate VNF task                                                         #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Terminate VNF task                                                          #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/terminate':
     #SOL003 location: 5.4.8.2
     parameters:
@@ -559,7 +981,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method terminates a VNF instance.
       parameters:
@@ -568,10 +1003,45 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest"
+            $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -581,18 +1051,35 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
+            or that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Heal VNF task                                                               #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Heal VNF task                                                               #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/heal':
     #SOL003 location: 5.4.9.2
     parameters:
@@ -606,7 +1093,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method requests to heal a VNF instance resource.
       parameters:
@@ -615,10 +1115,45 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest"
+            $ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -626,20 +1161,37 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
+            or that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Operate VNF task                                                            #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Operate VNF task                                                            #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/operate':
     #SOL003 location: 5.4.9.2
     parameters:
@@ -653,7 +1205,20 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method changes the operational state of a VNF instance resource.
       parameters:
@@ -662,10 +1227,45 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest"
+            $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -673,21 +1273,38 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
+            or that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Change external VNF connectivity task                                       #
-###############################################################################
-  '/vnf_instances/{vnfInstanceId}/change_ext_vls':
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Change external VNF connectivity task                                       #
+  ###############################################################################
+  '/vnf_instances/{vnfInstanceId}/change_ext_conn':
     #SOL003 location: 5.4.9.2
     parameters:
       - name: vnfInstanceId
@@ -701,20 +1318,68 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method changes the external connectivity of a VNF instance.
       parameters:
         - name: ChangeExtVnfConnectivityRequest
-          description: > 
+          description: >
             Parameters for the Change external VNF connectivity operation.
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest"
+            $ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest"
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but the processing has not been completed.
+            The response body shall be empty.
+            The HTTP response shall include a "Location" HTTP header that contains the URI of the
+            newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Location:
+              description: >
+                Used in redirection, or when a new resource has been created.
+                This header field shall be present if the response status code is 201 or 3xx.
+                In the present document this header field is also used if the response status
+                code is 202 and a new resource was created.
+              type: string
+              format: url
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -724,35 +1389,142 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of the resource.
+            Typically, this is due to the fact that another lifecycle management operation is ongoing.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# VNF LCM operation occurrences                                               #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # VNF LCM operation occurrences                                               #
+  ###############################################################################
   '/vnf_lcm_op_occs':
     #SOL003 location: 5.4.12
-    get: 
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
       description: >
         The client can use this method to query status information about
         multiple VNF lifecycle management operation occurrences.
+      parameters:
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc
+            and in data types referenced from it shall be supported by the VNFM in the filter expression.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the VnfLcmOpOcc structure
+            in the response body if this parameter is provided, or none of the parameters
+            "all_fields", "fields", "exclude_fields", "exclude_default" are provided:
+            -	operationParams
+            -	error
+            -	resourceChanges
+            -	changedInfo
+            -	changedExtConnectivity
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response.
+            Shall be supported by the VNFM if the VNFM supports alternative 2
+            (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
       responses:
         200:
           description: >
-            OK
+            200 OK
 
-            Status information for zero or more VNF lifecycle management
-            operation occurrences was queried successfully. The response body
-            shall contain status information about zero or more VNF lifecycle
-            operation occurrences.
+            Status information for zero or more VNF lifecycle management operation occurrences was queried successfully.
+            The response body shall contain in an array the status information about zero or more VNF lifecycle
+            operation occurrences, as defined in clause 5.5.2.13.
+            If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
           headers:
-            #TODO: Add headers defined in 4.3.4.3
             Content-Type:
               description: The MIME type of the body of the response.
               type: string
@@ -766,8 +1538,21 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
+            schema:
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
+            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -777,18 +1562,25 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF LCM operation occurrence                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual VNF LCM operation occurrence                                     #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}':
     #SOL003 location: 5.4.13
     parameters:
@@ -803,7 +1595,20 @@ paths:
         in: path
         required: true
         type: string
-    get: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    get:
       description: >
         The client can use this method to retrieve status information about a
         VNF lifecycle management operation occurrence by reading an individual
@@ -811,14 +1616,13 @@ paths:
       responses:
         200:
           description: >
-            OK
+            200 OK
 
             Information about an individual VNF instance was queried
             successfully. The response body shall contain status
             information about a VNF lifecycle management operation
             occurrence.
           headers:
-            #TODO: Add headers defined in 4.3.4.3
             Content-Type:
               description: The MIME type of the body of the response.
               type: string
@@ -832,8 +1636,13 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
+            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -843,18 +1652,25 @@ paths:
         404:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
-        409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Retry operation task                                                        #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Retry operation task                                                        #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry':
     #SOL003 location: 5.4.14
     parameters:
@@ -869,14 +1685,45 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method initiates retrying a VNF lifecycle operation if that
         operation has experienced a temporary failure, i.e. the related
         "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state.
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but processing has not been completed.
+            The response shall have an empty payload body.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -884,20 +1731,38 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of
+            the VNF LCM operation occurrence resource.
+            Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state
+            or another error handling action is starting such as rollback or fail.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Rollback operation task                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Rollback operation task                                                     #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback':
     #SOL003 location: 5.4.15  
     parameters:
@@ -912,14 +1777,45 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method initiates rolling back a VNF lifecycle operation if
         that operation has experienced a temporary failure, i.e. the related
         "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state.
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but processing has not been completed.
+            The response shall have an empty payload body.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -927,20 +1823,38 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of
+            the VNF LCM operation occurrence resource.
+            Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state
+            or another error handling action is starting such as rollback or fail.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Fail operation task                                                         #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Fail operation task                                                         #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail':
     #SOL003 location: 5.4.16  
     parameters:
@@ -955,15 +1869,28 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method marks a VNF lifecycle management operation occurrence
         as "finally failed" if that operation occurrence is in "FAILED_TEMP"
         state.
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The state of the VNF lifecycle management operation occurrence was
             changed successfully. The response shall include a representation
@@ -982,8 +1909,14 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+            schema:
           schema:
-            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
+            $ref: "../../definitions/SOL002SOl003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -991,20 +1924,38 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of
+            the VNF LCM operation occurrence resource.
+            Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state
+            or another error handling action is starting such as rollback or fail.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Cancel operation task                                                       #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Cancel operation task                                                       #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/cancel':
     #SOL003 location: 5.4.17
     parameters:
@@ -1019,7 +1970,20 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method initiates cancelling an ongoing VNF lifecycle
         operation while it is being executed or rolled back, i.e. the related
@@ -1027,7 +1991,26 @@ paths:
         "ROLLING_BACK" state.
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but processing has not been completed.
+            The response shall have an empty payload body.
+          headers:
+            #TODO: Add headers defined in 4.3.4.3
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1035,53 +2018,60 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          description: > 
-            Conflict
-
-            The operation cannot be executed currently, due to a conflict with
-            the state of the VNF LCM operation occurrence resource.
-            Typically, this is due to the fact that the operation occurrence
-            is not in STARTING, PROCESSING or ROLLING_BACK state.
-            The response body shall contain a ProblemDetails structure, in
-            which the "detail" attribute shall convey more information about
-            the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: >
-                Challenge if the corresponding HTTP request has not provided
-                authorization, or error details if the corresponding HTTP
-                request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+          description: >
+            409 CONFLICT
+
+            Error: The operation cannot be executed currently, due to a conflict with the state of
+            the VNF LCM operation occurrence resource.
+            Typically, this is due to the fact that the operation occurrence is not in STARTING,
+            PROCESSING or ROLLING_BACK state.
+            The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall
+            convey more information about the error.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
     #SOL003 location: 5.4.18
-    post: 
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
+    post:
       description: >
         The POST method creates a new subscription.
       parameters:
         - name: LccnSubscriptionRequest
-          description: > 
+          description: >
             Details of the subscription to be created.
           in: body
           required: true
@@ -1089,8 +2079,8 @@ paths:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest"
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             The subscription was created successfully. The response body shall
             contain a representation of the created subscription resource.
@@ -1114,8 +2104,23 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
+        303:
+          description: >
+            303 SEE OTHER
+
+            A subscription with the same callbackURI and the same filter already exists and the policy of the VNFM
+            is to not create redundant subscriptions.
+            The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing
+            subscription resource.
+            The response body shall be empty.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1123,28 +2128,70 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-    get: 
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+    get:
       description: >
         The GET method queries the list of active subscriptions of the
         functional block that invokes the method. It can be used e.g. for
         resynchronization after error situations.
+      parameters:
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. All attribute names that appear in the LccnSubscription
+            and in data types referenced from it shall be supported by the VNFM in the filter expression.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
-            The list of subscriptions was queried successfully. The response
-            body shall contain the representations of all active subscriptions
-            of the functional block that invokes the method.
+            The list of subscriptions was queried successfully.
+            The response body shall contain in an array the representations of all active subscriptions
+            of the functional block that invokes the method, i.e. zero or more representations of lifecycle
+            change notification subscriptions as defined in clause 5.5.2.16.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -1159,49 +2206,41 @@ paths:
               type: string
               maximum: 1
               minimum: 0
-          schema:
-            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
-        400:
-          description: > 
-            Bad Request
-
-            Invalid attribute-based filtering parameters.
-            The response body shall contain a ProblemDetails structure, in
-            which the "detail" attribute should convey more information about
-            the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
-            WWW-Authenticate:
-              description: >
-                Challenge if the corresponding HTTP request has not provided
-                authorization, or error details if the corresponding HTTP
-                request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
           schema:
-            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
     #SOL003 location: 5.4.19
     parameters:
@@ -1215,14 +2254,27 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The GET method retrieves information about a subscription by reading
         an individual subscription resource.
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The operation has completed successfully.
             The response body shall contain a representation of the
@@ -1241,6 +2293,11 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
         400:
@@ -1250,22 +2307,30 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     delete:
       description: >
         The DELETE method terminates an individual subscription.
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
             The response body shall be empty.
@@ -1278,6 +2343,11 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1285,12 +2355,20 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
-        405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
\ No newline at end of file
diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..85fba009eec9a426175eca0e9f3c784ed6cdd119
--- /dev/null
+++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml
@@ -0,0 +1,367 @@
+# Copyright (c) ETSI 2017.
+# https://forge.etsi.org/etsi-forge-copyright-notice.txt
+
+definitions:
+  VnfInstance:
+    description: >
+      This type represents a VNF instance.
+    type: object
+    required:
+      - id
+      - vnfdId
+      - vnfProvider
+      - vnfProductName
+      - vnfSoftwareVersion
+      - vnfdVersion
+      - vnfPkgInfoId
+      - instantiationState
+    properties:
+      id:
+        description: >
+          Identifier of the VNF instance.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
+      vnfInstanceName:
+        description: >
+          Name of the VNF instance.
+          This attribute can be modified with the PATCH method.
+        type: string
+      vnfInstanceDescription:
+        description: >
+          Human-readable description of the VNF instance.
+          This attribute can be modified with the PATCH method.
+        type: string
+      vnfdId:
+        description: >
+          Identifier of the VNFD on which the VNF instance is based.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
+      vnfProvider:
+        description: >
+          Provider of the VNF and the VNFD. The value is copied from the VNFD.
+        type: string
+      vnfProductName:
+        description: >
+          Name to identify the VNF Product. The value is copied from the VNFD.
+        type: string
+      vnfSoftwareVersion:
+        description: >
+          Software version of the VNF. The value is copied from the VNFD.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
+      vnfdVersion:
+        description: >
+          Identifies the version of the VNFD. The value is copied from the VNFD.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
+      vnfPkgInfoId:
+        description: >
+          Identifier of information held by the NFVO about the specific VNF
+          package on which the VNF is based. This identifier was allocated by the
+          NFVO. This attribute can be modified with the PATCHmethod.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
+      vnfConfigurableProperties:
+        description: >
+          Current values of the configurable properties of the VNF instance.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      instantiationState:
+        description: >
+          The instantiation state of the VNF.
+        type: string
+        enum:
+          - NOT_INSTANTIATED
+          - INSTANTIATED
+      instantiatedVnfInfo:
+        description: >
+          Information specific to an instantiated VNF instance. This attribute
+          shall be present if the instantiateState attribute value is
+          INSTANTIATED.
+        type: object
+        required:
+          - flavourId
+          - vnfState
+          - extCpInfo
+        properties:
+          flavourId:
+            description: >
+              Identifier of the VNF deployment flavour applied to this VNF instance.
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
+          vnfState:
+            description: >
+              The state of the VNF instance.
+            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
+          scaleStatus:
+            description: >
+              Scale status of the VNF, one entry per aspect. Represents for every
+              scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo"
+          extCpInfo:
+            description: >
+              Information about the external CPs exposed by the VNF instance.
+            type: array
+            minItems: 1
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfExtCpInfo"
+          extVirtualLinkInfo:
+            description: >
+              Information about the external VLs the VNF instance is connected to.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
+          extManagedVirtualLinkInfo:
+            description: >
+              External virtual links the VNF instance is connected to.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkInfo"
+          monitoringParameters:
+            description: >
+              Active monitoring parameters.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/MonitoringParameter"
+          localizationLanguage:
+            description: >
+              Information about localization language of the VNF (includes e.g.
+              strings in the VNFD). The localization languages supported by a VNF
+              can be declared in the VNFD, and localization language selection can
+              take place at instantiation time.
+              The value shall comply with the format defined in IETF RFC 5646.
+            type: string
+          vnfcResourceInfo:
+            description: >
+              Information about the virtualised compute and storage resources used
+              by the VNFCs of the VNF instance.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcResourceInfo"
+          virtualLinkResourceInfo:
+            description: >
+              Information about the virtualised network resources used by the VLs
+              of the VNF instance.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfVirtualLinkResourceInfo"
+          virtualStorageResourceInfo:
+            description: >
+              Information on the virtualised storage resource(s) used as storage for the VNF instance.
+            type: array
+            items:
+              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VirtualStorageResourceInfo"
+      metadata:
+        description: >
+          Additional VNF-specific metadata describing the VNF instance.
+          Metadata that are writeable are declared in the VNFD.
+          This attribute can be modified with the PATCH method.
+          ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      extensions:
+        description: >
+          VNF specific attributes that affect the lifecycle management of this VNF instance by the VNFM,
+          or the lifecycle management scripts. Extensions that are writeable are declared in the VNFD.
+          This attribute can be modified with the PATCH method.
+          ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      _links:
+        description: >
+          Links to resources related to this resource.
+        type: object
+        required:
+          - self
+        properties:
+          self:
+            description: URI of this resource.
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          indicators:
+            description: Indicators related to this VNF instance, if applicable.
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          instantiate:
+            description: >
+              Link to the "instantiate" task resource, if the related operation
+              is possible based on the current status of this VNF instance
+              resource (i.e. VNF instance in NOT_INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          terminate:
+            description: >
+              Link to the "terminate" task resource, if the related operation
+              is possible based on the current status of this VNF instance
+              resource (i.e. VNF instance is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          scale:
+            description: >
+              Link to the "scale" task resource, if the related operation is
+              supported for this VNF instance, and is possible based on the
+              current status of this VNF instance resource (i.e. VNF instance
+              is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          scaleToLevel:
+            description: >
+              Link to the "scale_to_level" task resource, if the related
+              operation is supported for this VNF instance, and is possible
+              based on the current status of this VNF instance resource
+              (i.e. VNF instance is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          changeFlavour:
+            description: >
+              Link to the "change_flavour" task resource, if the related
+              operation is supported for this VNF instance, and is possible
+              based on the current status of this VNF instance resource
+              (i.e. VNF instance is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          heal:
+            description: >
+              Link to the "heal" task resource, if the related operation is
+              supported for this VNF instance, and is possible based on the
+              current status of this VNF instance resource
+              (i.e. VNF instance is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          operate:
+            description: >
+              Link to the "operate" task resource, if the related operation is
+              supported for this VNF instance, and is possible based on the
+              current status of this VNF instance resource
+              (i.e. VNF instance is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+          changeExtConn:
+            description: >
+              Link to the "change_ext_conn" task resource, if the related
+              operation is possible based on the current status of this VNF
+              instance resource (i.e. VNF instance is in INSTANTIATED state).
+            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+
+  ChangeExtVnfConnectivityRequest:
+    description: >
+      This type represents request parameters for the 
+      "Change external VNF connectivity" operation to modify the external
+      connectivity of a VNF instance.
+    type: object
+    required:
+      - extVirtualLinks
+    properties:
+      extVirtualLinks:
+        description: >
+          Information about external VLs to change (e.g. connect the VNF to).
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
+      additionalParams:
+        description: >
+          Additional input parameters for the instantiation process, specific
+          to the VNF being instantiated, as declared in the VNFD as part of 
+          "ChangeExtVnfConnectivityOpConfig".".
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+
+  ChangeVnfFlavourRequest:
+    description: >
+      This type represents request parameters for the "Change VNF flavour" operation.
+    type: object
+    required:
+      - newFlavourId
+    properties:
+      newFlavourId:
+        description: >
+          Identifier of the VNF deployment flavour to be instantiated.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
+      instantiationLevelId:
+        description: >
+          Identifier of the instantiation level of the deployment flavour to
+          be instantiated. If not present, the default instantiation level as
+          declared in the VNFD is instantiated.
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
+      extVirtualLinks:
+        description: >
+          Information about external VLs to connect the VNF to.
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
+      extManagedVirtualLinks:
+        description: >
+          Information about external VLs to connect the VNF to.
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
+      additionalParams:
+        description: >
+          Additional input parameters for the instantiation process, specific
+          to the VNF being instantiated, as declared in the VNFD as part of 
+          "InstantiateVnfOpConfig".
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+
+  HealVnfRequest:
+    type: object
+    properties:
+      vnfcInstanceId:
+        description: >
+          List of VNFC instances requiring a healing action.
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
+      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, as declared in the VNFD
+          as part of "HealVnfOpConfig".
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      healScript:
+        description: >
+          Provides link to a script that should be executed as part
+          of the healing action or a set of rules for healing procedure.
+        type: string
+
+  OperateVnfRequest:
+    description: >
+      This type represents request parameters for the "Operate VNF" operation.
+    type: object
+    required:
+      - changeStateTo
+    properties:
+      vnfcInstanceId:
+        description: >
+          Identifier of VNFC instances. Cardinality can be "0" to denote
+          that the request applies to the whole VNF and not a specific VNFC instance.
+        type: array
+        items:
+          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
+      changeStateTo:
+        description: >
+          The desired operational state (i.e. started or stopped) to change
+          the VNF to.
+        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
+      stopType:
+        description: >
+          It signals whether forceful or graceful stop is requested.
+          Ignored if changeStateTo=STARTED.
+          Permitted values:
+          FORCEFUL: The VNFM will stop down the VNF or the affected VNFCs immediately after accepting the request.
+        type: string
+        enum:
+          - FORCEFUL
+      additionalParams:
+        description: >
+          Additional parameters passed by the NFVO as input to the process,
+          specific to the VNF of which the operation status is changed, as
+          declared in the VNFD as part of "OperateVnfOpConfig".
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+
+  TerminateVnfRequest:
+    type: object
+    required:
+      - terminationType
+    properties:
+      terminationType:
+        description: >
+          Indicates the type of termination is requested.
+          Permitted values:
+          * FORCEFUL: The VNFM will shut down the VNF and release the
+            resources immediately after accepting the request.
+        type: string
+        enum:
+          - FORCEFUL
+      additionalParams:
+        description: >
+          Additional parameters passed by the NFVO as input to the termination
+          process, specific to the VNF being terminated, as declared in the
+          VNFD as part of "TerminateVnfOpConfig".
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
\ No newline at end of file
diff --git a/src/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml
deleted file mode 100644
index ae34e060b6e11b0e568fdab242a5eb46b023edeb..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml
+++ /dev/null
@@ -1,1358 +0,0 @@
-# Copyright (c) ETSI 2017.
-# https://forge.etsi.org/etsi-forge-copyright-notice.txt
-
-definitions:
-  AffectedVirtualLink:
-    # Ref TBD
-    description: >
-      This type provides information about added, deleted, modified and
-      temporary VLs.
-    type: object
-    required:
-      - id
-      - virtualLinkDescId
-      - changeType
-      - networkResource
-    properties:
-      id: 
-        description: >
-          Identifier of the virtual link instance, identifying the applicable
-          "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type.
-        $ref: "#/definitions/IdentifierInVnf"
-      virtualLinkDescId:
-        description: >
-          Identifier of the related VLD in the VNFD.
-        $ref: "#/definitions/IdentifierInVnfd"
-      changeType:
-        description: >
-          Signals the type of change. Permitted values:
-          * ADDED
-          * REMOVED
-          * MODIFIED
-          * TEMPORARY
-          * LINK_PORT_ADDED
-          * LINK_PORT_REMOVED
-          For a temporary resource, an AffectedVirtualLink structure exists as
-          long as the temporary resource exists.
-        type: string
-        enum:
-          - ADDED
-          - REMOVED
-          - MODIFIED
-          - TEMPORARY
-          - LINK_PORT_ADDED
-          - LINK_PORT_REMOVED
-      networkResource:
-        description: >
-          Reference to the VirtualNetwork resource. Detailed information is
-          (for new and modified resources) or has been (for removed
-          resources) available from the VIM.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-
-  AffectedVirtualStorage:
-    # Ref TBD
-    description: >
-      This type provides information about added, deleted, modified and
-      temporary virtual storage resources.
-    type: object
-    required:
-      - id
-      - virtualStorageDescId
-      - changeType
-      - storageResource
-    properties:
-      id:
-        description: >
-          Identifier of the storage instance, identifying the applicable
-          "virtualStorageResourceInfo" entry in the "VnfInstance" data type.
-        $ref: "#/definitions/IdentifierInVnf"
-      virtualStorageDescId:
-        description: >
-          Identifier of the related VirtualStorage descriptor in the VNFD.
-        $ref: "#/definitions/IdentifierInVnfd"
-      changeType:
-        description: >
-          Signals the type of change. Permitted values:
-          * ADDED
-          * REMOVED
-          * MODIFIED
-          * TEMPORARY
-          For a temporary resource, an AffectedVirtualStorage structure exists
-          as long as the temporary resource exists.
-        type: string
-        enum:
-          - ADDED
-          - REMOVED
-          - MODIFIED
-          - TEMPORARY
-      storageResource:
-        description: >
-          Reference to the VirtualStorage resource. Detailed information is 
-          (for new and modified resources) or has been (for removed
-          resources) available from the VIM.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      
-  AffectedVnfc:
-    description: >
-      This type provides information about added, deleted, modified and
-      temporary VNFCs.  
-    type: object
-    required:
-      - id
-      - vduId
-      - changeType
-      - computeResource
-    properties:
-      id:
-        description: >
-          Identifier of the Vnfc instance, identifying the applicable
-          "vnfcResourceInfo" entry in the "VnfInstance" data type.
-        $ref: "#/definitions/IdentifierInVnf"
-      vduId:
-        description: >
-          Identifier of the related VDU in the VNFD.
-        $ref: "#/definitions/IdentifierInVnfd"
-      changeType:
-        description: >
-          Signals the type of change. Permitted values:
-          * ADDED
-          * REMOVED
-          * MODIFIED
-          * TEMPORARY
-          For a temporary resource, an AffectedVnfc structure exists as long
-          as the temporary resource exists.
-        type: string
-        enum:
-          - ADDED
-          - REMOVED
-          - MODIFIED
-          - TEMPORARY
-      computeResource:
-        description: >
-          Reference to the VirtualCompute resource. Detailed information is
-          (for new and modified resources) or has been (for removed
-          resources) available from the VIM.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      addedStorageResourceIds:
-        description: >
-          References to VirtualStorage resources that have been added. Each
-          value refers to a VirtualStorageResourceInfo item in the
-          VnfInstance that was added to the VNFC. It shall be provided if at
-          least one storage resource was added to the VNFC.
-        $ref: "#/definitions/IdentifierInVnf"
-
-  CancelMode:
-    description: >
-      This type represents a parameter to select the mode of cancelling an
-      ongoing VNF LCM operation occurrence.
-    type: object
-    required: 
-      - cancelMode
-    properties:
-      cancelMode:
-        description: >
-          Cancellation mode to apply.
-        $ref: "#/definitions/CancelModeType"
-    
-  CancelModeType:
-    description: >
-      Cancellation mode.
-      GRACEFUL: The VNFM shall not start any new resource management operation
-      and shall wait for the ongoing resource management operations in the
-      underlying system, typically the VIM, to finish execution or to time
-      out. After that, the VNFM shall put the operation occurrence into the
-      FAILED_TEMP state.
-      FORCEFUL: The VNFM shall not start any new resource management
-      operation, shall cancel the ongoing resource management operations
-      in the underlying system, typically the VIM, and shall wait for the
-      cancellation to finish or to time out. After that, the VNFM shall put
-      the operation occurrence into the FAILED_TEMP state.
-    type: string
-    enum:
-      - GRACEFUL
-      - FORCEFUL
-
-  ChangeExtVnfConnectivityRequest:
-    # Ref TBD
-    description: >
-      This type represents request parameters for the 
-      "Change external VNF connectivity" operation to modify the external
-      connectivity of a VNF instance.
-    type: object
-    required:
-      - extVirtualLinks
-    properties:
-      extVirtualLinks:
-        description: >
-          Information about external VLs to change (e.g. connect the VNF to).
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
-      additionalParams:
-        description: >
-          Additional input parameters for the instantiation process, specific
-          to the VNF being instantiated, as declared in the VNFD as part of 
-          "ChangeExtVnfConnectivityOpConfig".".
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  ChangeVnfFlavourRequest:
-    # Ref TBD
-    description: >
-      This type represents request parameters for the "Change VNF flavour" operation.
-    type: object
-    required:
-      - newFlavourId
-    properties:
-      newFlavourId:
-        description: >
-          Identifier of the VNF deployment flavour to be instantiated.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      instantiationLevelId:
-        description: >
-          Identifier of the instantiation level of the deployment flavour to
-          be instantiated. If not present, the default instantiation level as
-          declared in the VNFD is instantiated.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      extVirtualLinks:
-        description: >
-          Information about external VLs to connect the VNF to.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
-      extManagedVirtualLinks:
-        description: >
-          Information about external VLs to connect the VNF to.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
-      additionalParams:
-        description: >
-          Additional input parameters for the instantiation process, specific
-          to the VNF being instantiated, as declared in the VNFD as part of 
-          "InstantiateVnfOpConfig".
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  extCpInfo:
-    type: object
-    required:
-      - id
-      - cpdId
-    properties:
-      id:
-        description: >
-          Identifier of the external CP instance and the related information
-          instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      cpdId:
-        description: >
-          Identifier of the external connection point descriptor in the VNFD.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      addresses:
-        description: >
-          List of network addresses that have been configured (statically or
-          dynamically) on the CP.
-        type: array
-        items:
-          $ref: "#/definitions/NetworkAddressInfo"
-
-  ExtManagedVirtualLinkInfo:
-    # Ref TBD
-    type: object
-    required:
-      - id
-      - vnfVirtualLinkDescId
-    properties:
-      id:
-        description: >
-          Identifier of the externally-managed internal VL and the related
-          externally-managed VL information instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      vnfVirtualLinkDescId:
-        description: >
-          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      networkResource:
-        description: >
-          Reference to the VirtualNetwork resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      vnfLinkPorts:
-        description: >
-          Link ports of this VL.
-        type: array
-        items:
-          $ref: "#/definitions/VnfLinkPort"
-
-  HealVnfRequest:
-    type: object
-    properties:
-      cause:
-        description: >
-          Indicates the reason why a healing procedure is required.
-        type: string
-      vnfcInstanceId:
-        description: TBD
-        type: string
-      healScript:
-        description: TBD
-        type: string
-      additionalParams:
-        description: >
-          Additional parameters passed by the NFVO as input to the healing
-          process, specific to the VNF being healed, as declared in the VNFD
-          as part of "HealVnfOpConfig".
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  InstantiateVnfRequest:
-    # Ref TBD
-    type: object
-    required:
-      - flavourId
-    properties:
-      flavourId:
-        description: >
-          Identifier of the VNF deployment flavour to be instantiated.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      instantiationLevelId:
-        description: >
-          Identifier of the instantiation level of the deployment flavour to be
-          instantiated. If not present, the default instantiation level as
-          declared in the VNFD is instantiated.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      extVirtualLinks:
-        description: >
-          Information about external VLs to connect the VNF to.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
-      extManagedVirtualLinks:
-        description: >
-          Information about external VLs to connect the VNF to.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
-      localizationLanguage:
-        description: >
-          Localization language of the VNF to be instantiated. The value shall
-          comply with the format defined in IETF RFC 5646.
-        type: string
-      additionalParams:
-        description: >
-          Additional input parameters for the instantiation process, specific
-          to the VNF being instantiated, as declared in the VNFD as part of 
-          "InstantiateVnfOpConfig".
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  InstantiatedVnfInfo:
-    type: object
-    required:
-      - flavourId
-      - vnfState
-    properties:
-      flavourId:
-        description: >
-          Identifier of the VNF deployment flavour applied to this VNF instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      vnfState:
-        description: >
-          The state of the VNF instance.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
-      scaleStatus:
-        description: >
-          Scale status of the VNF, one entry per aspect. Represents for every
-          scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo"
-      extCpInfo:
-        description: >
-          Information about the external CPs exposed by the VNF instance.
-        type: array
-        minItems: 1
-        items:
-          $ref: "#/definitions/extCpInfo"
-      extVirtualLinkInfo:
-        description: >
-          Information about the external VLs the VNF instance is connected to.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
-      extManagedVirtualLinkInfo:
-        description: >
-          External virtual links the VNF instance is connected to.
-        type: array
-        items:
-          $ref: "#/definitions/ExtManagedVirtualLinkInfo"
-      monitoringParameters:
-        description: >
-          Active monitoring parameters.
-        type: array
-        items:
-          $ref: "#/definitions/MonitoringParameter"
-      localizationLanguage:
-        description: >
-          Information about localization language of the VNF (includes e.g.
-          strings in the VNFD). The localization languages supported by a VNF
-          can be declared in the VNFD, and localization language selection can
-          take place at instantiation time.
-          The value shall comply with the format defined in IETF RFC 5646.
-        type: string
-      vnfcResourceInfo:
-        description: >
-          Information about the virtualised compute and storage resources used
-          by the VNFCs of the VNF instance.
-        type: array
-        items:
-          $ref: "#/definitions/VnfcResourceInfo"
-      virtualLinkResourceInfo:
-        description: >
-          Information about the virtualised network resources used by the VLs
-          of the VNF instance.
-        type: array
-        items:
-          $ref: "#/definitions/VnfVirtualLinkResourceInfo"
-      virtualStorageResourceInfo:
-        description: >
-          Information on the virtualised storage resource(s) used as storage for the VNF instance.
-        type: array
-        items:
-          $ref: "#/definitions/VirtualStorageResourceInfo"
-      vnfcInfo:
-        description: "TBD"
-        type: string  
-      metadata:
-        description: >
-          Additional VNF-specific metadata describing the VNF instance.
-          Metadata that are writeable are declared in the VNFD.
-          This attribute can be modified with the PATCH method.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-      extensions:
-        description: >
-          VNF-specific attributes that affect the lifecycle management of this
-          VNF instance by the VNFM, or the lifecycle management scripts.
-          Extensions that are writeable are declared in the VNFD.
-          This attribute can be modified with the PATCH method.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-      _links:
-        description: >
-          Links to resources related to this resource.
-        type: object
-        required:
-          - self
-        properties:
-          self:
-            description: URI of this resource.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          indicators:
-            description: Indicators related to this VNF instance, if applicable.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          instantiate:
-            description: >
-              Link to the "instantiate" task resource, if the related operation
-              is possible based on the current status of this VNF instance
-              resource (i.e. VNF instance in NOT_INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          terminate:
-            description: >
-              Link to the "terminate" task resource, if the related operation
-              is possible based on the current status of this VNF instance
-              resource (i.e. VNF instance is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          scale:
-            description: >
-              Link to the "scale" task resource, if the related operation is
-              supported for this VNF instance, and is possible based on the
-              current status of this VNF instance resource (i.e. VNF instance
-              is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          scaleToLevel:
-            description: >
-              Link to the "scale_to_level" task resource, if the related
-              operation is supported for this VNF instance, and is possible
-              based on the current status of this VNF instance resource
-              (i.e. VNF instance is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          changeFlavour:
-            description: >
-              Link to the "change_flavour" task resource, if the related
-              operation is supported for this VNF instance, and is possible
-              based on the current status of this VNF instance resource
-              (i.e. VNF instance is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          heal:
-            description: >
-              Link to the "heal" task resource, if the related operation is
-              supported for this VNF instance, and is possible based on the
-              current status of this VNF instance resource
-              (i.e. VNF instance is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          operate:
-            description: >
-              Link to the "operate" task resource, if the related operation is
-              supported for this VNF instance, and is possible based on the
-              current status of this VNF instance resource
-              (i.e. VNF instance is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          changeExtConn:
-            description: >
-              Link to the "change_ext_conn" task resource, if the related
-              operation is possible based on the current status of this VNF
-              instance resource (i.e. VNF instance is in INSTANTIATED state).
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-
-  MonitoringParameter:
-    type: object
-    required:
-      - id
-      - value
-      - timeStamp
-    properties:
-      id:
-        description: >
-          Identifier of the monitoring parameter defined in the VNFD.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      name:
-        description: >
-          Human readable name of the monitoring parameter, as defined in the
-          VNFD.
-        type: string
-      value:
-        description: >
-          Value of the monitoring parameter known to the VNFM (e.g. obtained
-          for autoscaling purposes).
-          The type of the "value" attribute (i.e. scalar, structure (Object in
-          JSON), or array (of scalars, arrays or structures/Objects)) is
-          assumed to be defined in an external measurement specification
-          outside the scope of the present document.
-        type: object
-      timeStamp:
-        description: >
-          Represents the point in time when the measurement has been performed,
-          as known to the VNFM.
-          Should be formatted according to ETF RFC 3339.
-        type: string
-
-  LccnLinks:
-    description: >
-      This type represents the links to resources that a notification can
-      contain.
-    type: object
-    required: 
-      - vnfInstance
-      - subscription
-    properties: 
-      vnfInstance:
-        description: >
-          Link to the resource representing the VNF instance to which the
-          notified change applies.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-      subscription:
-        description: >
-          Link to the related subscription.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-      vnfLcmOpOcc:
-        description: >
-          Link to the VNF lifecycle management operation occurrence that this
-          notification is related to. Shall be present if there is a related
-          lifecycle operation occurrence.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-
-  LccnSubscription:
-    description: >
-      This type represents a subscription related to notifications about VNF
-      lifecycle changes.
-    type: object
-    required:
-      - id
-      - callbackUri
-      - _links
-    properties:
-      id:
-        description: >
-          Identifier of this subscription resource.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      filter:
-        description: >
-          Filter settings for this subscription, to define the subset of all
-          notifications this subscription relates to. A particular
-          notification is sent to the subscriber if the filter matches, or if
-          there is no filter.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LifecycleChangeNotificationsFilter"
-      callbackUri:
-        description: >
-          The URI of the endpoint to send the notification to.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
-      _links:
-        description: >
-          Links to resources related to this resource.
-        type: object
-        required:
-          - self
-        properties:
-          self:
-            description: >
-              URI of this resource.
-            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
-
-  LccnSubscriptionRequest:
-    description: >
-      This type represents a subscription request related to notifications
-      about VNF lifecycle changes.
-    type: object
-    required:
-      - callbackUri
-    properties:
-      filter: 
-        description: >
-          Filter settings for this subscription, to define the subset of all
-          notifications this subscription relates to. A particular
-          notification is sent to the subscriber if the filter matches, or if
-          there is no filter.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LifecycleChangeNotificationsFilter"
-      callbackUri:
-        description: >
-          The URI of the endpoint to send the notification to.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
-      authentication:
-        description: >
-          Authentication parameters to configure the use of Authorization when
-          sending notifications corresponding to this subscription, as defined
-          in clause 4.5.3.4.
-          This attribute shall only be present if the subscriber requires
-          authorization of notifications.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
-
-  LcmOperationStateType:
-    description: >
-      Value | Description
-      ------|------------
-      STARTING | The LCM operation is starting.
-      PROCESSING | The LCM operation is currently in execution.
-      COMPLETED | he LCM operation has been completed successfully.
-      FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed.
-      FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed.
-      ROLLING_BACK | The LCM operation is currently being rolled back.
-      ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
-    type: string
-    enum:
-      - STARTING
-      - PROCESSING
-      - COMPLETED
-      - FAILED_TEMP
-      - FAILED
-      - ROLLING_BACK
-      - ROLLED_BACK
-
-  NetworkAddressInfo:
-    description: >
-      This type represents information about a network address that has been assigned.
-    type: object
-    required:
-      - macAddress
-    properties:
-      macAddress:
-        description: >
-          Assigned MAC address.
-        type: string
-              #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)?
-      ipAddress:
-        description: >
-          IP address. Present if an IP address was assigned.
-        type: string
-            #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)?
-      subnetIpRanges:
-        description: >
-          IP address ranges defining the subnet in which the IP address was
-          assigned. May be present if the "ipAddress" attribute is present,
-          and shall be absent if the "ipAddress" attribute is not present.
-        type: array
-        items:
-          type: object
-          required:
-            - minIpAddress
-            - maxIpAddress
-          properties:
-            minIpAddress:
-              description: >
-                Lowest IP address belonging to the range.
-              type: string
-              format: ipaddress
-            maxIpAddress:
-              description: >
-                Highest IP address belonging to the range.
-              type: string
-              format: ipaddress
-
-  OperateVnfRequest:
-    description: >
-      This type represents request parameters for the "Operate VNF" operation.
-    type: object
-    required:
-      - changeStateTo
-    properties:
-      changeStateTo:
-        description: >
-          The desired operational state (i.e. started or stopped) to change
-          the VNF to.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
-      stopType:
-        description: >
-          It signals whether forceful or graceful stop is requested. Ignored
-          if changeStateTo=STARTED.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/StopType"
-      vnfcInstanceId:
-        description: TBD
-        type: string
-      additionalParams:
-        description: >
-          Additional parameters passed by the NFVO as input to the process,
-          specific to the VNF of which the operation status is changed, as
-          declared in the VNFD as part of "OperateVnfOpConfig".
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  ScaleInfo:
-    required:
-      - aspectId
-      - scaleLevel
-    type: object
-    properties:
-      aspectId:
-        description: >
-          Identifier of the scaling aspect.
-        $ref: "#/definitions/IdentifierInVnfd"
-      scaleLevel:
-        description: >
-          Indicates the scale level. The minimum value shall be 0 and the
-          maximum value shall be <= maxScaleLevel as described in the VNFD.
-        type: integer
-
-  ScaleVnfRequest:
-    type: object
-    required:
-      - type
-      - aspectId
-    properties:
-      type:
-        description: >
-          Indicates the type of the scale operation requested.
-          Permitted values:
-          * SCALE_OUT: adding additional VNFC instances to the VNF to increase
-            capacity
-          * SCALE_IN: removing VNFC instances from the VNF in order to release
-            unused capacity.
-        type: string
-        enum: 
-          - SCALE_OUT
-          - SCALE_IN
-      aspectId:
-        description: >
-          Identifier of the scaling aspect.
-        $ref: "#/definitions/IdentifierInVnfd"
-      numberOfSteps:
-        description: >
-          Number of scaling steps to be executed as part of this Scale VNF
-          operation. It shall be a positive number and the default value
-          shall be 1.
-        type: integer
-        default: 1
-      additionalParams:
-        description: >
-          Additional parameters passed by the NFVO as input to the scaling
-          process, specific to the VNF being scaled, as declared in the VNFD
-          as part of "ScaleVnfOpConfig".
-        $ref: "#/definitions/KeyValuePairs"
-  
-  ScaleVnfToLevelRequest:
-    description: >
-      This type represents request parameters for the "Scale VNF to Level"
-      operation.
-    type: object
-    properties:
-      instantiationLevelId:
-        description: > 
-          Identifier of the target instantiation level of the current
-          deployment flavour to which the VNF is requested to be scaled.
-          Either the instantiationLevelId attribute or the scaleInfo attribute
-          shall be included.
-        $ref: "#/definitions/IdentifierInVnfd"
-      scaleInfo:
-        description: >
-          For each scaling aspect of the current deployment flavour, indicates
-          the target scale level to which the VNF is to be scaled.
-          Either the instantiationLevelId attribute or the scaleInfo attribute
-          shall be included.
-        type: array
-        items:
-          $ref: "#/definitions/ScaleInfo"
-      additionalParams:
-        description: >
-          Additional parameters passed by the NFVO as input to the scaling
-          process, specific to the VNF being scaled, as declared in the
-          VNFD as part of "ScaleVnfToLevelOpConfig".
-        $ref: "#/definitions/KeyValuePairs"
-
-  StopType:
-    description: >
-      * FORCEFUL: The VNFM will stop the VNF immediately after accepting the
-        request.
-    type: string
-    enum:
-      - FORCEFUL
-            
-  TerminateVnfRequest:
-    type: object
-    required:
-      - terminationType
-    properties:
-      terminationType:
-        description: >
-          Indicates the type of termination is requested.
-          Permitted values:
-          * FORCEFUL: The VNFM will shut down the VNF and release the
-            resources immediately after accepting the request.
-        type: string
-        enum:
-          - FORCEFUL
-      additionalParams:
-        description: >
-          Additional parameters passed by the NFVO as input to the termination
-          process, specific to the VNF being terminated, as declared in the
-          VNFD as part of "TerminateVnfOpConfig".
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  VirtualStorageResourceInfo:
-    description: >
-      This type represents the information that allows addressing a virtualised
-      resource that is used by a VNF instance.
-    type: object
-    required:
-      - id
-      - virtualStorageDescId
-      - storageResource
-    properties:
-      id:
-        description: >
-          Identifier of this VirtualStorageResourceInfo instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      virtualStorageDescId:
-        description: >
-          Identifier of the VirtualStorageDesc in the VNFD.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      storageResource:
-        description: >
-          Reference to the VirtualStorage resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      reservationId:
-        description: >
-          The reservation identifier applicable to the resource. It shall be
-          present when an applicable reservation exists.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      metadata:
-        description: >
-          Metadata about this resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  VnfcResourceInfo:
-    description: >
-      This type represents the information on virtualised compute and storage
-      resources used by a VNFC in a VNF instance.
-    type: object
-    required:
-      - id
-      - vduId
-      - computeResource
-      - vnfcCpInfo
-    properties:
-      id:
-        description: >
-          Identifier of this VnfcResourceInfo instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      vduId:
-        description: >
-          Reference to the applicable VDU in the VNFD.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      computeResource:
-        description: >
-          Reference to the VirtualCompute resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      storageResourceIds:
-        description: >
-          References to the VirtualStorage resources. The value refers to a
-          VirtualStorageResourceInfo item in the VnfInstance.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      reservationId:
-        description: >
-          The reservation identifier applicable to the resource. It shall be
-          present when an applicable reservation exists.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      vnfcCpInfo:
-        description: >
-          CPs of the VNFC instance.
-          Shall be present when that particular CP of the VNFC instance is
-          associated to an external CP of the VNF instance.
-          May be present otherwise.
-        type: array
-        items:
-          type: object
-          required:
-            - id
-            - cpdId
-          properties:
-            id:
-              description: >
-                Identifier of this VNFC CP instance and the associated array
-                entry.
-              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-            cpdId:
-              description: >
-                Identifier of the VDU CPD, cpdId, in the VNFD.
-              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-            vnfExtCpId:
-              description: >
-                When the VNFC CP is exposed as external CP of the VNF, the
-                identifier of this external VNF CP.
-              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-            addresses:
-              description: >
-                List of network addresses that have been configured (statically
-                or dynamically) on the CP.
-              $ref: "#/definitions/NetworkAddressInfo"
-      metadata:
-        description: >
-          Metadata about this resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-
-  VnfExtCpData:
-    # Ref TBD
-    description: >
-      This type represents an external CP.
-    type: object
-    required: 
-      - cpdId
-    properties: 
-      cpdId:
-        description: >
-          The identifier of the CPD in the VNFD.
-        $ref: "#/definitions/IdentifierInVnfd"
-      fixedAddresses:
-        description: >
-          List of (fixed) network addresses that need to be configured on the
-          CP. This attribute shall be present if fixed addresses need to be
-          configured.
-        type: array
-        items:
-          $ref: "#/definitions/FixedNetworkAddressData"
-      dynamicAddresses:
-        description: >
-          List of network addresses to be assigned dynamically. This attribute
-          shall be present if dynamic addresses need to be configured.
-        type: array
-        items:
-          $ref: "#/definitions/DynamicNetworkAddressData"
-
-  VnfIdentifierDeletionNotification:
-    description: >
-      This type represents a VNF identifier deletion notification, which
-      informs the receiver of the deletion of a new VNF instance resource and
-      the associated VNF instance identifier.
-    type: object
-    required: 
-      - id
-      - notificationType
-      - timeStamp
-      - vnfInstanceId
-      - _links
-    properties:
-      id:
-        description: >
-          Identifier of this notification. If a notification is sent multiple
-          times due to multiple subscriptions, the "id" attribute of all these
-          notifications shall have the same value.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      notificationType:
-        description: >
-          Discriminator for the different notification types. Shall be set to
-          "VnfIdentifierDeletionNotification" for this notification type.
-        type: string
-        enum:
-          - VnfIdentifierDeletionNotification
-      subscriptionId:
-        description: >
-          Identifier of the subscription that this notification relates to.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      timeStamp:
-        description: >
-          Date-time of the generation of the notification.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
-      vnfInstanceId:
-        description: >
-          The deleted VNF instance identifier.
-        $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      _links:
-        description: >
-          Links to resources related to this notification.
-        $ref: "#/definitions/LccnLinks"
-
-  VnfInstance:
-    # Ref TBD
-    description: >
-      This type represents a VNF instance.
-    type: object
-    required:
-      - id
-      - vnfdId
-      - vnfProvider
-      - vnfProductName
-      - vnfSoftwareVersion
-      - vnfdVersion
-      - onboardedVnfPkgInfoId
-      - instantiationState
-    properties:
-      id:
-        description: >
-          Identifier of the VNF instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      vnfInstanceName:
-        description: >
-          Name of the VNF instance.
-          This attribute can be modified with the PATCH method.
-        type: string
-      vnfInstanceDescription:
-        description: >
-          Human-readable description of the VNF instance.
-          This attribute can be modified with the PATCH method.
-        type: string
-      vnfdId:
-        description: >
-          Identifier of the VNFD on which the VNF instance is based.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      vnfProvider:
-        description: >
-          Provider of the VNF and the VNFD. The value is copied from the VNFD.
-        type: string
-      vnfProductName:
-        description: >
-          Name to identify the VNF Product. The value is copied from the VNFD.
-        type: string
-      vnfSoftwareVersion:
-        description: >
-          Software version of the VNF. The value is copied from the VNFD.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
-      vnfdVersion:
-        description: >
-          Identifies the version of the VNFD. The value is copied from the VNFD.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
-      onboardedVnfPkgInfoId:
-        description: >
-          Identifier of information held by the NFVO about the specific VNF
-          package on which the VNF is based. This identifier was allocated by the
-          NFVO. This attribute can be modified with the PATCHmethod.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      vnfConfigurableProperties:
-        description: >
-          Current values of the configurable properties of the VNF instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-      instantiationState:
-        description: >
-          The instantiation state of the VNF.
-        type: string
-        enum:
-          - NOT_INSTANTIATED
-          - INSTANTIATED
-      instantiatedVnfInfo:
-        description: >
-          Information specific to an instantiated VNF instance. This attribute
-          shall be present if the instantiateState attribute value is
-          INSTANTIATED.
-        $ref: "#/definitions/InstantiatedVnfInfo"
-
-      vnfInstanceIds:
-        description: >
-          If present, match VNF instances with an instance identifier listed
-          in this attribute.
-          The attributes "vnfInstanceIds" and "vnfInstanceNames" are
-          alternatives to reference to particular VNF Instances in a filter.
-          They should not be used both in the same filter instance, but one
-          alternative should be chosen.
-        type: array
-        items: 
-          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-   
-      vnfInstanceNames:
-        description: >
-          If present, match VNF instances with a VNF Instance Name listed in
-          this attribute.
-          The attributes "vnfInstanceIds" and "vnfInstanceNames" are
-          alternatives to reference to particular VNF Instances in a filter.
-          They should not be used both in the same filter instance, but one
-          alternative should be chosen.
-        type: array
-        items: 
-          type: string
-        
-  VnfLcmOpOcc:
-    description: >
-      This type represents a VNF lifecycle management operation occurrence.
-    type: object
-    required:
-      - id
-      - operationState
-      - stateEnteredTime
-      - startTime
-      - vnfInstanceId
-      - operation
-      - isAutomaticInvocation
-      - operationParams
-      - isCancelPending
-    properties:
-      id:
-        description: >
-          Identifier of this VNF lifecycle management operation occurrence.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      operationState:
-        description: >
-          The state of the LCM operation.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType"
-      stateEnteredTime:
-        description: >
-          Date-time when the current state was entered.
-        type: string
-        format: date-time
-      startTime:
-        description: >
-          Date-time of the start of the operation.
-        type: string
-        format: date-time
-      vnfInstanceId:
-        description: >
-          Identifier of the VNF instance to which the operation applies
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      grantId:
-        description: >
-          Identifier of the grant related to this VNF LCM operation
-          occurrence, if such grant exists.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      operation:
-        description: >
-          Type of the actual LCM operation represented by this VNF LCM
-          operation occurrence.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
-      isAutomaticInvocation:
-        description: >
-          Set to true if this VNF LCM operation occurrence has been triggered
-          by an automated procedure inside the VNFM (i.e.
-          ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
-          triggered by auto-heal). Set to false otherwise.
-        type: boolean
-      operationParams:
-        description: >
-          Input parameters of the LCM operation. This attribute shall be
-          formatted according to the request data type of the related LCM
-          operation. The following mapping between operationType and the
-          data type of this attribute shall apply:
-          * INSTANTIATE: InstantiateVnfRequest
-          * SCALE: ScaleVnfRequest
-          * SCALE_TO_LEVEL: ScaleVnfToLevelRequest
-          * CHANGE_FLAVOUR: ChangeVnfFlavourRequest
-          * OPERATE: OperateVnfRequest
-          * HEAL: HealVnfRequest
-          * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest
-          * TERMINATE: TerminateVnfRequest
-          * MODIFY_INFO: VnfInfoModifications
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
-      isCancelPending:
-        description: >
-          If the VNF LCM operation occurrence is in "STARTING", "PROCESSING"
-          or "ROLLING_BACK" state and the operation is being cancelled, this
-          attribute shall be set to true. Otherwise, it shall be set to false.
-        type: boolean
-      cancelMode:
-        description: >
-          The mode of an ongoing cancellation. Shall be present when
-          isCancelPending=true, and shall be absent otherwise.
-        $ref: "#/definitions/CancelModeType"
-      error:
-        description: >
-          If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState"
-          is "PROCESSING" or "ROLLING_BACK" and previous value of
-          "operationState" was "FAILED_TEMP", this attribute shall be present
-          and contain error information, unless it has been requested to be
-          excluded via an attribute selector.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-      resourceChanges:
-        description: >
-          This attribute contains information about the cumulative changes to
-          virtualised resources that were performed so far by the LCM
-          operation since its start, if applicable.
-        type: object
-        properties:
-          affectedVnfcs:
-            description: >
-              Information about VNFC instances that were affected during the
-              lifecycle operation.
-              This allows the NFVO to obtain the information contained in the
-              latest "result" notification if it has not received it due to an
-              error or a wrongly configured subscription filter.
-            type: array
-            items:
-              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc"
-          affectedVirtualLinks:
-            description: >
-              Information about VL instances that were affected during the
-              lifecycle operation.
-              This allows the NFVO to obtain the information contained in the
-              latest "result" notification if it has not received it due to an
-              error or a wrongly configured subscription filter.
-            type: array
-            items:
-              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink"
-          affectedVirtualStorages:
-            description: >
-              Information about virtualised storage instances that were affected
-              during the lifecycle operation.
-              This allows the NFVO to obtain the information contained in the
-              latest "result" notification if it has not received it due to an
-              error or a wrongly configured subscription filter.
-            type: array
-            items:
-              $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage"
-      changedInfo:
-        description: >
-          Information about the changed VNF instance information, including
-          VNF configurable properties, if applicable.
-          This allows the NFVO to obtain the information contained in the
-          latest "result" notification if it has not received it due to an
-          error or a wrongly configured subscription filter.
-        $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications"
-      changedExtConnectivity:
-        description: >
-          Information about changed external connectivity, if applicable.
-          This allows the NFVO to obtain the information contained in the
-          latest "result" notification if it has not received it due to an
-          error or a wrongly configured subscription filter.
-        type: array
-        items:
-          $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
-      _links:
-        description: >
-          Links to resources related to this resource.
-        type: object
-        required:
-          - self
-          - vnfInstance
-        properties:
-          self:
-            description: >
-              URI of this resource.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          vnfInstance:
-            description: >
-              Link to the VNF instance that the operation applies to.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          grant:
-            description: >
-              Link to the grant for this operation, if one exists.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          cancel:
-            description: >
-              Link to the task resource that represents the "cancel" operation
-              for this VNF LCM operation occurrence, if cancelling is
-              currently allowed.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          retry:
-            description: >
-              Link to the task resource that represents the "retry" operation
-              for this VNF LCM operation occurrence, if retrying is currently
-              allowed.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          rollback:
-            description: >
-              Link to the task resource that represents the "rollback"
-              operation for this VNF LCM operation occurrence, if rolling back
-              is currently allowed.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-          fail:
-            description: >
-              Link to the task resource that represents the "fail" operation
-              for this VNF LCM operation occurrence, if declaring as failed is
-              currently allowed.
-            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-
-  VnfLinkPort:
-    type: object
-    required:
-      - id
-      - resourceHandle
-    properties:
-      id:
-        description: >
-          Identifier of this link port as provided by the entity that has created the link port.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      resourceHandle:
-        description: >
-          Reference to the virtualised network resource realizing this link
-          port.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      cpInstanceId:
-        description: >
-          Identifier of the external CP of the VNF to be connected to this link
-          port.
-          Shall be present when the link port is used for external
-          connectivity by the VNF.
-          May be present if used to reference a VNFC CP instance.
-          There shall be at most one link port associated with any external
-          connection point instance or internal connection point (i.e. VNFC CP)
-          instance .
-          The value refers to an "extCpInfo" item in the VnfInstance or a
-          "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-
-  VnfOperationalStateType:
-    type: string
-    enum:
-      - STARTED
-      - STOPPED
-      - ERROR
-
-  VnfVirtualLinkResourceInfo:
-    description: >
-      This type represents the information that allows addressing a virtualised
-      resource that is used by an internal VL instance in a VNF instance.
-    type: object
-    required:
-      - id
-      - virtualLinkDescId
-      - networkResource
-      - vnfLinkPorts
-    properties:
-      id:
-        description: >
-          Identifier of this VnfVirtualLinkResourceInfo instance.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      virtualLinkDescId:
-        description: >
-          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-      networkResource:
-        description: >
-          Reference to the VirtualNetwork resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
-      reservationId:
-        description: >
-          The reservation identifier applicable to the resource. It shall be
-          present when an applicable reservation exists.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-      vnfLinkPorts:
-        description: >
-          Links ports of this VL.
-          Shall be present when the linkPort is used for external connectivity
-          by the VNF (refer to VnfLinkPort).
-          May be present otherwise.
-        type: array
-        items:
-          $ref: "#/definitions/VnfLinkPort"
-      metadata:
-        description: >
-          Metadata about this resource.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
diff --git a/src/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml
deleted file mode 100644
index c6359ee35202ebe4b8701767f0a2e7b76707650c..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright (c) ETSI 2017.
-# https://forge.etsi.org/etsi-forge-copyright-notice.txt
-
-responses:
-  409-another-lcm-operation-ongoing:
-    description: >
-      Conflict
-
-      The operation cannot be executed currently, due to a conflict with the
-      state of the VNF instance resource.
-      Typically, this is due to the fact that another LCM operation is
-      ongoing.
-      The response body shall contain a ProblemDetails structure, in which the
-      "detail" attribute should convey more information about the error.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-      WWW-Authenticate:
-        description: >
-          Challenge if the corresponding HTTP request has not provided
-          authorization, or error details if the corresponding HTTP
-          request has provided an invalid authorization token.
-        type: string
-        maximum: 1
-        minimum: 0
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  409-inconsistent-state:
-    description: >
-      Conflict
-
-      Another request is in progress that prohibits the fulfilment of
-      the current request, or the current resource state is inconsistent
-      with the request.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-      WWW-Authenticate:
-        description: >
-          Challenge if the corresponding HTTP request has not provided
-          authorization, or error details if the corresponding HTTP
-          request has provided an invalid authorization token.
-        type: string
-        maximum: 1
-        minimum: 0
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  409-state-conflict-INSTANTIATED:
-    description: >
-      Conflict
-
-      The operation cannot be executed currently, due to a conflict with the
-      state of the VNF instance resource.
-      Typically, this is due to the fact that the VNF instance resource is in
-      INSTANTIATED state.
-      The response body shall contain a ProblemDetails structure, in which the
-      "detail" attribute should convey more information about the error.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-      WWW-Authenticate:
-        description: >
-          Challenge if the corresponding HTTP request has not provided
-          authorization, or error details if the corresponding HTTP
-          request has provided an invalid authorization token.
-        type: string
-        maximum: 1
-        minimum: 0
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  409-state-conflict-not-FAILED_TEMP:
-    description: >
-      The operation cannot be executed currently, due to a conflict with the
-      state of the VNF instance resource.
-      Typically, this is due to the fact that the VNF instance resource is
-      not in FAILED_TEMP state, or another error handling action is starting,
-      such as rollback or fail.
-      The response body shall contain a ProblemDetails structure, in which the
-      "detail" attribute should convey more information about the error.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-      WWW-Authenticate:
-        description: >
-          Challenge if the corresponding HTTP request has not provided
-          authorization, or error details if the corresponding HTTP
-          request has provided an invalid authorization token.
-        type: string
-        maximum: 1
-        minimum: 0
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  409-state-conflict-NOT-INSTANTIATED:
-    description: >
-      Conflict
-
-      The operation cannot be executed currently, due to a conflict with the
-      state of the VNF instance resource.
-      Typically, this is due to the fact that the VNF instance resource is in
-      NOT-INSTANTIATED state, or that another lifecycle management operation
-      is ongoing.
-      The response body shall contain a ProblemDetails structure, in which the
-      "detail" attribute should convey more information about the error.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
-        type: string
-        maximum: 1
-        minimum: 1
-      WWW-Authenticate:
-        description: >
-          Challenge if the corresponding HTTP request has not provided
-          authorization, or error details if the corresponding HTTP
-          request has provided an invalid authorization token.
-        type: string
-        maximum: 1
-        minimum: 0
-    schema:
-      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml
index b6ba6db2d4688de11e70a7baf7acd9cbe62cc45c..71cd14f86d3d1280a365ef29d639169548a91e68 100644
--- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml
+++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml
@@ -1,53 +1,60 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL002 - VNF Lifecycle Management Notification interface
   description: >
     SOL002 - VNF Lifecycle Management Notification interface
-
-
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    In clause 4.3.2 of ETSI GS NFV-SOL 002 v2.4.1, an attribute-based
-    filtering mechanism is defined. This mechanism is currently not
-    included in the corresponding OpenAPI design for this GS version. Changes
-    to the attribute-based filtering mechanism are being considered in v2.5.1
-    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
-    design.
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
-basePath: "/callback/v1"
+basePath: /callback/v1
 
 schemes:
+  - http
   - https
 
 consumes:
-  - "application/json"
+  - application/json
+
 produces:
-  - "application/json"
+  - application/json
 
 paths:
   ###############################################################################
   # Notification endpoint VnfLcmOperationOccurrenceNotification                 #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfLcmOperationOccurrenceNotification':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         Notify
 
-
         The POST method delivers a notification from the server to the client.
       parameters:
         - name: VnfLcmOperationOccurrenceNotification
@@ -55,7 +62,7 @@ paths:
           in: body
           required: true
           schema:
-            $ref: "definitions/VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification"
+            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification"
         - name: Authorization
           description: >
             The authorization token for the request.
@@ -70,6 +77,56 @@ paths:
           in: header
           required: true
           type: string
+      responses:
+        204:
+          description: >
+            204 NO CONTENT
+
+            The notification was delivered successfully.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
+    get:
+      description: >
+        The GET method allows the server to test the notification endpoint
+        that is provided by the client, e.g. during subscription.
+      parameters:
+        - name: Authorization
+          description: >
+            The authorization token for the request.
+            Reference: IETF RFC 7235
+          in: header
+          required: false
+          type: string
         - name: Version
           description: >
             Version of the API requested to use when responding to this request.
@@ -79,9 +136,9 @@ paths:
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
-            The notification was delivered successfully.
+            The notification endpoint was tested successfully.
           headers:
             WWW-Authenticate:
               description: >
@@ -103,8 +160,6 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
-        404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
@@ -113,15 +168,29 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
   ###############################################################################
   # Notification endpoint VnfIdentifierCreationNotification                     #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIdentifierCreationNotification':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         Notify
 
-
         The POST method delivers a notification from the server to the client.
       parameters:
         - name: VnfIdentifierCreationNotification
@@ -146,6 +215,56 @@ paths:
           in: header
           required: true
           type: string
+      responses:
+        204:
+          description: >
+            204 NO CONTENT
+
+            The notification was delivered successfully.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
+    get:
+      description: >
+        The GET method allows the server to test the notification endpoint
+        that is provided by the client, e.g. during subscription.
+      parameters:
+        - name: Authorization
+          description: >
+            The authorization token for the request.
+            Reference: IETF RFC 7235
+          in: header
+          required: false
+          type: string
         - name: Version
           description: >
             Version of the API requested to use when responding to this request.
@@ -155,9 +274,9 @@ paths:
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
-            The notification was delivered successfully.
+            The notification endpoint was tested successfully.
           headers:
             WWW-Authenticate:
               description: >
@@ -179,8 +298,6 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
-        404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
@@ -189,15 +306,29 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
   ###############################################################################
   # Notification endpoint VnfIdentifierDeletionNotification                     #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIdentifierDeletionNotification':
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         Notify
 
-
         The POST method delivers a notification from the server to the client.
       parameters:
         - name: VnfIdentifierDeletionNotification
@@ -222,6 +353,56 @@ paths:
           in: header
           required: true
           type: string
+      responses:
+        204:
+          description: >
+            204 NO CONTENT
+
+            The notification was delivered successfully.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+        400:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
+        401:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
+        403:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
+        405:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
+        406:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        500:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
+        503:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
+    get:
+      description: >
+        The GET method allows the server to test the notification endpoint
+        that is provided by the client, e.g. during subscription.
+      parameters:
+        - name: Authorization
+          description: >
+            The authorization token for the request.
+            Reference: IETF RFC 7235
+          in: header
+          required: false
+          type: string
         - name: Version
           description: >
             Version of the API requested to use when responding to this request.
@@ -233,7 +414,7 @@ paths:
           description: >
             No Content
 
-            The notification was delivered successfully.
+            The notification endpoint was tested successfully.
           headers:
             WWW-Authenticate:
               description: >
@@ -255,8 +436,6 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
-        404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
@@ -264,5 +443,4 @@ paths:
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml
index 6781459c710aa91fa63846740ccfde1ce2a38622..c76205246cd5f58242eee0ba478e4d1b49d3a705 100644
--- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml
+++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml
@@ -1,44 +1,63 @@
 swagger: "2.0"
 
-info: 
-  version: "1.1.0"
-  title: "SOL002 - VNF Performance Management interface"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
+  title: SOL002 - VNF Perfomance Management interface
   description: >
-    DRAFT - SOL002 - VNF Performance Management interface
-
+    SOL002 - VNF Performance Management interface
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
-
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
 basePath: /vnfpm/v1
 
-schemes: 
+schemes:
   - http
   - https
 
-consumes: 
+consumes:
   - application/json
 
-produces: 
+produces:
   - application/json
 
 paths:
-###############################################################################
-# PM jobs                                                                     #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # PM jobs                                                                     #
+  ###############################################################################
   '/pm_jobs':
-    #SOL002 location: 6.4.2
+    #SOL003 location: 6.4.2
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         The POST method creates a PM job.
@@ -63,21 +82,26 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         201:
-          description: > 
+          description: >
+            201 CREATED
+
             The PM job was created successfully. The response body shall
             contain a representation of the created PM job resource.
             The HTTP response shall include a "Location" HTTP header that
             points to the created PM job resource.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             Location:
               description: The resource URI of the created PM Job
               type: string
@@ -98,14 +122,24 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     get:
       description: >
         The client can use this method to retrieve information about PM jobs.
@@ -117,13 +151,6 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
         - name: Content-Type
           description: >
             The MIME type of the body of the request.
@@ -131,13 +158,99 @@ paths:
           in: header
           required: true
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. All attribute names that appear in the PmJob
+            and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the PmJob structure in
+            the response body if this parameter is provided, or none of the parameters
+            "all_fields", "fields", "exclude_fields", "exclude_default" are provided:
+            -	reports
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response.
+            Shall be supported by the VNFM if the VNFM supports alternative 2
+            (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             Information about zero or more PM jobs was queried successfully.
-            The response body shall contain representations of zero or more PM
-            jobs.
+            The response body shall contain in an array the representations of zero or more PM jobs,
+            as defined in clause 6.5.2.7.
+            If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -146,27 +259,44 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
             items:
               $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual PM job                                                           #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual PM job                                                           #
+  ###############################################################################
   '/pm_jobs/{pmJobId}':
     #SOL002 location: 6.4.3
     parameters:
@@ -180,6 +310,19 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method for reading an individual PM job.
@@ -191,20 +334,25 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             Information about an individual PM job was queried successfully.
             The response body shall contain a representation of the PM job
             resource.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -221,31 +369,45 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     delete:
       description: >
         This method terminates an individual PM job.
-      parameters:
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         204:
-          description: > 
+          description: >
+            204 NO CONTENT
+
             The PM job was deleted successfully.
             The response body shall be empty.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -260,17 +422,28 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual performance report                                               #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual performance report                                               #
+  ###############################################################################
   '/pm_jobs/{pmJobId}/reports/{reportId}':
     #SOL002 location: 6.4.4
     parameters:
@@ -286,6 +459,19 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method for reading an individual performance
@@ -298,21 +484,26 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             Information of an individual performance report was read
             successfully.
             The response body shall contain a representation of the
             performance report resource.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -322,26 +513,51 @@ paths:
               maximum: 1
               minimum: 0
           schema:
-            $ref: "definitions/VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
+            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Thresholds                                                                  #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Thresholds                                                                  #
+  ###############################################################################
   '/thresholds':
-    #SOL002 location: 6.4.5
+    #SOL003 location: 6.4.5
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         The POST method can be used by the client to create a threshold.
@@ -360,13 +576,6 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
         - name: Content-Type
           description: >
             The MIME type of the body of the request.
@@ -376,16 +585,26 @@ paths:
           type: string
       responses:
         201:
-          description: > 
-            Created
-            
+          description: >
+            201 CREATED
+
             A threshold was created successfully. The response body shall
             contain a representation of the created threshold resource.
             The HTTP response shall include a "Location" HTTP header that
             contains the resource URI of the created threshold resource.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             Location:
-              description: The resource URI of the created VNF instance
+              description: The resource URI of the created threshold
               type: string
               format: url
             WWW-Authenticate:
@@ -404,14 +623,24 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     get:
       description: >
         The client can use this method to query information about thresholds.
@@ -423,25 +652,68 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
+        - name: filter
           description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. All attribute names that appear in the Thresholds
+            and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response.
+            Shall be supported by the VNFM if the VNFM supports alternative 2
+            (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
           type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             Information about zero or more thresholds was queried
             successfully.
-            The response body shall contain representations of zero
-            or more thresholds.
+            The response body shall contain in an array the representations of zero or more thresholds,
+            as defined in clause 6.5.2.9.
+            If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
           headers:
-            Location:
-              description: The resource URI of the created VNF instance
+            Content-Type:
+              description: The MIME type of the body of the response.
               type: string
-              format: url
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -450,30 +722,47 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual threshold                                                        #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual threshold                                                        #
+  ###############################################################################
   '/thresholds/{thresholdId}':
-    #SOL002 location: 6.4.6
-    parameters: 
+    #SOL003 location: 6.4.6
+    parameters:
       - name: thresholdId
         description: >
           Identifier of the threshold.
@@ -484,6 +773,19 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method for reading an individual threshold.
@@ -495,20 +797,25 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             Information about an individual threshold was queried
             successfully. The response body shall contain a
             representation of the threshold.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -525,14 +832,24 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     delete:
       description: >
         This method allows to delete a threshold.
@@ -544,21 +861,19 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The threshold was deleted successfully.
             The response body shall be empty.
           headers:
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -573,19 +888,44 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
-    #SOL002 location: 6.4.7
+    #SOL003 location: 6.4.7
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     post:
       description: >
         The POST method creates a new subscription.
@@ -604,13 +944,6 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
         - name: Content-Type
           description: >
             The MIME type of the body of the request.
@@ -620,13 +953,25 @@ paths:
           type: string
       responses:
         201:
-          description: > 
+          description: >
+            201 CREATED
+
             The subscription was created successfully. A representation of the
             created subscription resource shall be returned in the response
             body.
             The HTTP response shall include a "Location" HTTP header that
             contains the resource URI of the created subscription resource.
           headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             Location:
               description: The resource URI of the created VNF instance
               type: string
@@ -641,20 +986,40 @@ paths:
               minimum: 0
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
+        303:
+          description: >
+            303 SEE OTHER
+
+            A subscription with the same callbackURI and the same filter already exists and the policy of the VNFM
+            is to not create redundant subscriptions.
+            The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing
+            subscription resource.
+            The response body shall be empty.
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     get:
       description: >
         The client can use this method to query the list of active
@@ -668,24 +1033,65 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
+        - name: filter
           description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the URI query string.
+            The EM may supply this parameter. All attribute names that appear in the PmSubscription
+            and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression.
+
+            EXAMPLE
+            objects
+            obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+
+            Request 1:
+            GET …/container
+
+            Response 1:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
+                {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
+            ]
+
+            Request 2:
+            GET …/container?filter=(eq.weight,100)
+
+            Response 2:
+            [
+                {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
+            ]
+          #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response.
+            Shall be supported by the VNFM if the VNFM supports alternative 2
+            (paging) according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
           type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             The list of subscriptions was queried successfully.
-            The response body shall contain the representations of all active
-            subscriptions of the functional block that invokes the method.
+            The response body shall contain in an array the representations
+            of all active subscriptions of the functional block that invokes the method,
+            i.e. zero or more representations of PM subscriptions as defined in clause 6.5.2.3.
+            If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
+            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -697,27 +1103,44 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
+
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
     #SOL002 location: 6.4.8
     parameters:
@@ -730,6 +1153,19 @@ paths:
         in: path
         type: string
         required: true
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: true
+        type: string
+      - name: Authorization
+        description: >
+          The authorization token for the request.
+          Reference: IETF RFC 7235
+        in: header
+        required: false
+        type: string
     get:
       description: >
         The client can use this method for reading an individual subscription
@@ -742,23 +1178,21 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         200:
-          description: > 
+          description: >
+            200 OK
+
             The subscription was read successfully. The response body shall
             contain a representation of the subscription resource.
           headers:
             Content-Type:
-              description: >
-                The MIME type of the body of the request.
-                Reference: IETF RFC 7231
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
               type: string
               maximum: 1
               minimum: 1
@@ -778,14 +1212,24 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
     delete:
       description: >
         This method terminates an individual subscription.
@@ -797,19 +1241,19 @@ paths:
           in: header
           required: true
           type: string
-        - name: Authorization
-          description: >
-            The authorization token for the request.
-            Reference: IETF RFC 7235
-          in: header
-          required: true
-          type: string
       responses:
         204:
-          description: > 
+          description: >
+            204 NO CONTENT
+
             The subscription resource was deleted successfully.
             The response body shall be empty.
           headers:
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
             WWW-Authenticate:
               description: >
                 Challenge if the corresponding HTTP request has not provided
@@ -824,11 +1268,21 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
+        404:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
+        416:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
+        422:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
+        429:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
         500:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+        504:
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
\ No newline at end of file
diff --git a/src/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml b/src/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml
deleted file mode 100644
index b95437d6fcdc6e96b4e1b6897a93e475be7ab571..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) ETSI 2017.
-# https://forge.etsi.org/etsi-forge-copyright-notice.txt
-
-definitions:
-  PerformanceReport:
-    description: >
-      This type defines the format of a performance report provided by the
-      VNFM to the NFVO as a result of collecting performance information as
-      part of a PM job.
-    type: object
-    properties:
-      entries:
-        description: >
-          List of performance information entries. Each performance report
-          entry is for a given metric of a given object (i.e. VNF instance),
-          but can include multiple collected values.
-        type: array
-        items:
-          type: object
-          required: 
-            - objectType
-            - objectInstanceId
-            - performanceMetric
-            - performanceValue
-          properties: 
-            objectType:
-              description: >
-                Defines the object type for which performance information is
-                reported (i.e. VNF type). The string value shall be set to the
-                vnfdId of the VNF instance to which the performance
-                information relates.
-              type: string
-            objectInstanceId: 
-              description: >
-                The object instance for which the performance metric is
-                reported.
-                The object instances for this information element will be VNF
-                instances.
-              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-            performanceMetric:
-              description: >
-                Name of the metric collected.
-              type: string
-            performanceValue:
-              description: >
-                List of performance values with associated timestamp.
-              type: array
-              items: 
-                type: object
-                required: 
-                  - timeStamp
-                  - performanceValue
-                properties:
-                  timeStamp:
-                    description: >
-                      Time stamp indicating when the data was collected.
-                    $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
-                  performanceValue:
-                    description: >
-                      Value of the metric collected.
-                      The type of the "performanceValue" attribute 
-                      (i.e. scalar, structure (Object in JSON), or array 
-                      (of scalars, arrays or structures / Objects)) is assumed
-                      to be defined in an external measurement specification
-                      outside the scope of the present document.
-                    type: object
-
diff --git a/src/SOL002/VNFPerformanceManagement/responses/VNFPerformanceManagement_resp.yaml b/src/SOL002/VNFPerformanceManagement/responses/VNFPerformanceManagement_resp.yaml
deleted file mode 100644
index 6fe27caf27dde01f530abf86373ac7e86f8fad63..0000000000000000000000000000000000000000
--- a/src/SOL002/VNFPerformanceManagement/responses/VNFPerformanceManagement_resp.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-responses:
-
diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml
index d0893f9094ab65b322bac4c218b75c4409cad450..4746d9ff4c331566d75b7abda6df20b75ad457fe 100644
--- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml
+++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml
@@ -1,53 +1,46 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL002 - VNF Performance Management Notification interface
   description: >
     SOL002 - VNF Performance Management Notification interface
-
-
     IMPORTANT: Please note that this file might be not aligned to the current
-    version of the ETSI Group Specification it refers to. In case of
-    discrepancies the published ETSI Group Specification takes precedence.
-
-
-    In clause 4.3.2 of ETSI GS NFV-SOL 002 v2.4.1, an attribute-based
-    filtering mechanism is defined. This mechanism is currently not
-    included in the corresponding OpenAPI design for this GS version. Changes
-    to the attribute-based filtering mechanism are being considered in v2.5.1
-    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
-    design.
-
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
   license:
-    name: "ETSI Forge copyright notice"
+    name: ETSI Forge copyright notice
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: NFV-SOL WG
 
 externalDocs:
-  description: ETSI GS NFV-SOL 002 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
+  description: ETSI GS NFV-SOL 002 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
 
-basePath: "/callback/v1"
+basePath: /callback/v1
 
 schemes:
+  - http
   - https
 
 consumes:
-  - "application/json"
+  - application/json
+
 produces:
-  - "application/json"
+  - application/json
 
 paths:
   ###############################################################################
   # Notification endpoint PerformanceInformationAvailableNotification           #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_PerformanceInformationAvailableNotification':
     post:
       description: >
         Notify
 
-
         The POST method delivers a notification regarding a performance
         management event from the server to the client.
       parameters:
@@ -166,15 +159,15 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+
   ###############################################################################
   # Notification endpoint ThresholdCrossedNotification                          #
   ###############################################################################
-  '/URI-is-provided-by-the-client-when-creating-the-subscription-ThresholdCrossedNotification':
+  '/URI-is-provided-by-the-client-when-creating-the-subscription_ThresholdCrossedNotification':
     post:
       description: >
         Notify
 
-
         The POST method delivers a notification regarding a performance
         management event from the server to the client.
       parameters:
@@ -208,7 +201,7 @@ paths:
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -261,7 +254,7 @@ paths:
       responses:
         204:
           description: >
-            No Content
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
           headers:
diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e0036b3216f2a336feb0065fcb7df2f2871d0fd0
--- /dev/null
+++ b/src/SOL003/APIVersion/APIVersion.yaml
@@ -0,0 +1,50 @@
+swagger: "2.0"
+info:
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
+  title: "SOL003 - API version interface"
+  description: >
+    SOL003 - API version Interface
+    IMPORTANT: Please note that this file might be not aligned to the current
+    version of the ETSI Group Specification it refers to and has not been
+    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
+    Group Specification takes precedence.
+    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
+  license:
+    name: "ETSI Forge copyright notice"
+    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
+  contact:
+    name: "NFV-SOL WG"
+externalDocs:
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
+schemes:
+  - http
+  - https
+consumes:
+  - application/json
+produces:
+  - application/json
+paths:
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/vrqan/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnffm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnfind/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnflcm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnfpm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/grant/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  '/vnfpkgm/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
\ No newline at end of file
diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml
index e699f48e4876c61351641b11e853144e96ea6db2..3c20a60954afeeec16237ce018ac92c6da18ae65 100644
--- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml
+++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
- 
+
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Fault Management interface
   description: >
     SOL003 - VNF Fault Management interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/vnffm/v1"
 
@@ -39,11 +39,17 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Alarms                                                                      #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # Alarms                                                                      #
+  ###############################################################################
   '/alarms':
-  #SOL003 location: 7.4.2
+    #SOL003 location: 7.4.2
     get:
       description: >
         Get Alarm List
@@ -66,13 +72,43 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            The following attribute names shall be supported by the VNFM in
+            the attribute-based filtering expression: id, managedObjectId, 
+            rootCauseFaultyResource/faultyResourceType, eventType, 
+            perceivedSeverity, probableCause.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the 
+            VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 
+            for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
-            The request has succeeded.
-            The response body shall contain the list of related alarms.
+            Information about zero or more alarms was queried successfully.
+            The response body shall contain in an array the representations
+            of zero or more alarms as defined in clause 7.5.2.4.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -81,10 +117,22 @@ paths:
               type: string
               maximum: 1
               minimum: 1
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             $ref: "#/definitions/Alarm"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -97,11 +145,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual alarm                                                            #
-###############################################################################
+  ###############################################################################
+  # Individual alarm                                                            #
+  ###############################################################################
   '/alarms/{alarmId}':
-  #SOL003 location: 7.4.3
+    #SOL003 location: 7.4.3
     parameters:
       - name: alarmId
         description: >
@@ -139,10 +187,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about an individual alarm was read successfully.
             The response body shall contain a representation of the individual
@@ -207,10 +261,16 @@ paths:
           required: true
           type: string
           enum: ["application/merge-patch+json"]
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The request was accepted and completed. The response body shall
             contain attribute modifications for an ‘Individual alarm’
@@ -251,11 +311,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
-  #SOL003 location: 7.4.4
+    #SOL003 location: 7.4.4
     post:
       description: >
         Subscribe
@@ -300,10 +360,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             The subscription was created successfully. The response body shall
             contain a representation of the created subscription resource.
@@ -378,14 +444,44 @@ paths:
           in: header
           required: true
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the FmSubscription and in 
+            data types referenced from it shall be supported by the VNFM 
+            in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The list of subscriptions was queried successfully. The response
-            body shall contain the representations of all active
-            subscriptions of the functional block that invokes the method.
+            body shall contain in an array the representations of all active
+            subscriptions of the functional block that invokes the method,
+            i.e. zero or more representations of FM subscriptions as defined
+            in clause 7.5.2.3.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -402,10 +498,22 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             $ref: "#/definitions/FmSubscription"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -420,11 +528,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
-  #SOL003 location: 7.4.5
+    #SOL003 location: 7.4.5
     parameters:
       - name: subscriptionId
         description: >
@@ -465,10 +573,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The operation has completed successfully.
             The response body shall contain a representation of the
@@ -489,6 +603,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "#/definitions/FmSubscription"
         400:
@@ -509,7 +629,7 @@ paths:
       description: >
         Terminate Subscription
 
-        
+
         This method terminates an individual subscription.
       parameters:
         - name: Authorization
@@ -519,10 +639,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
             The response body shall be empty.
@@ -535,6 +661,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml
index 121347ec8637fd2babf5b5d0b64b7ca3d072330a..d3a58eb2ac4c27316ba7f87a3cf43534147725ff 100644
--- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml
+++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Fault Management Notification interface
   description: >
     SOL003 - VNF Fault Management Notification interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/callback/v1"
 
@@ -39,9 +39,9 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Notification endpoint AlarmNotification                                     #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint AlarmNotification                                     #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification':
     #SOL003 location: 7.4.6
     post:
@@ -74,10 +74,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -90,6 +96,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -116,10 +128,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -132,6 +150,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -146,9 +170,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Notification endpoint AlarmClearedNotification                              #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint AlarmClearedNotification                              #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification':
     #SOL003 location: 7.4.6
     post:
@@ -181,10 +205,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -197,6 +227,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -223,10 +259,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -239,6 +281,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -253,16 +301,16 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Notification endpoint AlarmListRebuiltNotification                          #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint AlarmListRebuiltNotification                          #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification':
     #SOL003 location: 7.4.6
     post:
       description: >
         Notify
 
-        
+
         The POST method notifies a VNF alarm or that the alarm list has been
         rebuilt.
       parameters:
@@ -288,10 +336,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -304,6 +358,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -330,10 +390,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -346,6 +412,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml
index 016eb70506d9459a4359130f2d97ba3179b8751a..1ab0d7f685adb75f2f6686c1f61335c3daddcebd 100644
--- a/src/SOL003/VNFIndicator/VNFIndicator.yaml
+++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml
@@ -1,31 +1,21 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Indicator interface
   description: >
     SOL003 - VNF Indicator interface
-
-
     IMPORTANT: Please note that this file might be not aligned to the current
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
-
-    
-    In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
-    filtering mechanism is defined. This mechanism is currently not
-    included in the corresponding OpenAPI design for this GS version. Changes
-    to the attribute-based filtering mechanism are being considered in v2.5.1
-    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
-    design.
     Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
   license:
     name: "ETSI Forge copyright notice"
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/vnfind/v1"
 
@@ -38,11 +28,17 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# VNF indicators                                                              #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # VNF indicators                                                              #
+  ###############################################################################
   '/indicators':
-  #SOL003 location: 8.4.2
+    #SOL003 location: 8.4.2
     get:
       description: >
         Get Indicator Value
@@ -64,14 +60,45 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VnfIndicator and in 
+            data types referenced from it shall be supported by the VNFM 
+            in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
-            The list of VNF indicators was queried successfully.
-            The response body shall contain the representations of all VNF
-            indicators that match the attribute filter.
+            Information about zero or more VNF indicators was queried 
+            successfully.
+            The response body shall contain in an array the representations 
+            of all VNF indicators that match the attribute filter, i.e. 
+            zero or more representations of VNF indicators as defined in 
+            clause 8.5.2.2.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -88,12 +115,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -106,11 +145,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# VNF indicators related to a VNF instance                                    #
-###############################################################################
+  ###############################################################################
+  # VNF indicators related to a VNF instance                                    #
+  ###############################################################################
   '/indicators/{vnfInstanceId}':
-  #SOL003 location: 8.4.3
+    #SOL003 location: 8.4.3
     parameters:
       - name: vnfInstanceId
         description: >
@@ -151,15 +190,45 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VnfIndicator and in 
+            data types referenced from it shall be supported by the VNFM 
+            in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
-            The list of VNF indicators was queried successfully.
-            The response body shall contain the representations of all VNF
-            indicators that are related to the particular VNF instance and
-            that match the attribute filter.
+            Information about zero or more VNF indicators was queried 
+            successfully.
+            The response body shall contain in an array the representations 
+            of all VNF indicators that are related to the particular VNF 
+            instance and that match the attribute filter, i.e. zero or more
+            representations of VNF indicators as defined in clause 8.5.2.2.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -176,12 +245,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -194,11 +275,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF indicator                                                    #
-###############################################################################
+  ###############################################################################
+  # Individual VNF indicator                                                    #
+  ###############################################################################
   '/indicators/{vnfInstanceId}/{indicatorId}':
-  #SOL003 location: 8.4.4
+    #SOL003 location: 8.4.4
     parameters:
       - name: indicatorId
         description: >
@@ -247,10 +328,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The VNF indicator was read successfully.
             The response body shall contain the representation of the VNF
@@ -271,7 +358,13 @@ paths:
               type: string
               maximum: 1
               minimum: 0
-          schema: 
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
             $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
@@ -287,9 +380,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                              #
-###############################################################################
+  ###############################################################################
+  # Subscriptions                                                              #
+  ###############################################################################
   '/subscriptions':
     post:
       description: >
@@ -335,10 +428,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             The subscription was created successfully. 
             The response body shall contain a representation of the created
@@ -365,9 +464,15 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription"
         303:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
@@ -415,15 +520,45 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VnfIndicatorSubscription
+            and in data types referenced from it shall be supported by the 
+            VNFM in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The list of subscriptions was queried successfully.
-            The response body shall contain the representations of all active
-            subscriptions of the functional block that invokes the method
-            which match the attribute filter.
+            The response body shall contain in an array the representations 
+            of all active subscriptions of the functional block that invokes 
+            the method which match the attribute filter, i.e. zero or more
+            representations of VNF indicator subscriptions as defined in 
+            clause 8.5.2.4.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -444,12 +579,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -462,11 +609,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/indicators/subscriptions/{subscriptionId}':
-  #SOL003 location: 8.4.6
+    #SOL003 location: 8.4.6
     parameters:
       - name: subscriptionId
         description: >
@@ -506,10 +653,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The operation has completed successfully.
             The response body shall contain a representation of the
@@ -530,7 +683,13 @@ paths:
               type: string
               maximum: 1
               minimum: 0
-          schema: 
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+          schema:
             $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
@@ -550,7 +709,7 @@ paths:
       description: >
         Terminate Subscription
 
-        
+
         The DELETE method terminates an individual subscription.
       parameters:
         - name: Authorization
@@ -567,10 +726,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
             The response body shall be empty.
@@ -583,6 +748,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml
index fca89598eb576dc661457d4627da6a3fb79f850b..31cc80514cc342747a2b550890772cde4d6433b9 100644
--- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml
+++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Indicator Notification interface
   description: >
     SOL003 - VNF Indicator Notification interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/callback/v1"
 
@@ -39,16 +39,16 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Notification endpoint VnfIndicatorValueChangeNotification                   #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfIndicatorValueChangeNotification                   #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIndicatorValueChangeNotification':
     #SOL003 location: 8.4.7
     post:
       description: >
         Notify
 
-        
+
         The POST method notifies a VNF alarm or that the alarm list has been
         rebuilt.
       parameters:
@@ -66,10 +66,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
             The response body shall be empty.
@@ -82,6 +88,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -108,10 +120,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -124,6 +142,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml
index 2028736ab3b045338893e311fc834563557f935b..9655467b2e7b968aae25d57b6e306f9c0896ddc4 100644
--- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml
+++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Lifecycle Management interface
   description: >
     SOL003 - VNF Lifecycle Management interface definition
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/vnflcm/v1"
 
@@ -39,9 +39,15 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# VNF instances                                                               #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # VNF instances                                                               #
+  ###############################################################################
   '/vnf_instances':
     #SOL003 location: 5.4.2
     post:
@@ -79,6 +85,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
           description: A VNF Instance identifier was created successfully
@@ -100,6 +112,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
         400:
@@ -145,14 +163,80 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VnfInstance and in data 
+            types referenced from it shall be supported by the VNFM in the 
+            filter expression.
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the VnfInstance structure
+            in the response body if this parameter is provided, or none of the parameters
+            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
+            -	vnfConfigurableProperties
+            - vimConnectionInfo
+            -	instantiatedVnfInfo
+            -	metadata
+            -	extensions
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the 
+            VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 
+            for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
+          description: >
             OK
 
             Information about zero or more VNF instances was queried
-            successfully. The response body shall contain
-            representations of zero or more VNF instances.
+            successfully. The response body shall contain in an array
+            the representations of zero or more VNF instances, as defined
+            in clause 5.5.2.2.
+            If the VNFM supports alternative 2 (paging) according to 
+            clause 4.7.2.1 for this resource, inclusion of the Link 
+            HTTP header in this response shall follow the provisions 
+            in clause 4.7.2.3.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -167,12 +251,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
             items:
               $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -191,9 +287,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF instance                                                     #
-###############################################################################
+  ###############################################################################
+  # Individual VNF instance                                                     #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}':
     #SOL003 location: 5.4.3.2
     parameters:
@@ -236,9 +332,15 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
+          description: >
             OK
 
             Information about zero or more VNF instances was queried
@@ -258,6 +360,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
         400:
@@ -294,7 +402,7 @@ paths:
         resource
       parameters:
         - name: VnfInfoModificationRequest
-          description: > 
+          description: >
             Input parameters for VNF info modification.
           required: true
           in: body
@@ -315,11 +423,17 @@ paths:
           required: true
           type: string
           enum: ["application/merge-patch+json"]
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location-empty"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -353,9 +467,15 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
+          description: >
             No Content
 
             The VNF instance resource and the associated VNF identifier were
@@ -370,8 +490,14 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -390,9 +516,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Instantiate VNF task                                                        #
-###############################################################################
+  ###############################################################################
+  # Instantiate VNF task                                                        #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/instantiate':
     #SOL003 location: 5.4.4.2
     parameters:
@@ -406,7 +532,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       #SOL003 location: 5.4.4.3.1
       description: >
         Instantiate VNF
@@ -441,9 +567,15 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
-          description: > 
+          description: >
             Accepted
 
             The request was accepted for processing, but the  processing has
@@ -465,6 +597,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -485,9 +623,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Scale VNF task                                                              #
-###############################################################################
+  ###############################################################################
+  # Scale VNF task                                                              #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/scale':
     #SOL003 location: 5.4.5.2
     parameters:
@@ -501,7 +639,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       #SOL003 location: 5.4.5.3.1
       description: >
         Scale VNF
@@ -537,6 +675,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -547,7 +691,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -558,9 +702,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Scale VNF to Level task                                                     #
-###############################################################################
+  ###############################################################################
+  # Scale VNF to Level task                                                     #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/scale_to_level':
     #SOL003 location: 5.4.6.2
     parameters:
@@ -574,12 +718,12 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       #SOL003 location: 5.4.6.3.1
       description: >
         Scale VNF to Level
 
-        
+
         The POST method requests to scale a VNF instance resource to a target
         level.
       parameters:
@@ -610,6 +754,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -620,7 +770,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -631,9 +781,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Change VNF Flavour task                                                     #
-###############################################################################
+  ###############################################################################
+  # Change VNF Flavour task                                                     #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/change_flavour':
     #SOL003 location: 5.4.7.2
     parameters:
@@ -648,7 +798,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       description: >
         Change VNF Flavour
 
@@ -682,6 +832,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -692,7 +848,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -703,9 +859,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Terminate VNF task                                                         #
-###############################################################################
+  ###############################################################################
+  # Terminate VNF task                                                         #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/terminate':
     #SOL003 location: 5.4.8.2
     parameters:
@@ -719,7 +875,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       description: >
         Terminate VNF
 
@@ -753,6 +909,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -774,9 +936,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Heal VNF task                                                               #
-###############################################################################
+  ###############################################################################
+  # Heal VNF task                                                               #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/heal':
     #SOL003 location: 5.4.9.2
     parameters:
@@ -790,7 +952,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       description: >
         Heal VNF
 
@@ -824,6 +986,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -834,7 +1002,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -845,9 +1013,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Operate VNF task                                                            #
-###############################################################################
+  ###############################################################################
+  # Operate VNF task                                                            #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/operate':
     #SOL003 location: 5.4.9.2
     parameters:
@@ -861,7 +1029,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       description: >
         Operate VNF
 
@@ -895,6 +1063,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -905,7 +1079,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -916,9 +1090,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Change external VNF connectivity task                                       #
-###############################################################################
+  ###############################################################################
+  # Change external VNF connectivity task                                       #
+  ###############################################################################
   '/vnf_instances/{vnfInstanceId}/change_ext_conn':
     #SOL003 location: 5.4.9.2
     parameters:
@@ -933,7 +1107,7 @@ paths:
         in: path
         type: string
         required: true
-    post: 
+    post:
       description: >
         Change External VNF Connectivity
 
@@ -941,7 +1115,7 @@ paths:
         The POST method changes the external connectivity of a VNF instance.
       parameters:
         - name: ChangeExtVnfConnectivityRequest
-          description: > 
+          description: >
             Parameters for the Change external VNF connectivity operation.
           in: body
           required: true
@@ -968,6 +1142,12 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202-with-Location"
@@ -989,12 +1169,12 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# VNF LCM operation occurrences                                               #
-###############################################################################
+  ###############################################################################
+  # VNF LCM operation occurrences                                               #
+  ###############################################################################
   '/vnf_lcm_op_occs':
     #SOL003 location: 5.4.12
-    get: 
+    get:
       description: >
         Get Operation Status
 
@@ -1016,15 +1196,80 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VnfLcmOpOcc and in data 
+            types referenced from it shall be supported by the VNFM in the 
+            filter expression.
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the VnfLcmOpOcc structure
+            in the response body if this parameter is provided, or none of the parameters
+            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
+            -	vnfConfigurableProperties
+            - vimConnectionInfo
+            -	instantiatedVnfInfo
+            -	metadata
+            -	extensions
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the 
+            VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 
+            for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
           description: >
-            OK
+            200 OK
 
             Status information for zero or more VNF lifecycle management
             operation occurrences was queried successfully. The response body
-            shall contain status information about zero or more VNF lifecycle
-            operation occurrences.
+            shall contain in an array the status information about zero or 
+            more VNF lifecycle operation occurrences.
+            If the VNFM supports alternative 2 (paging) according to 
+            clause 4.7.2.1 for this resource, inclusion of the Link 
+            HTTP header in this response shall follow the provisions 
+            in clause 4.7.2.3.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -1039,6 +1284,18 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
         400:
@@ -1059,9 +1316,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF LCM operation occurrence                                     #
-###############################################################################
+  ###############################################################################
+  # Individual VNF LCM operation occurrence                                     #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}':
     #SOL003 location: 5.4.13
     parameters:
@@ -1076,7 +1333,7 @@ paths:
         in: path
         required: true
         type: string
-    get: 
+    get:
       description: >
         Get Operation Status
 
@@ -1099,10 +1356,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
           description: >
-            OK
+            200 OK
 
             Information about an individual VNF instance was queried
             successfully. The response body shall contain status
@@ -1122,6 +1385,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
         400:
@@ -1142,9 +1411,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Retry operation task                                                        #
-###############################################################################
+  ###############################################################################
+  # Retry operation task                                                        #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry':
     #SOL003 location: 5.4.14
     parameters:
@@ -1159,7 +1428,7 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+    post:
       description: >
         The POST method initiates retrying a VNF lifecycle operation if that
         operation has experienced a temporary failure, i.e. the related
@@ -1172,9 +1441,33 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but processing has not been completed.
+            The response shall have an empty payload body.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1182,7 +1475,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -1193,9 +1486,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Rollback operation task                                                     #
-###############################################################################
+  ###############################################################################
+  # Rollback operation task                                                     #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback':
     #SOL003 location: 5.4.15  
     parameters:
@@ -1210,7 +1503,7 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+    post:
       description: >
         The POST method initiates rolling back a VNF lifecycle operation if
         that operation has experienced a temporary failure, i.e. the related
@@ -1223,9 +1516,33 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but processing has not been completed.
+            The response shall have an empty payload body.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1233,7 +1550,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -1244,9 +1561,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Fail operation task                                                         #
-###############################################################################
+  ###############################################################################
+  # Fail operation task                                                         #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail':
     #SOL003 location: 5.4.16  
     parameters:
@@ -1261,7 +1578,7 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+    post:
       description: >
         The POST method marks a VNF lifecycle management operation occurrence
         as "finally failed" if that operation occurrence is in "FAILED_TEMP"
@@ -1281,10 +1598,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The state of the VNF lifecycle management operation occurrence was
             changed successfully. The response shall include a representation
@@ -1303,6 +1626,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
         400:
@@ -1312,7 +1641,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -1323,9 +1652,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Cancel operation task                                                       #
-###############################################################################
+  ###############################################################################
+  # Cancel operation task                                                       #
+  ###############################################################################
   '/vnf_lcm_op_occs/{vnfLcmOpOccId}/cancel':
     #SOL003 location: 5.4.17
     parameters:
@@ -1340,7 +1669,7 @@ paths:
         in: path
         required: true
         type: string
-    post: 
+    post:
       description: >
         The POST method initiates cancelling an ongoing VNF lifecycle
         operation while it is being executed or rolled back, i.e. the related
@@ -1354,9 +1683,33 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         202:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
+          description: >
+            202 ACCEPTED
+
+            The request was accepted for processing, but processing has not been completed.
+            The response shall have an empty payload body.
+          headers:
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1364,13 +1717,13 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
         409:
-          description: > 
+          description: >
             Conflict
 
             The operation cannot be executed currently, due to a conflict with
@@ -1400,12 +1753,12 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
     #SOL003 location: 5.4.18
-    post: 
+    post:
       description: >
         Subscribe
 
@@ -1423,7 +1776,7 @@ paths:
         resource with the same filter and callbackUri).
       parameters:
         - name: LccnSubscriptionRequest
-          description: > 
+          description: >
             Details of the subscription to be created.
           in: body
           required: true
@@ -1450,10 +1803,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             The subscription was created successfully. The response body shall
             contain a representation of the created subscription resource.
@@ -1477,10 +1836,16 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
         303:
-          description: > 
+          description: >
             See Other
 
             A subscription with the same callbackURI and the same filter already
@@ -1502,6 +1867,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1509,7 +1880,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -1518,7 +1889,7 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-    get: 
+    get:
       description: >
         Query Subscription Information
 
@@ -1541,14 +1912,45 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the LccnSubscription and in 
+            data types referenced from it shall be supported by the VNFM 
+            in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The list of subscriptions was queried successfully. The response
-            body shall contain the representations of all active subscriptions
-            of the functional block that invokes the method.
+            body shall contain the in an array representations of all active 
+            subscriptions of the functional block that invokes the method, 
+            i.e. zero or more representations of lifecycle change notification
+            subscriptions as defined in clause 5.5.2.16.
+            If the VNFM supports alternative 2 (paging) according to 
+            clause 4.7.2.1 for this resource, inclusion of the Link 
+            HTTP header in this response shall follow the provisions 
+            in clause 4.7.2.3.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -1563,10 +1965,22 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
         400:
-          description: > 
+          description: >
             Bad Request
 
             Invalid attribute-based filtering parameters.
@@ -1594,7 +2008,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -1603,9 +2017,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
     #SOL003 location: 5.4.19
     parameters:
@@ -1641,10 +2055,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The operation has completed successfully.
             The response body shall contain a representation of the
@@ -1663,6 +2083,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
         400:
@@ -1672,7 +2098,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
@@ -1685,7 +2111,7 @@ paths:
       description: >
         Terminate Subscription
 
-        
+
         The DELETE method terminates an individual subscription.
       parameters:
         - name: Authorization
@@ -1695,10 +2121,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
             The response body shall be empty.
@@ -1711,6 +2143,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -1718,7 +2156,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         406:
diff --git a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml
index 54710f2ad9a6d2f9708b301d932af0f5aef9db07..5e4c12745409a566578171d60416d146c74c1616 100644
--- a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml
+++ b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml
@@ -7,14 +7,14 @@ definitions:
       This type represents a parameter to select the mode of cancelling an
       ongoing VNF LCM operation occurrence.
     type: object
-    required: 
+    required:
       - cancelMode
     properties:
       cancelMode:
         description: >
           Cancellation mode to apply.
         $ref: "#/definitions/CancelModeType"
-    
+
   CancelModeType:
     description: >
       Cancellation mode.
@@ -232,7 +232,7 @@ definitions:
           the “changeStateTo” attribute is equal to “STOPPED” and the
           “stopType” attribute is absent.
         $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/StopType"
-      gracefulStopTimeout: 
+      gracefulStopTimeout:
         description: >
           The time interval (in seconds) to wait for the VNF to be taken out
           of service during graceful stop, before stopping the VNF.
@@ -261,7 +261,7 @@ definitions:
     type: object
     properties:
       instantiationLevelId:
-        description: > 
+        description: >
           Identifier of the target instantiation level of the current
           deployment flavour to which the VNF is requested to be scaled.
           Either the instantiationLevelId attribute or the scaleInfo attribute
@@ -295,7 +295,7 @@ definitions:
     enum:
       - FORCEFUL
       - GRACEFUL
-            
+
   TerminateVnfRequest:
     type: object
     required:
@@ -347,7 +347,6 @@ definitions:
       - vnfInstanceId
       - operation
       - isAutomaticInvocation
-      - operationParams
       - isCancelPending
     properties:
       id:
@@ -404,6 +403,10 @@ definitions:
           * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest
           * TERMINATE: TerminateVnfRequest
           * MODIFY_INFO: VnfInfoModificationRequest
+          This attribute shall be present if this data type is returned in 
+          a response to reading an individual resource, and may be present 
+          according to the chosen attribute selector parameter if this data 
+          type is returned in a response to a query of a container resource.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
       isCancelPending:
         description: >
diff --git a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml
index 3b28b22fba90a732a25312151ce1a15da2d91df7..9b5cfdfa7ca4706ed9d863143f35dc33133e12b5 100644
--- a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml
+++ b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml
@@ -2,8 +2,37 @@
 # https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 responses:
+  202-with-Location:
+    description: >
+      Accepted
+
+      The request was accepted for processing, but the processing has not
+      been completed. On success, the HTTP response shall include a
+      "Location" HTTP header that contains the URI of the newly-created
+      "VNF LCM operation occurrence" resource corresponding to the
+      operation.
+    headers:
+      Content-Type:
+        description: The MIME type of the body of the response.
+        type: string
+        maximum: 1
+        minimum: 1
+      Location:
+        description: The resource URI of the created VNF instance
+        type: string
+        format: url
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+    schema:
+      $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
   202-with-Location-empty:
-    description: > 
+    description: >
       Accepted
 
       The request was accepted for processing, but the processing has not
diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml
index a70656face45e93261816aa0d074aeeb9a36e4de..389f2b3b7f057bd32aec520dbfc9d717c642c08e 100644
--- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml
+++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Lifecycle Management Notification interface
   description: >
     SOL003 - VNF Lifecycle Management Notification interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/callback/v1"
 
@@ -39,9 +39,9 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Notification endpoint VnfLcmOperationOccurrenceNotification                      #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfLcmOperationOccurrenceNotification                      #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification':
     post:
       description: >
@@ -70,10 +70,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -85,6 +91,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -92,7 +104,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
@@ -101,9 +113,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Notification endpoint VnfIdentifierCreationNotification                     #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfIdentifierCreationNotification                     #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification':
     post:
       description: >
@@ -134,10 +146,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -149,6 +167,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -156,7 +180,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
@@ -165,15 +189,15 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Notification endpoint VnfIdentifierDeletionNotification                     #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfIdentifierDeletionNotification                     #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification':
     post:
       description: >
         Notify
 
-        
+
         The POST method delivers a notification from the server to the client.
       parameters:
         - name: VnfIdentifierDeletionNotification
@@ -198,10 +222,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -213,6 +243,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -220,7 +256,7 @@ paths:
         403:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
         404:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
         405:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
         406:
diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml
index c056eb588ed32dde8b9f4e45311484c9ed220d33..8b148c660ab63c300cad9bd594d6146e7d323ae5 100644
--- a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml
+++ b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml
@@ -78,7 +78,7 @@ definitions:
           * RESULT: Informs about the final or intermediate result of the VNF
             LCM operation occurrence.
         type: string
-        enum: 
+        enum:
           - START
           - RESULT
       operationState:
diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml
index 64730e6667f97ffd8645f2cab5f31615ef27fb68..5049c172355fdf73e50baaa25c6df06b57da5c8a 100644
--- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml
+++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Lifecycle Operation Granting interface
   description: >
     SOL003 - VNF Lifecycle Operation Granting interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/grant/v1"
 
@@ -39,11 +39,17 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Resource: Grants                                                            #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # Resource: Grants                                                            #
+  ###############################################################################
   '/grants':
-  #SOL003 location: 9.4.2
+    #SOL003 location: 9.4.2
     post:
       description: >
         Grant Lifecycle Operation
@@ -78,10 +84,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
           description: >
-            Created
+            201 CREATED
 
             The grant was created successfully (synchronous mode).
             A representation of the created "Individual grant" resource shall
@@ -106,11 +118,17 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
         202:
           description: >
-            Accepted
+            202 ACCEPTED
 
             The request was accepted for processing, but the processing has
             not been completed. It is expected to take some time to create
@@ -174,11 +192,11 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Resource: Individual grant                                                  #
-###############################################################################
+  ###############################################################################
+  # Resource: Individual grant                                                  #
+  ###############################################################################
   '/grants/{grantId}':
-  #SOL003 location: 9.4.3
+    #SOL003 location: 9.4.3
     parameters:
       - name: grantId
         description: >
@@ -194,7 +212,7 @@ paths:
       description: >
         Grant Lifecycle Operation
 
-        
+
         The GET method retrieves information about a specific grant by reading
         an individual grant resource.
       parameters:
@@ -212,10 +230,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
           description: >
-            OK
+            200 OK
 
             The grant was read successfully.
             A representation of the "individual grant" resource shall be
@@ -234,11 +258,17 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
         202:
           description: >
-            Accepted
+            202 ACCEPTED
 
             The process of creating the grant is ongoing, no grant is
             available yet.
diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml
index 035719e32672845f0df3527130de36b0c8c04503..e7a33626fd5092dbfedd65401ef414c1303dafb5 100644
--- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml
+++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml
@@ -1,6 +1,6 @@
 definitions:
   ConstraintResourceRef:
-    description: > 
+    description: >
       This type references a resource either by its VIM-level identifier for
       existing resources, or by the identifier of a "ResourceDefinition"
       structure in the "GrantRequest" structure for new resources.
@@ -10,7 +10,7 @@ definitions:
       - resourceId
     properties:
       idType:
-        description: > 
+        description: >
           The type of the identifier.
           Permitted values:
           * RES_MGMT: Resource-management-level identifier; this identifier is
@@ -19,17 +19,17 @@ definitions:
           * GRANT: Reference to the identifier of a "ResourceDefinition"
           structure in the "GrantRequest" structure.
         type: string
-        enum: 
+        enum:
           - RES_MGMT
           - GRANT
       resourceId:
-        description: > 
+        description: >
           An actual resource-management-level identifier (idType=RES_MGMT),
           or an identifier that references a "ResourceDefinition" structure in
           the related "GrantRequest" structure (idType=GRANT).
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
       vimConnectionId:
-        description: > 
+        description: >
           Identifier of the VIM connection for managing the resource. It shall
           only be present when idType = RES_MGMT.
           The applicable "VimConnectionInfo" structure, which is referenced by
@@ -39,7 +39,7 @@ definitions:
           management in direct mode is applicable.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       resourceProviderId:
-        description: > 
+        description: >
           Identifier of the resource provider. It shall only be present when
           idType = RES_MGMT.
           This attribute shall only be supported when VNF-related resource
@@ -48,30 +48,30 @@ definitions:
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
 
   Grant:
-    description: > 
+    description: >
       This type represents a grant.
     type: object
-    required: 
+    required:
       - id
       - vnfInstanceId
       - vnfLcmOpOccId
       - _links
-    properties: 
+    properties:
       id:
-        description: > 
+        description: >
           Identifier of the grant.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       vnfInstanceId:
-        description: > 
+        description: >
           Identifier of the related VNF instance.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       vnfLcmOpOccId:
-        description: > 
+        description: >
           Identifier of the related VNF lifecycle management operation
           occurrence.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       vimConnections:
-        description: > 
+        description: >
           Provides information regarding VIM connections that are approved to
           be used by the VNFM to allocate resources, and provides parameters
           of these VIM connections.
@@ -98,7 +98,7 @@ definitions:
           Identifies resource zones where the resources are approved to be
           allocated by the VNFM.
         type: array
-        items: 
+        items:
           $ref: "#/definitions/ZoneInfo"
       zoneGroups:
         description: >
@@ -109,7 +109,7 @@ definitions:
           constraints that were passed as part of "placementConstraints" in the
           GrantRequest.
         type: array
-        items: 
+        items:
           $ref: "#/definitions/ZoneGroupInfo"
       computeReservationId:
         description: >
@@ -184,14 +184,14 @@ definitions:
               Mappings between virtual compute descriptors defined in the VNFD
               and compute resource flavours managed in the VIM.
             type: array
-            items: 
+            items:
               $ref: "#/definitions/VimComputeResourceFlavour"
           softwareImages:
             description: >
               Mappings between software images defined in the VNFD and
               software images managed in the VIM.
             type: array
-            items: 
+            items:
               $ref: "#/definitions/VimSoftwareImage"
       extVirtualLinks:
         description: >
@@ -204,7 +204,7 @@ definitions:
           lifecycle management request, if the lifecycle management request
           has originated from the NFVO itself.
         type: array
-        items: 
+        items:
           $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
       extManagedVirtualLinks:
         description: >
@@ -236,11 +236,11 @@ definitions:
         description: >
           Links to resources related to this resource.
         type: object
-        required: 
+        required:
           - self
           - vnfLcmOpOcc
           - vnfInstance
-        properties: 
+        properties:
           self:
             description: >
               URI of this resource.
@@ -255,10 +255,10 @@ definitions:
             $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
 
   GrantRequest:
-    description: > 
+    description: >
       This type represents a grant request.
     type: object
-    required:  
+    required:
       - vnfInstanceId
       - vnfLcmOpOccId
       - vnfdId
@@ -296,7 +296,7 @@ definitions:
           The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier,
           QueryVnf and ModifyVnfInformation can be executed by the VNFM
           without requesting granting.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/GrantedLcmOperationType"
       isAutomaticInvocation:
         description: >
           Set to true if this VNF LCM operation occurrence has been triggered
@@ -406,27 +406,27 @@ definitions:
             $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
 
   GrantInfo:
-    description: > 
+    description: >
       This type contains information about a Compute, storage or network
       resource whose addition/update/deletion was granted.
     type: object
-    required: 
+    required:
       - resourceDefinitionId
-    properties: 
+    properties:
       resourceDefinitionId:
-        description: > 
+        description: >
           Identifier of the related "ResourceDefinition" structure from the
           related "GrantRequest" structure.
         $ref: "#/definitions/IdentifierLocal"
       reservationId:
-        description: > 
+        description: >
           The reservation identifier applicable to the
           VNFC/VirtualLink/VirtualStorage. It shall be present for new
           resources when policy is GRANT_RESERVE_MULTI and an applicable
           reservation exists; shall not be present otherwise.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       vimConnectionId:
-        description: > 
+        description: >
           Identifier of the VIM connection to be used to manage this resource.
           Shall be present for new resources, and shall be absent for
           resources that have already been allocated.
@@ -437,7 +437,7 @@ definitions:
           Management in direct mode is applicable.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       resourceProviderId:
-        description: > 
+        description: >
           Identifies the entity responsible for the management of the
           virtualised resource. Shall be present for new resources, and shall
           be absent for resources that have already been allocated.
@@ -446,7 +446,7 @@ definitions:
           is outside the scope of the present document.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       zoneId:
-        description: > 
+        description: >
           Reference to the identifier of the "ZoneInfo" structure in the
           "Grant" structure defining the resource zone into which this
           resource is to be placed. Shall be present for new resources if the
@@ -454,7 +454,7 @@ definitions:
           and shall be absent for resources that have already been allocated.
         $ref: "#/definitions/IdentifierLocal"
       resourceGroupId:
-        description: > 
+        description: >
           Identifier of the "infrastructure resource group", logical grouping
           of virtual resources assigned to a tenant within an Infrastructure
           Domain, to be provided when allocating the resource.
@@ -526,6 +526,7 @@ definitions:
         description: >
           References to resources in the constraint rule.
         type: array
+        minItems: 2
         items:
           $ref: "#/definitions/ConstraintResourceRef"
 
@@ -534,7 +535,7 @@ definitions:
       This type provides information of an existing or proposed resource used
       by the VNF.
     type: object
-    required: 
+    required:
       - id
       - type
     properties:
@@ -588,10 +589,10 @@ definitions:
       the VNFD and the corresponding compute resource flavour managed by the
       NFVO in the VIM.
     type: object
-    required: 
+    required:
       - vnfdVirtualComputeDescId
       - vimFlavourId
-    properties: 
+    properties:
       vimConnectionId:
         description: >
           Identifier of the VIM connection to access the flavour referenced in
@@ -627,10 +628,10 @@ definitions:
       VNFD and the corresponding software image managed by the NFVO in the
       VIM which is needed during compute resource instantiation.
     type: object
-    required: 
+    required:
       - vnfdSoftwareImageId
       - vimSoftwareImageId
-    properties: 
+    properties:
       vimConnectionId:
         description: >
           Identifier of the VIM connection to access the software image
@@ -685,7 +686,8 @@ definitions:
           are part of the same infrastructure resource group in that VIM
           connection.
         type: array
-        items: 
+        minItems: 2
+        items:
           $ref: "#/definitions/ConstraintResourceRef"
 
   ZoneGroupInfo:
@@ -699,7 +701,7 @@ definitions:
       resource zone into another, in case a particular deployment supports
       only non-elastic resource zones.
     type: object
-    required: 
+    required:
       - zoneId
     properties:
       zoneId:
@@ -708,14 +710,14 @@ definitions:
           provides information about a resource zone that belongs to this
           group.
         type: array
-        items: 
+        items:
           $ref: "#/definitions/IdentifierLocal"
 
   ZoneInfo:
     description: >
       This type provides information regarding a resource zone.
     type: object
-    required: 
+    required:
       - id
       - zoneId
     properties:
diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml
index 3ede7efb7e44633bf7078c4d9d55177b67fb956c..5ebe39906d76f7081a85d7d76429efb5354852a6 100644
--- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml
+++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Package Management interface
   description: >
     SOL003 - VNF Package Management interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/vnfpkgm/v1"
 
@@ -39,9 +39,15 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# VNF packages                                                                #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # VNF packages                                                                #
+  ###############################################################################
   '/vnf_packages':
     #SOL003 location: 10.4.2
     get:
@@ -66,12 +72,77 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VnfPkgInfo and in data 
+            types referenced from it shall be supported by the VNFM in the 
+            filter expression.
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the VnfPkgInfo structure
+            in the response body if this parameter is provided, or none of the parameters
+            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
+            -	softwareImages
+            -	additionalArtifacts
+            -	userDefinedData.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the 
+            VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 
+            for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
-            Information of the selected VNF packages.
+            Information about zero or more VNF packages was queried successfully.
+            The response body shall contain in an array the VNF package info 
+            representations that match the attribute filter, i.e. zero or more
+            VNF package representations as defined in clause 10.5.2.2.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -86,12 +157,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
             items:
               $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -108,9 +191,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF package                                           #
-###############################################################################
+  ###############################################################################
+  # Individual VNF package                                           #
+  ###############################################################################
   '/vnf_packages/{vnfPkgId}':
     parameters:
       - name: vnfPkgId
@@ -144,10 +227,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information of the selected VNF packages.
           headers:
@@ -164,6 +253,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
         400:
@@ -184,9 +279,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# VNFD in an individual VNF package                                           #
-###############################################################################
+  ###############################################################################
+  # VNFD in an individual VNF package                                           #
+  ###############################################################################
   '/vnf_packages/{vnfPkgId}/vnfd':
     parameters:
       - name: vnfPkgId
@@ -247,10 +342,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             On success, the content of the VNFD is returned.
             The payload body shall contain a copy of the file representing the
@@ -276,6 +377,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -296,14 +403,14 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# VNF package content                                                         #
-###############################################################################
+  ###############################################################################
+  # VNF package content                                                         #
+  ###############################################################################
   '/vnf_packages/{vnfPkgId}/package_content':
     parameters:
       - name: vnfPkgId
         description: >
-          Identifier of the on-boarded VNF package. The identifier is
+          Identifier of the VNF package. The identifier is
           allocated by the NFVO.
           This identifier can be retrieved from the "vnfPkgId"
           attribute in the VnfPackageOnboardingNotification or
@@ -344,10 +451,16 @@ paths:
             whole file with a 200 OK response instead.
           in: header
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             On success, a copy of the VNF package file is returned.
             The response body shall include a copy of the VNF package file.
@@ -368,9 +481,15 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         206:
-          description: > 
-            Partial Content
+          description: >
+            206 PARTIAL CONTENT
 
             On success, if the NFVO supports range requests, a single
             consecutive byte range from the content of the VNF package file is
@@ -399,6 +518,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -419,14 +544,16 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual VNF package artifact                                             #
-###############################################################################
+  ###############################################################################
+  # Individual VNF package artifact                                             #
+  ###############################################################################
   '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
     parameters:
       - name: artifactPath
         description: >
-          Path of the artifact within the VNF package.
+          Sequence of one or more path segments representing the path of 
+          the artifact within the VNF package.
+          EXAMPLE: foo/bar/run.sh
           This identifier can be retrieved from the "artifactPath" attribute
           of the applicable "additionalArtifacts" entry in the body of the
           response to a GET request querying the "Individual VNF package" or
@@ -436,7 +563,7 @@ paths:
         required: true
       - name: vnfPkgId
         description: >
-          Identifier of the on-boarded VNF package. The identifier is
+          Identifier of the VNF package. The identifier is
           allocated by the NFVO.
           This identifier can be retrieved from the "vnfPkgId"
           attribute in the VnfPackageOnboardingNotification or
@@ -474,10 +601,16 @@ paths:
             whole file with a 200 OK response instead.
           in: header
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             On success, the content of the artifact is returned.
             The payload body shall contain a copy of the artifact file from
@@ -505,9 +638,15 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         206:
-          description: > 
-            Partial Content
+          description: >
+            206 PARTIAL CONTENT
 
             On success, if the NFVO supports range requests, a single
             consecutive byte range from the content of the VNF package file is
@@ -536,6 +675,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -556,9 +701,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
     post:
       description: >
@@ -607,10 +752,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             Representation of the created subscription resource.
             The HTTP response shall include a "Location" HTTP header that
@@ -633,6 +784,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             type: array
             items:
@@ -680,13 +837,44 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the PkgmSubscription and in 
+            data types referenced from it shall be supported by the VNFM in 
+            the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
-            Active subscriptions of the functional block that invokes the
-            method.
+            The list of subscriptions was queried successfully.
+            The representations body shall contain in an array the representations
+            of all active subscriptions of the functional block that invokes the
+            method , i.e. zero or more representations of VNF package Management
+            subscriptions as defined in clause 10.5.2.4.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
           headers:
             Content-Type:
               description: The MIME type of the body of the response.
@@ -701,12 +889,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
             items:
               $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -723,9 +923,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
     #SOL003 location: 10.4.8
     parameters:
@@ -760,10 +960,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Representation of the subscription resource.
           headers:
@@ -780,6 +986,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
         400:
@@ -804,7 +1016,7 @@ paths:
       description: >
         Terminate subscription
 
-        
+
         The DELETE method terminates an individual subscription.
       parameters:
         - name: Authorization
@@ -814,10 +1026,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
           headers:
@@ -829,6 +1047,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml
index 6caf46470f7c7c0ccd569869a9563921240a1001..12a536c5c38f905a3a4aa8d2043eeedf0231a4e9 100644
--- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml
+++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml
@@ -9,7 +9,7 @@ definitions:
     required:
       - algorithm
       - hash
-    properties: 
+    properties:
       algorithm:
         description: >
           Name of the algorithm used to generate the checksum, as defined in
@@ -29,7 +29,7 @@ definitions:
       - operationalState
       - usageState
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of the on-boarded VNF package. This identifier is
@@ -97,7 +97,7 @@ definitions:
       onboardingState:
         description: >
           On-boarding state of the VNF package.
-        $ref: "#/definitions/PackageOnboardingStateType"  
+        $ref: "#/definitions/PackageOnboardingStateType"
       operationalState:
         description: >
           Operational state of the VNF package.
@@ -120,10 +120,10 @@ definitions:
         description: >
           Links to resources related to this resource.
         type: object
-        required: 
+        required:
           - self
           - packageContent
-        properties: 
+        properties:
           self:
             description: >
               URI of this resource.
@@ -147,7 +147,7 @@ definitions:
       ONBOARDED: The associated VNF package content has been successfully
         on-boarded.
     type: string
-    enum: 
+    enum:
       - CREATED
       - UPLOADING
       - PROCESSING
@@ -182,7 +182,7 @@ definitions:
       in the array matches (logical "or" between the values of one filter
       attribute).
     type: object
-    properties: 
+    properties:
       notificationTypes:
         description: >
           Match particular notification types.
@@ -207,11 +207,11 @@ definitions:
           filter. They should not be used both in the same filter instance,
           but one alternative should be chosen.
         type: array
-        items: 
+        items:
           type: object
           required:
             - vnfProvider
-          properties: 
+          properties:
             vnfProvider:
               description: >
                 Name of the VNF provider to match.
@@ -223,7 +223,7 @@ definitions:
               type: array
               items:
                 type: object
-                required: 
+                required:
                   - vnfProductName
                 properties:
                   vnfProductName:
@@ -236,11 +236,11 @@ definitions:
                       with certain versions and a certain product name, from
                       one particular provider.
                     type: array
-                    items: 
+                    items:
                       type: object
-                      required: 
+                      required:
                         - vnfSoftwareVersion
-                      properties: 
+                      properties:
                         vnfSoftwareVersion:
                           description: >
                             VNF software version to match. 
@@ -262,7 +262,7 @@ definitions:
           filter. They should not be used both in the same filter instance,
           but one alternative should be chosen.
         type: array
-        items: 
+        items:
           $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       vnfPkgId:
         description: >
@@ -276,18 +276,18 @@ definitions:
           filter. They should not be used both in the same filter instance,
           but one alternative should be chosen.
         type: array
-        items: 
+        items:
           $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       operationalState:
         description: >
-          Match particular operational state of the on-boarded VNF package.
+          Match particular operational state of the VNF package.
           May be present if the "notificationTypes" attribute contains the
           value "VnfPackageChangeNotification", and shall be absent
           otherwise.
         $ref: "#/definitions/PackageOperationalStateType"
       usageState:
         description: >
-          Match particular usage state of the on-boarded VNF package.
+          Match particular usage state of the VNF package.
           May be present if the "notificationTypes" attribute contains the
           value "VnfPackageChangeNotification", and shall be absent
           otherwise.
@@ -301,7 +301,7 @@ definitions:
     required:
       - vnfPackage
       - subscription
-    properties: 
+    properties:
       vnfPackage:
         description: >
           Link to the resource representing the VNF package to which the
@@ -318,11 +318,11 @@ definitions:
       This type represents a subscription related to notifications about
       VNF package management.
     type: object
-    required: 
+    required:
       - id
       - callbackUri
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this subscription resource.
@@ -342,8 +342,8 @@ definitions:
         description: >
           Links to resources related to this resource.
         type: object
-        required: 
-         - self
+        required:
+          - self
         properties:
           self:
             description: >
@@ -355,9 +355,9 @@ definitions:
       This type represents a subscription request related to VNF package
       management notifications about VNF package on-boarding or changes.
     type: object
-    required: 
+    required:
       - callbackUri
-    properties: 
+    properties:
       filter:
         description: >
           Filter settings for this subscription, to define the subset of all
@@ -385,7 +385,7 @@ definitions:
     required:
       - artifactPath
       - checksum
-    properties: 
+    properties:
       artifactPath:
         description: >
           Path in the VNF package, which identifies the artifact and also
@@ -419,7 +419,7 @@ definitions:
       - minRam
       - size
       - imagePath
-    properties: 
+    properties:
       id:
         description: >
           Identifier of the software image.
@@ -483,9 +483,9 @@ definitions:
           The list of permitted values was adapted from "Disk formats" in 
           http://docs.openstack.org/image-guide/image-formats.html
         type: string
-        enum: 
+        enum:
           - AKI
-          - AMI 
+          - AMI
           - ISO
           - QCOW2
           - RAW
@@ -493,7 +493,7 @@ definitions:
           - VHD
           - VHDX
           - VMDK
-      createdAt: 
+      createdAt:
         description: >
           Time when this software image was created.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml
index 6683654b08746c3ceb9b3e3880c741e9ddd04de8..60214c89501f313cb75e19526c63b587c3ee6af6 100644
--- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml
+++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Package Management Notification interface
   description: >
     SOL003 - VNF Package Management Notification interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/callback/v1"
 
@@ -39,9 +39,9 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Notification endpoint VnfPackageOnboardingNotification                      #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfPackageOnboardingNotification                      #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageOnboardingNotification':
     #SOL003 location: 10.4.9
     post:
@@ -71,10 +71,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -86,6 +92,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -112,10 +124,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -128,6 +146,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -142,16 +166,16 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Notification endpoint VnfPackageChangeNotification                          #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfPackageChangeNotification                          #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageChangeNotification':
     #SOL003 location: 10.4.9
     post:
       description: >
         Notify
 
-        
+
         The POST method delivers a notification from the server to the client.
       parameters:
         - name: VnfPackageChangeNotification
@@ -175,10 +199,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -190,6 +220,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -216,10 +252,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
             The response body shall be empty.
@@ -232,6 +274,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml
index 8a7b061ed3f1740ae53f35203491d3f34ad19136..b0e98acb68c6965641a463d00a7ae1644e8e807d 100644
--- a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml
+++ b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml
@@ -7,7 +7,7 @@ definitions:
       - OP_STATE_CHANGE: The "operationalState" attribute has been changed.
       - PKG_DELETE: The VNF package has been deleted.
     type: string
-    enum: 
+    enum:
       - OP_STATE_CHANGE
       - PKG_DELETE
 
@@ -38,15 +38,16 @@ definitions:
         (i.e. the package has been onboarded previously).
       * The on-boarded VNF package has been deleted.
     type: object
-    required: 
+    required:
       - id
       - notificationType
+      - subscriptionId
       - timeStamp
       - vnfPkgId
       - vnfdId
       - changeType
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this notification. If a notification is sent multiple
@@ -70,8 +71,7 @@ definitions:
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
       vnfPkgId:
         description: >
-          Identifier of the on-boarded VNF package. This identifier is
-          allocated by the NFVO.
+          Identifier of the VNF package. This identifier is allocated by the NFVO.
           Its value is the same as the value of the "id" attribute of the
           related "Individual VNF package" resource.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
@@ -104,14 +104,15 @@ definitions:
       "onboardingState" attribute of a new VNF package has changed to
       "ONBOARDED".
     type: object
-    required: 
+    required:
       - id
       - notificationType
+      - subscriptionId
       - timeStamp
       - vnfPkgId
       - vnfdId
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this notification. If a notification is sent multiple
@@ -136,8 +137,7 @@ definitions:
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
       vnfPkgId:
         description: >
-          Identifier of the on-boarded VNF package. This identifier is
-          allocated by the NFVO.
+          Identifier of the VNF package. This identifier is allocated by the NFVO.
           Its value is the same as the value of the "id" attribute of the
           related "Individual VNF package" resource.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
@@ -157,17 +157,17 @@ definitions:
       This type represents the links to resources that a VNF package management
       notification can contain.
     type: object
-    required: 
+    required:
       - vnfPackage
       - subscription
     properties:
       vnfPackage:
         description: >
           Link to the resource representing the VNF package to which the notified
-          change applies, i.e. the individual on-boarded VNF package resource
+          change applies, i.e. the individual VNF package resource
           that represents the VNF package.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
       subscription:
         description: >
           Link to the related subscription.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml
index 0b42376a99a13cbe738c9123092f424612abfaa6..bbe5b81635f96af7b1e71d175ee448a08f2a689b 100644
--- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml
+++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Performance Management interface
   description: >
     SOL003 - VNF Performance Management interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/vnfpm/v1"
 
@@ -39,9 +39,15 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# PM jobs                                                                     #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # PM jobs                                                                     #
+  ###############################################################################
   '/pm_jobs':
     #SOL003 location: 6.4.2
     post:
@@ -78,10 +84,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             The PM job was created successfully. The response body shall
             contain a representation of the created PM job resource.
@@ -100,6 +112,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
         400:
@@ -137,14 +155,75 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the PmJob and in data 
+            types referenced from it shall be supported by the VNFM in the 
+            filter expression.
+          in: query
+          required: false
+          type: string
+        - name: all_fields
+          description: >
+            Include all complex attributes in the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: fields
+          description: >
+            Complex attributes to be included into the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_fields
+          description: >
+            Complex attributes to be excluded from the response.
+            See clause 4.3.3 for details. The VNFM should support this parameter.
+          in: query
+          required: false
+          type: string
+        - name: exclude_default
+          description: >
+            Indicates to exclude the following complex attributes from the response.
+            See clause 4.3.3 for details. The VNFM shall support this parameter.
+            The following attributes shall be excluded from the PmJob structure
+            in the response body if this parameter is provided, or none of the parameters
+            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
+            -	Reports
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be supported by the 
+            VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 
+            for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about zero or more PM jobs was queried successfully.
-            The response body shall contain representations of zero or more PM
-            jobs.
+            The response body shall contain in an array representations of 
+            zero or more PM jobs, as defined in clause 6.5.2.7.
+            If the VNFM supports alternative 2 (paging) according to 
+            clause 4.7.2.1 for this resource, inclusion of the Link 
+            HTTP header in this response shall follow the provisions 
+            in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -161,12 +240,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
             items:
               $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -179,9 +270,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual PM job                                                           #
-###############################################################################
+  ###############################################################################
+  # Individual PM job                                                           #
+  ###############################################################################
   '/pm_jobs/{pmJobId}':
     #SOL003 location: 6.4.3
     parameters:
@@ -216,10 +307,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about an individual PM job was queried successfully.
             The response body shall contain a representation of the PM job
@@ -240,6 +337,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
         400:
@@ -270,10 +373,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The PM job was deleted successfully.
             The response body shall be empty.
@@ -286,6 +395,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -300,9 +415,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual performance report                                               #
-###############################################################################
+  ###############################################################################
+  # Individual performance report                                               #
+  ###############################################################################
   '/pm_jobs/{pmJobId}/reports/{reportId}':
     #SOL003 location: 6.4.4
     parameters:
@@ -337,10 +452,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information of an individual performance report was read
             successfully.
@@ -362,8 +483,14 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
-            $ref: "definitions/VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
+            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -378,9 +505,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Thresholds                                                                  #
-###############################################################################
+  ###############################################################################
+  # Thresholds                                                                  #
+  ###############################################################################
   '/thresholds':
     #SOL003 location: 6.4.5
     post:
@@ -418,10 +545,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             A threshold was created successfully. The response body shall
             contain a representation of the created threshold resource.
@@ -447,6 +580,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
         400:
@@ -484,15 +623,48 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the Thresholds and in 
+            data types referenced from it shall be supported by the VNFM 
+            in the filter expression.
+
+            NOTE: There are no attribute selectors defined for this resource as 
+            the threshold attributes with cardinality 0..1 or 0..N are not 
+            structurally complex in nature.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about zero or more thresholds was queried
             successfully.
-            The response body shall contain representations of zero
-            or more thresholds.
+            The response body shall contain in an array representations 
+            of zero or more thresholds, as defined in 6.5.2.9.
+            If the VNFM supports alternative 2 (paging) according to 
+            clause 4.7.2.1 for this resource, inclusion of the Link 
+            HTTP header in this response shall follow the provisions 
+            in clause 4.7.2.3.
           headers:
             Location:
               description: The resource URI of the created VNF instance
@@ -513,12 +685,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -531,12 +715,12 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual threshold                                                        #
-###############################################################################
+  ###############################################################################
+  # Individual threshold                                                        #
+  ###############################################################################
   '/thresholds/{thresholdId}':
     #SOL003 location: 6.4.6
-    parameters: 
+    parameters:
       - name: thresholdId
         description: >
           Identifier of the threshold.
@@ -568,10 +752,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             Information about an individual threshold was queried
             successfully. The response body shall contain a
@@ -592,6 +782,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
         400:
@@ -622,10 +818,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The threshold was deleted successfully.
             The response body shall be empty.
@@ -638,6 +840,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -652,9 +860,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
     #SOL003 location: 6.4.7
     post:
@@ -702,10 +910,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             The subscription was created successfully. A representation of the
             created subscription resource shall be returned in the response
@@ -732,6 +946,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
         303:
@@ -773,14 +993,45 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the PmSubscription and in 
+            data types referenced from it shall be supported by the VNFM 
+            in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The list of subscriptions was queried successfully.
-            The response body shall contain the representations of all active
-            subscriptions of the functional block that invokes the method.
+            The response body shall contain in an array the representations 
+            of all active subscriptions of the functional block that invokes 
+            the method, i.e. zero or more representations of PM subscriptions
+            as defined in 6.5.2.3.
+            If the VNFM supports alternative 2 (paging) according to 
+            clause 4.7.2.1 for this resource, inclusion of the Link 
+            HTTP header in this response shall follow the provisions 
+            in clause 4.7.2.3.
           headers:
             Content-Type:
               description: >
@@ -797,12 +1048,24 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
           schema:
             type: array
-            items: 
+            items:
               $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
         400:
-          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
+          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
         403:
@@ -815,9 +1078,9 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Individual subscription                                                     #
-###############################################################################
+  ###############################################################################
+  # Individual subscription                                                     #
+  ###############################################################################
   '/subscriptions/{subscriptionId}':
     #SOL003 location: 6.4.8
     parameters:
@@ -852,10 +1115,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         200:
-          description: > 
-            OK
+          description: >
+            200 OK
 
             The subscription was read successfully. The response body shall
             contain a representation of the subscription resource.
@@ -875,6 +1144,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
         400:
@@ -895,7 +1170,7 @@ paths:
       description: >
         Terminate Subscription
 
-        
+
         This method terminates an individual subscription.
       parameters:
         - name: Authorization
@@ -905,10 +1180,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The subscription resource was deleted successfully.
             The response body shall be empty.
@@ -921,6 +1202,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml b/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml
deleted file mode 100644
index 91daa216baa856f7e33ae5a09d81fad0ec844e8e..0000000000000000000000000000000000000000
--- a/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) ETSI 2017.
-# https://forge.etsi.org/etsi-forge-copyright-notice.txt
-
-definitions:
-  PerformanceReport:
-    description: >
-      This type defines the format of a performance report provided by the
-      VNFM to the NFVO as a result of collecting performance information as
-      part of a PM job.
-    type: object
-    properties:
-      entries:
-        description: >
-          List of performance information entries. Each performance report
-          entry is for a given metric of a given object (i.e. VNF instance),
-          but can include multiple collected values.
-        type: array
-        items:
-          type: object
-          required: 
-            - objectType
-            - objectInstanceId
-            - performanceMetric
-            - performanceValue
-          properties: 
-            objectType:
-              description: >
-                Defines the object type for which performance information is
-                reported (i.e. VNF type). The string value shall be set to the
-                vnfdId of the VNF instance to which the performance
-                information relates.
-              type: string
-            objectInstanceId: 
-              description: >
-                The object instance (i.e. VNF instance) for which the
-                performance metric is reported.
-              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
-            performanceMetric:
-              description: >
-                Name of the metric collected.
-              type: string
-            performanceValues:
-              description: >
-                List of performance values with associated timestamp.
-              type: array
-              items: 
-                type: object
-                required: 
-                  - timeStamp
-                  - performanceValue
-                properties:
-                  timeStamp:
-                    description: >
-                      Time stamp indicating when the data was collected.
-                    $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
-                  value:
-                    description: >
-                      Value of the metric collected.
-                      The type of the "value" attribute (i.e. scalar,
-                      structure (Object in JSON), or array (of scalars, arrays
-                      or structures / Objects)) is assumed to be defined in
-                      the external measurement specification
-                      (see ETSI GS NFV-IFA 027).
-                    type: object
-
diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml
index 6e542e4817c43f960bc89f6349c89cdc62ff5585..e26d686cca84a6344f3accfb763d23afbf304f23 100644
--- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml
+++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - VNF Performance Management Notification interface
   description: >
     SOL003 - VNF Performance Management Notification interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/callback/v1"
 
@@ -39,9 +39,9 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Notification endpoint PerformanceInformationAvailableNotification           #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint PerformanceInformationAvailableNotification           #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification':
     #SOL003 location: 6.4.9
     post:
@@ -73,10 +73,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -88,6 +94,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -114,10 +126,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
           headers:
@@ -129,6 +147,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -143,16 +167,16 @@ paths:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
         503:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
-###############################################################################
-# Notification endpoint ThresholdCrossedNotification                          #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint ThresholdCrossedNotification                          #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription-ThresholdCrossedNotification':
     #SOL003 location: 6.4.9
     post:
       description: >
         Notify
 
-        
+
         The POST method delivers a notification regarding a performance
         management event from the server to the client.
       parameters:
@@ -177,10 +201,16 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
           headers:
@@ -192,6 +222,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -218,10 +254,16 @@ paths:
           in: header
           required: false
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification endpoint was tested successfully.
           headers:
@@ -233,6 +275,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml
index 7ecc490f2fa8437773f7fe510618ace19256121f..20aa281e3f8c72d45e6121d40fda4b7b3a15c6f8 100644
--- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml
+++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - Virtualised Resources Quota Available Notification interface
   description: >
     SOL003 - Virtualised Resources Quota Available Notification interface 
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/vrqan/v1"
 
@@ -39,9 +39,15 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Subscriptions                                                               #
-###############################################################################
+  ###############################################################################
+  # API Versions                                                                #
+  ###############################################################################
+  '/api-versions':
+    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
+
+  ###############################################################################
+  # Subscriptions                                                               #
+  ###############################################################################
   '/subscriptions':
     post:
       description: >
@@ -88,10 +94,16 @@ paths:
           required: true
           schema:
             $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscriptionRequest"
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         201:
-          description: > 
-            Created
+          description: >
+            201 CREATED
 
             Representation of the created subscription resource.
             The HTTP response shall include a "Location" HTTP header that
@@ -114,6 +126,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
           schema:
             $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription"
         303:
@@ -138,7 +156,7 @@ paths:
       description: >
         Query Subscription Information
 
-        
+
         The GET method allows the server to test the notification endpoint
         that is provided by the client, e.g. during subscription.
       parameters:
@@ -149,9 +167,76 @@ paths:
           in: header
           required: false
           type: string
+        - name: filter
+          description: >
+            Attribute-based filtering expression according to clause 4.3.2.
+            The VNFM shall support receiving this parameter as part of the 
+            URI query string. The NFVO may supply this parameter. 
+            All attribute names that appear in the VrQuotaAvailSubscription 
+            and in data types referenced from it shall be supported by the 
+            VNFM in the filter expression.
+          in: query
+          required: false
+          type: string
+        - name: nextpage_opaque_marker
+          description: >
+            Marker to obtain the next page of a paged response. Shall be 
+            supported by the VNFM if the VNFM supports alternative 2 (paging) 
+            according to clause 4.7.2.1 for this resource.
+          in: query
+          required: false
+          type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
+        200:
+          description: >
+            200 OK
+
+            The list of subscriptions was queried successfully.
+            The representations body shall contain in an array the representations
+            of all active subscriptions of the functional block that invokes the
+            method, i.e. zero or more representations of virtualized resource quota
+            available subscriptions as defined in clause 11.5.2.3.
+            If the VNFM supports alternative 2 (paging) according to clause 
+            4.7.2.1 for this resource, inclusion of the Link HTTP header in 
+            this response shall follow the provisions in clause 4.7.2.3.
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            WWW-Authenticate:
+              description: >
+                Challenge if the corresponding HTTP request has not provided
+                authorization, or error details if the corresponding HTTP
+                request has provided an invalid authorization token.
+              type: string
+              maximum: 1
+              minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Link:
+              description: >
+                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
+              type: string
+              maximum: 1
+              minimum: 0
+          schema:
+            type: array
+            items:
+              $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription"
         204:
-          description: > 
+          description: >
             No Content
 
             The notification endpoint was tested successfully.
@@ -165,6 +250,12 @@ paths:
               type: string
               maximum: 1
               minimum: 0
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml
index ebee41f86893f2fee99f10f74e777f8a635571af..86ee0681dc653fd86934c3ea30645f7715b38def 100644
--- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml
+++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml
@@ -12,7 +12,7 @@ definitions:
       an array, the attribute shall match if at least one of the values in the
       array matches (logical "or" between the values of one filter attribute).
     type: object
-    properties: 
+    properties:
       vimIds:
         description: >
           Match VIMs that were created the quota for a consumer of the
@@ -92,7 +92,7 @@ definitions:
       This type represents a subscription request related to notifications
       related to the availability of the virtualised resources quotas.
     type: object
-    required: 
+    required:
       - callbackUri
     properties:
       filter:
diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml
index 48d0b12dd9cb0c15bcad3d17b74eb21a0b7596e9..1bdef906a4f81e6842d2f6b924c0e3498367ddf4 100644
--- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml
+++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml
@@ -1,7 +1,7 @@
 swagger: "2.0"
 
 info:
-  version: "1.1.0"
+  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
   title: SOL003 - Virtualised Resources Quota Available Notification Notification interface
   description: >
     SOL003 - Virtualised Resources Quota Available Notification Notification interface
@@ -11,7 +11,7 @@ info:
     version of the ETSI Group Specification it refers to. In case of
     discrepancies the published ETSI Group Specification takes precedence.
 
-    
+
     In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
     filtering mechanism is defined. This mechanism is currently not
     included in the corresponding OpenAPI design for this GS version. Changes
@@ -25,8 +25,8 @@ info:
     url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf
+  description: ETSI GS NFV-SOL 003 V2.5.1
+  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.05.01_60/gs_nfv-sol003v020501p.pdf
 
 basePath: "/callback/v1"
 
@@ -39,15 +39,15 @@ produces:
   - "application/json"
 
 paths:
-###############################################################################
-# Notification endpoint VnfLcmOperationOccurrenceNotification                      #
-###############################################################################
+  ###############################################################################
+  # Notification endpoint VnfLcmOperationOccurrenceNotification                      #
+  ###############################################################################
   '/URI-is-provided-by-the-client-when-creating-the-subscription':
     post:
       description: >
         Notify
 
-        
+
         The POST method delivers a notification from the server to the client.
       parameters:
         - name: VrQuotaAvailNotification
@@ -71,12 +71,25 @@ paths:
           in: header
           required: true
           type: string
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
+          headers:
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
@@ -97,12 +110,26 @@ paths:
       description: >
         The GET method allows the server to test the notification endpoint
         that is provided by the client, e.g. during subscription.
+      parameters:
+        - name: Version
+          description: >
+            Version of the API requested to use when responding to this request.
+          in: header
+          required: true
+          type: string
       responses:
         204:
-          description: > 
-            No Content
+          description: >
+            204 NO CONTENT
 
             The notification was delivered successfully.
+          headers:
+            Version:
+              description: >
+                Version of the API used in the response.
+              type: string
+              maximum: 1
+              minimum: 1
         400:
           $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
         401:
diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml
index ea86df4524cadc4a679fe6e1fdc14ecb5f722f70..0187577b8a9c9da16cc66c03590866f7c1655bf0 100644
--- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml
+++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml
@@ -12,14 +12,14 @@ definitions:
       The notification shall be triggered by the NFVO when a virtualised
       resource quota applicable to the consumer has been set.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
       - timeStamp
       - resourceGroupId
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this notification. If a notification is sent multiple
@@ -31,9 +31,9 @@ definitions:
           Discriminator for the different notification types. 
           Shall be set to "VrQuotaAvailNotification" for this notification type.
         type: string
-        enum: 
+        enum:
           - VrQuotaAvailNotification
-      subscriptionId: 
+      subscriptionId:
         description: >
           Identifier of the subscription that this notification relates to.
         $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
@@ -66,19 +66,19 @@ definitions:
         description: >
           Links to resources related to this notification.
         $ref: "#/definitions/QuotaAvailLinks"
-  
+
   QuotaAvailLinks:
     description: >
       This type represents the links to resources that a notification of type
       "VrQuotaAvailNotification" can contain.
     type: object
-    required: 
+    required:
       - subscription
-    properties: 
+    properties:
       subscription:
         description: >
           Link to the related subscription.
-        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
+        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
 
 
 
diff --git a/src/SOL003/definitions/SOL003_def.yaml b/src/SOL003/definitions/SOL003_def.yaml
index 5e1cc0197ae58578b3632f41c63f83339c03153f..099b2f9ac352e7bf0fdc22e45f9f2f88734340df 100644
--- a/src/SOL003/definitions/SOL003_def.yaml
+++ b/src/SOL003/definitions/SOL003_def.yaml
@@ -19,7 +19,7 @@ definitions:
       - isRootCause
       - _links
     properties:
-      id: 
+      id:
         description: >
           Identifier of this Alarm information element.
         $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
@@ -53,14 +53,14 @@ definitions:
           * UNACKNOWLEDGED
           * ACKNOWLEDGED.
         type: string
-        enum: 
+        enum:
           - UNACKNOWLEDGED
           - ACKNOWLEDGED
       perceivedSeverity:
         description: >
           Perceived severity of the managed object failure.
         $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
-      eventTime: 
+      eventTime:
         description: >
           Time stamp indicating when the fault was observed.
         $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
@@ -79,14 +79,14 @@ definitions:
       isRootCause:
         description: >
           Attribute indicating if this fault is the root for other correlated
-          alarms. If TRUE, then the alarms listed in the attribute
+          alarms. If true, then the alarms listed in the attribute
           CorrelatedAlarmId are caused by this fault.
         type: boolean
       correlatedAlarmIds:
         description: >
           List of identifiers of other alarms correlated to this fault.
         type: array
-        items: 
+        items:
           $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
       faultDetails:
         description: >
@@ -120,7 +120,7 @@ definitions:
       * An alarm has been updated, e.g. if the severity of the alarm has
         changed.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
@@ -139,7 +139,7 @@ definitions:
           Discriminator for the different notification types. Shall be set to
           "AlarmNotification" for this notification type.
         type: string
-        enum: 
+        enum:
           - AlarmNotification
       subscriptionId:
         description: >
@@ -158,14 +158,14 @@ definitions:
         description: >
           Links to resources related to this notification.
         type: object
-        required: 
+        required:
           - subscription
-        properties: 
-          subscription: 
+        properties:
+          subscription:
             description: >
               Link to the related subscription.
-            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
-            
+            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
+
   VnfInfoModificationRequest:
     description: >
       This type represents attribute modifications for an
@@ -211,6 +211,13 @@ definitions:
           New content of certain entries in the "vimConnectionInfo" attribute
           array in "VnfInstance", as defined below this table.
         type: array
-        items: 
+        items:
           $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
-  
\ No newline at end of file
+      vimConnectionInfoDeleteIds:
+        description: >
+          List of identifiers entries to be deleted from the "vimConnectionInfo" 
+          attribute array in "VnfInstance", to be used as "deleteIdList" as defined 
+          below this table.
+        type: array
+        items:
+          $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
\ No newline at end of file
diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml
index f9d5052ff343355c9e0dc00acb5ac5bbb15aaef0..cbb324543d201d8f34569b7a839c7ccbfbc686cf 100644
--- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml
+++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml
@@ -2,13 +2,241 @@
 # https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 definitions:
+  FmSubscriptionRequest:
+    description: >
+      This type represents a subscription request related to notifications
+      about VNF faults.
+    type: object
+    required:
+      - callbackUri
+    properties:
+      filter:
+        description: >
+          Filter settings for this subscription, to define the subset of all
+          notifications this subscription relates to. A particular
+          notification is sent to the subscriber if the filter matches, or if
+          there is no filter.
+        $ref: "#/definitions/FmNotificationsFilter"
+      callbackUri:
+        description: >
+          The URI of the endpoint to send the notification to.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Uri"
+      authentication:
+        description: >
+          Authentication parameters to configure the use of Authorization when
+          sending notifications corresponding to this subscription.
+          This attribute shall only be present if the subscriber requires
+          authorization of notifications.
+        $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
+
+  FmSubscription:
+    description: >
+      This type represents a subscription related to notifications about VNF
+      faults.
+    type: object
+    required:
+      - id
+      - callbackUri
+      - _links
+    properties:
+      id:
+        description: >
+          Identifier of this subscription resource.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      filter:
+        description: >
+          Filter settings for this subscription, to define the subset of all
+          notifications this subscription relates to. A particular
+          notification is sent to the subscriber if the filter matches, or if
+          there is no filter.
+        $ref: "#/definitions/FmNotificationsFilter"
+      callbackUri:
+        description: >
+          The URI of the endpoint to send the notification to.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Uri"
+      _links:
+        description: >
+          Links for this resource.
+        type: object
+        required:
+          - self
+        properties:
+          self:
+            description: >
+              URI of this resource.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+
+  Alarm:
+    description: >
+      The alarm data type encapsulates information about an alarm.
+    type: object
+    required:
+      - id
+      - managedObjectId
+      - rootCauseFaultyResource
+      - alarmRaisedTime
+      - ackState
+      - perceivedSeverity
+      - eventTime
+      - eventType
+      - probableCause
+      - isRootCause
+      - _links
+    properties:
+      id:
+        description: >
+          Identifier of this Alarm information element.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      managedObjectId:
+        description: >
+          Identifier of the affected VNF instance.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      rootCauseFaultyResource:
+        description: >
+          The virtualised resources that are causing the VNF fault.
+        $ref: "#/definitions/FaultyResourceInfo"
+      alarmRaisedTime:
+        description: >
+          Time stamp indicating when the alarm is raised by the managed
+          object.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      alarmChangedTime:
+        description: >
+          Time stamp indicating when the alarm was last changed. It shall be
+          present if the alarm has been updated.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      alarmClearedTime:
+        description: >
+          Time stamp indicating when the alarm was cleared. It shall be
+          present if the alarm has been cleared.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      ackState:
+        description: >
+          Acknowledgement state of the alarm.
+          Permitted values:
+          * UNACKNOWLEDGED
+          * ACKNOWLEDGED.
+        type: string
+        enum:
+          - UNACKNOWLEDGED
+          - ACKNOWLEDGED
+      perceivedSeverity:
+        description: >
+          Perceived severity of the managed object failure.
+        $ref: "#/definitions/PerceivedSeverityType"
+      eventTime:
+        description: >
+          Time stamp indicating when the fault was observed.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      eventType:
+        description: >
+          Type of event.
+        $ref: "#/definitions/EventType"
+      faultType:
+        description: >
+          Additional information to clarify the type of the fault.
+        type: string
+      probableCause:
+        description: >
+          Information about the probable cause of the fault.
+        type: string
+      isRootCause:
+        description: >
+          Attribute indicating if this fault is the root for other correlated
+          alarms. If true, then the alarms listed in the attribute
+          CorrelatedAlarmId are caused by this fault.
+        type: boolean
+      correlatedAlarmIds:
+        description: >
+          List of identifiers of other alarms correlated to this fault.
+        type: array
+        items:
+          $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      faultDetails:
+        description: >
+          Provides additional information about the fault.
+        type: array
+        items:
+          type: string
+      _links:
+        description: >
+          Links for this resource.
+        type: object
+        required:
+          - self
+        properties:
+          self:
+            description: >
+              URI of this resource.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          objectInstance:
+            description: >
+              Link to the resource representing the VNF instance to which the
+              notified alarm is correlated. Shall be present if the VNF
+              instance information is accessible as a resource.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+
+  AlarmNotification:
+    description: >
+      This type represents an alarm notification about VNF faults.
+      This notification shall be triggered by the VNFM when:
+      * An alarm has been created.
+      * An alarm has been updated, e.g. if the severity of the alarm has
+        changed.
+    type: object
+    required:
+      - id
+      - notificationType
+      - subscriptionId
+      - timeStamp
+      - alarm
+      - _links
+    properties:
+      id:
+        description: >
+          Identifier of this notification. If a notification is sent multiple
+          times due to multiple subscriptions, the "id" attribute of all these
+          notifications shall have the same value.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      notificationType:
+        description: >
+          Discriminator for the different notification types. Shall be set to
+          "AlarmNotification" for this notification type.
+        type: string
+        enum:
+          - AlarmNotification
+      subscriptionId:
+        description: >
+          Identifier of the subscription that this notification relates to.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      timeStamp:
+        description: >
+          Date-time of the generation of the notification.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      alarm:
+        description: >
+          Information about an alarm including AlarmId, affected VNF
+          identifier, and FaultDetails.
+        $ref: "#/definitions/Alarm"
+      _links:
+        description: >
+          Links to resources related to this notification.
+        type: object
+        required:
+          - subscription
+        properties:
+          subscription:
+            description: >
+              Link to the related subscription.
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
+
   AlarmClearedNotification:
     description: >
       This type represents an alarm cleared notification about VNF faults.
       The notification shall be triggered by the VNFM when an alarm has been
       cleared.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
@@ -28,7 +256,7 @@ definitions:
           Discriminator for the different notification types. Shall be set to
           "AlarmClearedNotification" for this notification type.
         type: string
-        enum: 
+        enum:
           - AlarmClearedNotification
       subscriptionId:
         description: >
@@ -49,18 +277,18 @@ definitions:
         description: >
           Links to resources related to this notification.
         type: object
-        required: 
+        required:
           - subscription
           - alarm
-        properties: 
-          subscription: 
+        properties:
+          subscription:
             description: >
               Link to the related subscription.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           alarm:
             description: >
               Link to the resource that represents the related alarm.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
 
   AlarmListRebuiltNotification:
     description: >
@@ -70,7 +298,7 @@ definitions:
       The notification shall be triggered by the VNFM when the alarm list has
       been rebuilt.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
@@ -88,7 +316,7 @@ definitions:
           Discriminator for the different notification types. Shall be set to
           "AlarmListRebuiltNotification" for this notification type.
         type: string
-        enum: 
+        enum:
           - AlarmListRebuiltNotification
       subscriptionId:
         description: >
@@ -102,18 +330,18 @@ definitions:
         description: >
           Links to resources related to this notification.
         type: object
-        required: 
+        required:
           - subscription
           - alarms
-        properties: 
-          subscription: 
+        properties:
+          subscription:
             description: >
               Link to the related subscription.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           alarms:
             description: >
               Link to the alarm list, i.e. the "Alarms" resource.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
 
   AlarmModifications:
     description: >
@@ -124,7 +352,7 @@ definitions:
     type: object
     required:
       - ackState
-    properties: 
+    properties:
       ackState:
         description: >
           New value of the "ackState" attribute in "Alarm".
@@ -151,7 +379,7 @@ definitions:
       * EQUIPMENT_ALARM: An alarm of this type is associated with an equipment
         fault (ITU-T Recommendation X.733).
     type: string
-    enum: 
+    enum:
       - COMMUNICATIONS_ALARM
       - PROCESSING_ERROR_ALARM
       - ENVIRONMENTAL_ALARM
@@ -163,10 +391,10 @@ definitions:
       This type represents the faulty virtual resources that have a negative
       impact on a VNF.
     type: object
-    required: 
+    required:
       - faultyResource
       - faultyResourceType
-    properties: 
+    properties:
       faultyResource:
         description: >
           Information that identifies the faulty resource instance and its
@@ -182,7 +410,7 @@ definitions:
       The enumeration FaultyResourceType represents those types of faulty
       resource.
     type: string
-    enum: 
+    enum:
       - COMPUTE
       - STORAGE
       - NETWORK
@@ -224,92 +452,26 @@ definitions:
           Match VNF alarms with a faulty resource type listed in this
           attribute.
         type: array
-        items: 
+        items:
           $ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceType"
       perceivedSeverities:
         description: >
           Match VNF alarms with a perceived severity listed in this attribute.
         type: array
-        items: 
+        items:
           $ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
       eventTypes:
         description: >
           Match VNF alarms with an event type listed in this attribute.
         type: array
-        items: 
+        items:
           $ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
       probableCauses:
         description: >
           Match VNF alarms with a probable cause listed in this attribute.
         type: array
-        items: 
-          type: string        
-
-  FmSubscription:
-    description: >
-      This type represents a subscription related to notifications about VNF
-      faults.
-    type: object
-    required: 
-      - id
-      - callbackUri
-      - _links
-    properties: 
-      id:
-        description: >
-          Identifier of this subscription resource.
-        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
-      filter:
-        description: >
-          Filter settings for this subscription, to define the subset of all
-          notifications this subscription relates to. A particular
-          notification is sent to the subscriber if the filter matches, or if
-          there is no filter.
-        $ref: "#/definitions/FmNotificationsFilter"
-      callbackUri:
-        description: >
-          The URI of the endpoint to send the notification to.
-        type: string
-        format: url
-      _links:
-        description: >
-          Links for this resource.
-        type: object
-        required:
-          - self
-        properties:
-          self:
-            description: >
-              URI of this resource.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
-
-  FmSubscriptionRequest:
-    description: >
-      This type represents a subscription request related to notifications
-      about VNF faults.
-    type: object
-    required: 
-      - callbackUri
-    properties:
-      filter:
-        description: >
-          Filter settings for this subscription, to define the subset of all
-          notifications this subscription relates to. A particular
-          notification is sent to the subscriber if the filter matches, or if
-          there is no filter.
-        $ref: "#/definitions/FmNotificationsFilter"
-      callbackUri:
-        description: >
-          The URI of the endpoint to send the notification to.
-        type: string
-        format: url
-      authentication:
-        description: >
-          Authentication parameters to configure the use of Authorization when
-          sending notifications corresponding to this subscription.
-          This attribute shall only be present if the subscriber requires
-          authorization of notifications.
-        $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
+        items:
+          type: string
 
   PerceivedSeverityType:
     description: >
@@ -343,7 +505,7 @@ definitions:
         managed object that have the same Alarm type, Probable cause and
         Specific problems (if given) (ITU-T Recommendation X.733).
     type: string
-    enum: 
+    enum:
       - CRITICAL
       - MAJOR
       - MINOR
diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml
index 8c43b741cc92fc5b219381a4fa6267eb07255700..fc9615ef63ebb9c57add822326c6d0b86af70cff 100644
--- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml
+++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml
@@ -3,15 +3,15 @@
 
 definitions:
   VnfIndicator:
-    description: > 
+    description: >
       This type represents a VNF indicator value.
     type: object
-    required:  
+    required:
       - id
       - value
       - vnfInstanceId
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this VNF indicator.
@@ -21,7 +21,7 @@ definitions:
           Human readable name of the indicator. Shall be present if defined in
           the VNFD.
         type: string
-      value: 
+      value:
         description: >
           Provides the value of the indicator. The value format is defined in
           the VNFD.
@@ -36,10 +36,10 @@ definitions:
         description: >
           Links for this resource.
         type: object
-        required: 
+        required:
           - self
           - vnfInstance
-        properties: 
+        properties:
           self:
             description: >
               URI of this resource.
@@ -59,7 +59,7 @@ definitions:
       an array, the attribute shall match if at least one of the values in the
       array matches (logical "or" between the values of one filter attribute).
     type: object
-    properties: 
+    properties:
       vnfInstanceSubscriptionFilter:
         description: >
           Filter criteria to select VNF instances about which to notify.
@@ -68,7 +68,7 @@ definitions:
         description: >
           Match particular VNF indicator identifiers.
         type: array
-        items: 
+        items:
           $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
 
   VnfIndicatorSubscription:
@@ -76,11 +76,11 @@ definitions:
       This type represents a subscription related to notifications about VNF
       indicator value changes.
     type: object
-    required: 
+    required:
       - id
       - callbackUri
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this subscription resource.
@@ -114,9 +114,9 @@ definitions:
       This type represents a subscription request related to VNF indicator
       value change notifications.
     type: object
-    required: 
+    required:
       - callbackUri
-    properties: 
+    properties:
       filter:
         description: >
           Filter settings for this subscription, to define the subset of all
@@ -127,8 +127,7 @@ definitions:
       callbackUri:
         description: >
           The URI of the endpoint to send the notification to.
-        type: string
-        format: url
+        $ref: "SOL002SOl003_def.yaml#/definitions/Uri"
       authentication:
         description: >
           Authentication parameters to configure the use of Authorization
@@ -143,7 +142,7 @@ definitions:
       The notification shall be triggered by the VNFM when the value of an
       indicator has changed.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
@@ -152,8 +151,8 @@ definitions:
       - value
       - vnfInstanceId
       - _links
-    properties: 
-      id: 
+    properties:
+      id:
         description: >
           Identifier of this notification. If a notification is sent multiple
           times due to multiple subscriptions, the "id" attribute of all these
@@ -164,7 +163,7 @@ definitions:
           Discriminator for the different notification types. Shall be set to
           "VnfIndicatorValueChangeNotification" for this notification type.
         type: string
-        enum: 
+        enum:
           - VnfIndicatorValueChangeNotification
       subscriptionId:
         description: >
@@ -198,15 +197,15 @@ definitions:
         description: >
           Links for this resource.
         type: object
-        required: 
-          - vnfInstance
+        required:
           - subscription
         properties:
           vnfInstance:
             description: >
-              Link to the related VNF instance resource.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+              Link to the related VNF instance resource. Shall be present 
+              if the VNF instance information is accessible as a resource.
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           subscription:
             description: >
               Link to the related subscription.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml
index 587e62dce6d194bf648445b1e6cbecc242c355f8..51f267681175cab1e18f0cb212b4541d9d7846cb 100644
--- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml
+++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml
@@ -2,6 +2,248 @@
 # https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 definitions:
+  InstantiateVnfRequest:
+    type: object
+    required:
+      - flavourId
+    properties:
+      flavourId:
+        description: >
+          Identifier of the VNF deployment flavour to be instantiated.
+        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
+      instantiationLevelId:
+        description: >
+          Identifier of the instantiation level of the deployment flavour to be
+          instantiated. If not present, the default instantiation level as
+          declared in the VNFD is instantiated.
+        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
+      extVirtualLinks:
+        description: >
+          Information about external VLs to connect the VNF to.
+        type: array
+        items:
+          $ref: "SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
+      extManagedVirtualLinks:
+        description: >
+          Information about external VLs to connect the VNF to.
+        type: array
+        items:
+          $ref: "SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
+      localizationLanguage:
+        description: >
+          Localization language of the VNF to be instantiated. The value shall
+          comply with the format defined in IETF RFC 5646.
+        type: string
+      additionalParams:
+        description: >
+          Additional input parameters for the instantiation process, specific
+          to the VNF being instantiated, as declared in the VNFD as part of
+          "InstantiateVnfOpConfig".
+        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+
+  VnfLcmOpOcc:
+    description: >
+      This type represents a VNF lifecycle management operation occurrence.
+    type: object
+    required:
+      - id
+      - operationState
+      - stateEnteredTime
+      - startTime
+      - vnfInstanceId
+      - operation
+      - isAutomaticInvocation
+      - isCancelPending
+    properties:
+      id:
+        description: >
+          Identifier of this VNF lifecycle management operation occurrence.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      operationState:
+        description: >
+          The state of the LCM operation.
+        $ref: "#/definitions/LcmOperationStateType"
+      stateEnteredTime:
+        description: >
+          Date-time when the current state was entered.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      startTime:
+        description: >
+          Date-time of the start of the operation.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      vnfInstanceId:
+        description: >
+          Identifier of the VNF instance to which the operation applies
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      grantId:
+        description: >
+          Identifier of the grant related to this VNF LCM operation
+          occurrence, if such grant exists.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      operation:
+        description: >
+          Type of the actual LCM operation represented by this VNF LCM
+          operation occurrence.
+        $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType"
+      isAutomaticInvocation:
+        description: >
+          Set to true if this VNF LCM operation occurrence has been triggered
+          by an automated procedure inside the VNFM (i.e.
+          ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
+          triggered by auto-heal). Set to false otherwise.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Boolean"
+      operationParams:
+        description: >
+          Input parameters of the LCM operation. This attribute shall be
+          formatted according to the request data type of the related LCM
+          operation. The following mapping between operationType and the
+          data type of this attribute shall apply:
+          * INSTANTIATE: InstantiateVnfRequest
+          * SCALE: ScaleVnfRequest
+          * SCALE_TO_LEVEL: ScaleVnfToLevelRequest
+          * CHANGE_FLAVOUR: ChangeVnfFlavourRequest
+          * OPERATE: OperateVnfRequest
+          * HEAL: HealVnfRequest
+          * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest
+          * TERMINATE: TerminateVnfRequest
+          * MODIFY_INFO: VnfInfoModifications
+        type: object
+      isCancelPending:
+        description: >
+          If the VNF LCM operation occurrence is in "STARTING", "PROCESSING"
+          or "ROLLING_BACK" state and the operation is being cancelled, this
+          attribute shall be set to true. Otherwise, it shall be set to false.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Boolean"
+      cancelMode:
+        description: >
+          The mode of an ongoing cancellation. Shall be present when
+          isCancelPending=true, and shall be absent otherwise.
+        $ref: "#/definitions/CancelModeType"
+      error:
+        description: >
+          If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState"
+          is "PROCESSING" or "ROLLING_BACK" and previous value of
+          "operationState" was "FAILED_TEMP", this attribute shall be present
+          and contain error information, unless it has been requested to be
+          excluded via an attribute selector.
+        $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+      resourceChanges:
+        description: >
+          This attribute contains information about the cumulative changes to
+          virtualised resources that were performed so far by the LCM
+          operation since its start, if applicable.
+        type: object
+        properties:
+          affectedVnfcs:
+            description: >
+              Information about VNFC instances that were affected during the
+              lifecycle operation.
+              This allows the NFVO to obtain the information contained in the
+              latest "result" notification if it has not received it due to an
+              error or a wrongly configured subscription filter.
+            type: array
+            items:
+              $ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc"
+          affectedVirtualLinks:
+            description: >
+              Information about VL instances that were affected during the
+              lifecycle operation.
+              This allows the NFVO to obtain the information contained in the
+              latest "result" notification if it has not received it due to an
+              error or a wrongly configured subscription filter.
+            type: array
+            items:
+              $ref: "#/definitions/AffectedVirtualLink"
+          affectedVirtualStorages:
+            description: >
+              Information about virtualised storage instances that were affected
+              during the lifecycle operation.
+              This allows the NFVO to obtain the information contained in the
+              latest "result" notification if it has not received it due to an
+              error or a wrongly configured subscription filter.
+            type: array
+            items:
+              $ref: "#/definitions/AffectedVirtualStorage"
+      changedInfo:
+        description: >
+          Information about the changed VNF instance information, including
+          VNF configurable properties, if applicable.
+          This allows the NFVO to obtain the information contained in the
+          latest "result" notification if it has not received it due to an
+          error or a wrongly configured subscription filter.
+        $ref: "#/definitions/VnfInfoModifications"
+      changedExtConnectivity:
+        description: >
+          Information about changed external connectivity, if applicable.
+          This allows the NFVO to obtain the information contained in the
+          latest "result" notification if it has not received it due to an
+          error or a wrongly configured subscription filter.
+        type: array
+        items:
+          $ref: "#/definitions/ExtVirtualLinkInfo"
+      _links:
+        description: >
+          Links to resources related to this resource.
+        type: object
+        required:
+          - self
+          - vnfInstance
+        properties:
+          self:
+            description: >
+              URI of this resource.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          vnfInstance:
+            description: >
+              Link to the VNF instance that the operation applies to.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          grant:
+            description: >
+              Link to the grant for this operation, if one exists.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          cancel:
+            description: >
+              Link to the task resource that represents the "cancel" operation
+              for this VNF LCM operation occurrence, if cancelling is
+              currently allowed.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          retry:
+            description: >
+              Link to the task resource that represents the "retry" operation
+              for this VNF LCM operation occurrence, if retrying is currently
+              allowed.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          rollback:
+            description: >
+              Link to the task resource that represents the "rollback"
+              operation for this VNF LCM operation occurrence, if rolling back
+              is currently allowed.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+          fail:
+            description: >
+              Link to the task resource that represents the "fail" operation
+              for this VNF LCM operation occurrence, if declaring as failed is
+              currently allowed.
+            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+
+  CancelModeType:
+    description: >
+      Cancellation mode.
+      GRACEFUL: The VNFM shall not start any new resource management operation
+      and shall wait for the ongoing resource management operations in the
+      underlying system, typically the VIM, to finish execution or to time
+      out. After that, the VNFM shall put the operation occurrence into the
+      FAILED_TEMP state.
+      FORCEFUL: The VNFM shall not start any new resource management
+      operation, shall cancel the ongoing resource management operations
+      in the underlying system, typically the VIM, and shall wait for the
+      cancellation to finish or to time out. After that, the VNFM shall put
+      the operation occurrence into the FAILED_TEMP state.
+    type: string
+    enum:
+      - GRACEFUL
+      - FORCEFUL
+
   AffectedVirtualLink:
     description: >
       This type provides information about added, deleted, modified and
@@ -9,16 +251,16 @@ definitions:
     type: object
     required:
       - id
-      - virtualLinkDescId
+      - vnfVirtualLinkDescId
       - changeType
       - networkResource
     properties:
-      id: 
+      id:
         description: >
           Identifier of the virtual link instance, identifying the applicable
           "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type.
         $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-      virtualLinkDescId:
+      vnfVirtualLinkDescId:
         description: >
           Identifier of the related VLD in the VNFD.
         $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
@@ -106,9 +348,9 @@ definitions:
     description: >
       This type describes the protocol layer(s) that a CP uses together with
       protocol-related information, like addresses. 
-    required: 
+    required:
       - layerProtocol
-    properties: 
+    properties:
       layerProtocol:
         description: >
           The identifier of layer(s) and protocol(s) associated to the network
@@ -119,7 +361,7 @@ definitions:
           backwards-compatible way. In the current version of the present
           document, only IP over Ethernet is supported.
         type: string
-        enum: 
+        enum:
           - IP_OVER_ETHERNET
       ipOverEthernet:
         description: >
@@ -231,12 +473,11 @@ definitions:
       This type represents information about a network address that has been
       assigned. 
     type: object
-    required: 
-      - macAddress
-    properties: 
+    properties:
       macAddress:
         description: >
-          Assigned MAC address.
+          MAC address, if assigned.
+          At least one of "macAddress" or "ipAddresses" shall be present.
         $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress"
       ipAddresses:
         description: >
@@ -244,25 +485,26 @@ definitions:
           addresses assigned by fixed or dynamic IP address assignment per
           subnet.
         type: array
-        items: 
+        items:
           type: object
-          required: 
+          required:
             - type
-          properties: 
+          properties:
             type:
               description: >
                 The type of the IP addresses.
                 Permitted values: IPV4, IPV6.
               type: string
-              enum: 
+              enum:
                 - IPV4
                 - IPV6
             addresses:
               description: >
                 Fixed addresses assigned (from the subnet defined by
                 "subnetId" if provided).
+                Exactly one of "addresses" or "addressRange" shall be present.
               type: array
-              items: 
+              items:
                 $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
             isDynamic:
               description: >
@@ -276,7 +518,7 @@ definitions:
                 An IP address range used, e.g., in case of egress connections.
                 Exactly one of "addresses" or "addressRange" shall be present.
               type: object
-              required: 
+              required:
                 - minAddress
                 - maxAddress
               properties:
@@ -301,25 +543,25 @@ definitions:
       This type represents the links to resources that a notification can
       contain.
     type: object
-    required: 
+    required:
       - vnfInstance
       - subscription
-    properties: 
+    properties:
       vnfInstance:
         description: >
           Link to the resource representing the VNF instance to which the
           notified change applies.
-        $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+        $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
       subscription:
         description: >
           Link to the related subscription.
-        $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+        $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
       vnfLcmOpOcc:
         description: >
           Link to the VNF lifecycle management operation occurrence that this
           notification is related to. Shall be present if there is a related
           lifecycle operation occurrence.
-        $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+        $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
 
   LccnSubscription:
     description: >
@@ -358,6 +600,180 @@ definitions:
               URI of this resource.
             $ref: "SOL002SOL003_def.yaml#/definitions/Link"
 
+  VnfLcmOperationOccurrenceNotification:
+    description: >
+      This type represents a VNF lifecycle management operation occurrence
+      notification, which informs the receiver of changes in the VNF
+      lifecycle caused by a VNF LCM operation occurrence. The support of the
+      notification is mandatory.
+      This notification shall be triggered by the VNFM when there is a change
+      in the VNF lifecycle caused by a VNF LCM operation occurrence,
+      including:
+      * Instantiation of the VNF
+      * Scaling of the VNF instance (including auto-scaling)
+      * Healing of the VNF instance (including auto-healing)
+      * Change of the state of the VNF instance (i.e. Operate VNF)
+      * Change of the deployment flavour of the VNF instance
+      * Change of the external connectivity of the VNF instance
+      * Termination of the VNF instance
+      * Modification of VNF instance information and/or VNF configurable
+        properties through the "PATCH" method on the "Individual VNF instance"
+        resource.
+      If this is the initial notification about the start of a VNF LCM
+      operation occurrence, it is assumed that the notification is sent by the
+      VNFM before any action (including sending the grant request) is taken as
+      part of the LCM operation. Due to possible race conditions, the "start"
+      notification, the grant request and the LCM operation acknowledgment can
+      arrive in any order at the NFVO, and the NFVO shall be able to handle
+      such a situation.
+      If this is a notification about a final or intermediate result state of
+      a VNF LCM operation occurrence, the notification shall be sent after
+      all related actions of the LCM operation that led to this state have
+      been executed. The new state shall be set in the VnfLcmOpOcc resource
+      before the notification about the state change is sent.
+    type: object
+    required:
+      - id
+      - notificationType
+      - subscriptionId
+      - timeStamp
+      - notificationStatus
+      - operationState
+      - vnfInstanceId
+      - operation
+      - isAutomaticInvocation
+      - vnfLcmOpOccId
+      - _links
+    properties:
+      id:
+        description: >
+          Identifier of this notification. If a notification is sent multiple
+          times due to multiple subscriptions, the "id" attribute of all these
+          notifications shall have the same value.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      notificationType:
+        description: >
+          Discriminator for the different notification types. Shall be set to
+          "VnfLcmOperationOccurrenceNotification" for this notification type.
+        type: string
+        enum:
+          - VnfLcmOperationOccurrenceNotification
+      subscriptionId:
+        description: >
+          Identifier of the subscription that this notification relates to.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      timeStamp:
+        description: >
+          Date-time of the generation of the notification.
+        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+      notificationStatus:
+        description: >
+          Indicates whether this notification reports about the start of a
+          lifecycle operation or the result of a lifecycle operation.
+          Permitted values:
+          * START: Informs about the start of the VNF LCM operation
+            occurrence.
+          * RESULT: Informs about the final or intermediate result of the VNF
+            LCM operation occurrence.
+        type: string
+        enum:
+          - START
+          - RESULT
+      operationState:
+        description: >
+          The state of the VNF LCM operation occurrence.
+        $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType"
+      vnfInstanceId:
+        description: >
+          The identifier of the VNF instance affected.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      operation:
+        description: >
+          The lifecycle management operation.
+        $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType"
+      isAutomaticInvocation:
+        description: >
+          Set to true if this VNF LCM operation occurrence has been triggered
+          by an automated procedure inside the VNFM
+          (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
+          triggered by auto-heal).
+          Set to false otherwise.
+        type: boolean
+      vnfLcmOpOccId:
+        description: >
+          The identifier of the VNF lifecycle management operation occurrence
+          associated to the notification.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      affectedVnfcs:
+        description: >
+          Information about VNFC instances that were affected during the
+          lifecycle operation.
+          Shall be present if the "notificationStatus" is set to "RESULT" and
+          the operation has performed any resource modification. Shall be
+          absent otherwise. This attribute contains information about the
+          cumulative changes to virtualised resources that were performed so
+          far by the VNF LCM operation occurrence and by any of the error
+          handling procedures for that operation occurrence.
+        type: array
+        items:
+          $ref: "SOL002SOL003_def.yaml#/definitions/AffectedVnfc"
+      affectedVirtualLinks:
+        description: >
+          Information about VL instances that were affected during the
+          lifecycle operation.
+          Shall be present if the "notificationStatus" is set to "RESULT" and
+          the operation has performed any resource modification. Shall be
+          absent otherwise. This attribute contains information about the
+          cumulative changes to virtualised resources that were performed so
+          far by the VNF LCM operation occurrence and by any of the error
+          handling procedures for that operation occurrence.
+        type: array
+        items:
+          $ref: "#/definitions/AffectedVirtualLink"
+      affectedVirtualStorages:
+        description: >
+          Information about virtualised storage instances that were affected
+          during the lifecycle operation.
+          Shall be present if the "notificationStatus" is set to "RESULT" and
+          the operation has performed any resource modification. Shall be
+          absent otherwise. This attribute contains information about the
+          cumulative changes to virtualised resources that were performed so
+          far by the VNF LCM operation occurrence and by any of the error
+          handling procedures for that operation occurrence.
+        type: array
+        items:
+          $ref: "#/definitions/AffectedVirtualStorage"
+      changedInfo:
+        description: >
+          Information about the changed VNF instance information, including
+          changed VNF configurable properties.
+          Shall be present if the "notificationStatus" is set to "RESULT" and
+          the operation has performed any changes to VNF instance information,
+          including VNF configurable properties.
+          Shall be absent otherwise.
+        $ref: "#/definitions/VnfInfoModifications"
+      changedExtConnectivity:
+        description: >
+          Information about changed external connectivity, if this
+          notification represents the result of a lifecycle operation
+          occurrence. Shall be present if the "notificationStatus" is set to
+          "RESULT" and the "operation" is set to "CHANGE_EXT_CONN".
+          Shall be absent otherwise.
+        type: array
+        items:
+          $ref: "#/definitions/ExtVirtualLinkInfo"
+      error:
+        description: >
+          Details of the latest error, if one has occurred during executing
+          the LCM operation. Shall be present if the "operationState"
+          attribute is "FAILED_TEMP" or "FAILED", and shall be absent
+          otherwise.
+        $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+      _links:
+        description: >
+          Links to resources related to this notification.
+        $ref: "#/definitions/LccnLinks"
+
   LccnSubscriptionRequest:
     description: >
       This type represents a subscription request related to notifications
@@ -366,7 +782,7 @@ definitions:
     required:
       - callbackUri
     properties:
-      filter: 
+      filter:
         description: >
           Filter settings for this subscription, to define the subset of all
           notifications this subscription relates to. A particular
@@ -448,7 +864,7 @@ definitions:
           value "VnfLcmOperationOccurrenceNotification", and shall be absent
           otherwise.
         type: array
-        items: 
+        items:
           $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType"
       operationStates:
         description: >
@@ -458,15 +874,14 @@ definitions:
           value "VnfLcmOperationOccurrenceNotification", and shall be absent
           otherwise.
         type: array
-        items: 
+        items:
           $ref: "#/definitions/LcmOperationStateType"
 
   MonitoringParameter:
     type: object
     required:
       - id
-      - value
-      - timeStamp
+      - performanceMetric
     properties:
       id:
         description: >
@@ -477,19 +892,10 @@ definitions:
           Human readable name of the monitoring parameter, as defined in the
           VNFD.
         type: string
-      value:
+      performanceMetric:
         description: >
-          Value of the monitoring parameter known to the VNFM (e.g. obtained
-          for autoscaling purposes).
-          The type of the "value" attribute (i.e. scalar, structure (Object in
-          JSON), or array (of scalars, arrays or structures/Objects)) is
-          assumed to be defined in an external measurement specification.
-        type: object
-      timeStamp:
-        description: >
-          Represents the point in time when the measurement has been performed,
-          as known to the VNFM.
-          Should be formatted according to ETF RFC 3339.
+          Performance metric that is monitored. This attribute shall contain the
+          related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
         type: string
 
   ScaleInfo:
@@ -523,7 +929,7 @@ definitions:
           * SCALE_IN: removing VNFC instances from the VNF in order to release
             unused capacity.
         type: string
-        enum: 
+        enum:
           - SCALE_OUT
           - SCALE_IN
       aspectId:
@@ -551,7 +957,7 @@ definitions:
     type: object
     properties:
       instantiationLevelId:
-        description: > 
+        description: >
           Identifier of the target instantiation level of the current
           deployment flavour to which the VNF is requested to be scaled.
           Either the instantiationLevelId attribute or the scaleInfo attribute
@@ -623,6 +1029,70 @@ definitions:
           Metadata about this resource.
         $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
 
+  VnfExtCpInfo:
+    description: >
+      This type represents information about an external CP of a VNF.
+      It shall comply with the provisions defined in table 5.5.3.25 1.
+    type: object
+    required:
+      - id
+      - cpdId
+      - cpProtocolInfo
+    properties:
+      id:
+        description: >
+          Identifier of the external CP instance and the related information instance.
+        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
+      cpdId:
+        description: >
+          Identifier of the external CPD, VnfExtCpd, in the VNFD.
+        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
+      cpProtocolInfo:
+        description: >
+          Network protocol information for this CP.
+        type: array
+        items:
+          $ref: "#/definitions/CpProtocolInfo"
+      extLinkPortId:
+        description: >
+          Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" structure.
+          Shall be present if the CP is associated to a link port.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      metadata:
+        description: >
+          Metadata about this external CP.
+        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      associatedVnfcCpId:
+        description: >
+          Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents
+          the VNFC CP which is exposed by this external CP instance.
+          Shall be present in case this CP instance maps to a VNFC CP. See note.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      associatedVnfVirtualLinkId:
+        description: >
+          Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL
+          which is exposed by this external CP instance.
+          Shall be present in case this CP instance maps to an internal VL. See note.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+
+  VnfcInfoModifications:
+    description: >
+      This type represents modifications of an entry in an array of "VnfcInfo" objects.
+      It shall comply with the provisions defined in table 5.5.3.24-1.
+    type: object
+    required:
+      - id
+      - vnfcConfigurableProperties
+    properties:
+      id:
+        description: >
+          Identifier of the VNFC instance of which the information is to be modified.
+        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
+      vnfcConfigurableProperties:
+        description: >
+          Changes of the configurable properties of the VNFC instance.
+        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+
   VnfcResourceInfo:
     description: >
       This type represents the information on virtualised compute and storage
@@ -693,9 +1163,13 @@ definitions:
             vnfLinkPortId:
               description: >
                 Identifier of the "vnfLinkPorts" structure in the
-                "vnfVirtualLinkResourceInfo" structure. Shall be present if
+                "VnfVirtualLinkResourceInfo" structure. Shall be present if
                 the CP is associated to a link port.
               $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
+            metadata:
+              description: >
+                Metadata about this CP.
+              $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
       metadata:
         description: >
           Metadata about this resource.
@@ -709,9 +1183,10 @@ definitions:
       This notification shall be triggered by the VNFM when it has created a
       VNF instance resource and the associated VNF instance identifier.
     type: object
-    required: 
+    required:
       - id
       - notificationType
+      - subscriptionId
       - timeStamp
       - vnfInstanceId
       - _links
@@ -752,9 +1227,10 @@ definitions:
       This notification shall be triggered by the VNFM when it has deleted a
       VNF instance resource and the associated VNF instance identifier.
     type: object
-    required: 
+    required:
       - id
       - notificationType
+      - subscriptionId
       - timeStamp
       - vnfInstanceId
       - _links
@@ -831,6 +1307,13 @@ definitions:
         type: array
         items:
           $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
+      vimConnectionInfoDeleteIds:
+        description: >
+          If present, this attribute signals the deletion of certain entries 
+          in the "vimConnectionInfo" attribute array in "VnfInstance".
+        type: array
+        items:
+          $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
       vnfPkgId:
         description: >
           If present, this attribute signals modifications of the "vnfPkgId"
@@ -839,7 +1322,7 @@ definitions:
       vnfdId:
         description: >
           If present, this attribute signals modifications of the "vnfdId"
-          attribute in "VnfInstance". 
+          attribute in "VnfInstance".
           If present, this attribute (which depends on the value of the
           "vnfPkgId" attribute) was modified implicitly following a request to
           modify the "vnfPkgId" attribute, by copying the value of this
@@ -869,7 +1352,7 @@ definitions:
       vnfSoftwareVersion:
         description: >
           If present, this attribute signals modifications of the
-          "vnfSoftwareVersion" attribute in "VnfInstance". 
+          "vnfSoftwareVersion" attribute in "VnfInstance".
         $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
       vnfdVersion:
         description: >
@@ -882,6 +1365,60 @@ definitions:
           "vnfPkgId” attribute.
         $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
 
+  VnfInfoModificationRequest:
+    description: >
+      This type represents attribute modifications for an "Individual VNF instance" resource,
+      i.e. modifications to a resource representation based on the "VnfInstance" data type.
+      The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2
+      are included in the "VnfInfoModificationRequest" data type.
+      The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1.
+    type: object
+    properties:
+      vnfInstanceName:
+        description: >
+          New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute.
+        type: string
+      vnfInstanceDescription:
+        description: >
+          New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute.
+        type: string
+      vnfPkgId:
+        description: >
+          New value of the "vnfPkgId" attribute in "VnfInstance". The value "null" is not permitted.
+        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      vnfConfigurableProperties:
+        description: >
+          Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance".
+          If present, these modifications shall be applied according to the rules of
+          JSON Merge PATCH (see IETF RFC 7396 [15]).
+        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      metadata:
+        description: >
+          Modifications of the "metadattametadata" attribute in "VnfInstance".
+          If present, these modifications shall be applied according to the rules of
+          JSON Merge PATCH (see IETF  RFC  7396  [15]).
+        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      extensions:
+        description: >
+          Modifications of the "extensions" attribute in "VnfInstance".
+          If present, these modifications shall be applied according to the rules of
+          JSON Merge PATCH (see IETF  RFC  7396  [15]).
+        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
+      vnfcInfoModifications:
+        description: >
+          Modifications of certain entries in the "vnfcInfo" attribute array in the
+          "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table.
+        type: array
+        items:
+          $ref: "#/definitions/VnfcInfoModifications"
+      vnfcInfoModificationsDeleteIds:
+        description: >
+          List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array
+          to be used as "deleteIdList" as defined below this table.
+        type: array
+        items:
+          $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+
   VnfInstance:
     description: >
       This type represents a VNF instance.
@@ -1018,32 +1555,7 @@ definitions:
             type: array
             minItems: 1
             items:
-              type: object
-              required:
-                - id
-                - cpdId
-              properties:
-                id:
-                  description: >
-                    Identifier of the external CP instance and the related information
-                    instance.
-                  $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
-                cpdId:
-                  description: >
-                    Identifier of the external CPD, VnfExtCpd, in the VNFD.
-                  $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
-                cpProtocolInfo:
-                  description: >
-                    Network protocol information for this CP.
-                  type: array
-                  items:
-                    $ref: "#/definitions/CpProtocolInfo"
-                extLinkPortId:
-                  description: >
-                    Identifier of the "extLinkPortInfo" structure inside the  the
-                    "extVirtualLinkInfo" structure. Shall be present if the CP is
-                    associated to a link port.
-                  $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+              $ref: "#/definitions/VnfExtCpInfo"
           extVirtualLinkInfo:
             description: >
               Information about the external VLs the VNF instance is connected to.
@@ -1202,6 +1714,17 @@ definitions:
           The value refers to an "extCpInfo" item in the VnfInstance or a
           "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance.
         $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
+      cpInstanceType:
+        description: >
+          Type of the CP instance that is identified by cpInstanceId.
+          Shall be present if "cpInstanceId" is present, and shall be absent otherwise.
+          Permitted values:
+          VNFC_CP: The link port is connected to a VNFC CP
+          EXT_CP: The link port is associated to an external CP.
+        type: string
+        enum:
+          - VNFC_CP
+          - EXT_CP
 
   VnfOperationalStateType:
     type: string
diff --git a/src/definitions/SOL002SOL003VNFLifecycleOperationGranting_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleOperationGranting_def.yaml
deleted file mode 100644
index 60a53347a047fce7baa15c7b042bb8aa0384112a..0000000000000000000000000000000000000000
--- a/src/definitions/SOL002SOL003VNFLifecycleOperationGranting_def.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) ETSI 2017.
-# https://forge.etsi.org/etsi-forge-copyright-notice.txt
-
-definitions:
-
-
-
-
-
diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml
index 29edde1dd2df9d399f790a2b776077573689668d..8e8e25f6be2d4c6a80c94c6ee9c7aa1c87250dd7 100644
--- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml
+++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml
@@ -9,7 +9,7 @@ definitions:
     required:
       - objectInstanceId
       - criteria
-    properties: 
+    properties:
       objectInstanceId:
         description: >
           Identifier of the VNF instance associated with this threshold.
@@ -40,7 +40,7 @@ definitions:
 
   CrossingDirectionType:
     type: string
-    enum: 
+    enum:
       - UP
       - DOWN
 
@@ -53,15 +53,15 @@ definitions:
       The notification shall be triggered by the VNFM when new performance
       information collected by a PM job is available.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
       - timeStamp
       - objectInstanceId
       - _links
-    properties: 
-      id: 
+    properties:
+      id:
         description: >
           Identifier of this notification. If a notification is sent multiple
           times due to multiple subscriptions, the "id" attribute of all these
@@ -73,7 +73,7 @@ definitions:
           "PerformanceInformationAvailableNotification" for this notification
           type.
         type: string
-        enum: 
+        enum:
           - PerformanceInformationAvailableNotification
       subscriptionId:
         description: >
@@ -91,7 +91,7 @@ definitions:
         description: >
           Links to resources related to this notification.
         type: object
-        required: 
+        required:
           - subscription
           - pmJob
           - performanceReport
@@ -99,24 +99,97 @@ definitions:
           subscription:
             description: >
               Link to the related subscription.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           objectInstance:
             description: >
               Link to the resource representing the VNF instance to which the
               notified change applies. Shall be present if the VNF instance
               information is accessible as a resource.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           pmJob:
             description: >
               Link to the resource that represents the PM job for which
               performance information is available.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           performanceReport:
             description: >
               Link from which the available performance information of data
               type "PerformanceReport" can be obtained. This link should point
               to an "Individual performance report" resource.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
+
+  PerformanceReport:
+    description: >
+      This type defines the format of a performance report provided by the VNFM to the EM as a result
+      of collecting performance information as part of a PM job.
+      The type shall comply with the provisions defined in table 6.5.2.10-1.
+    type: object
+    properties:
+      entries:
+        description: >
+          List of performance information entries. Each performance report
+          entry is for a given metric of a given object (i.e. VNF instance),
+          but can include multiple collected values.
+        type: array
+        items:
+          type: object
+          required:
+            - objectType
+            - objectInstanceId
+            - performanceMetric
+            - performanceValue
+          properties:
+            objectType:
+              description: >
+                Defines the object type for which performance information is
+                reported (i.e. VNF type). The string value shall be set to the
+                vnfdId of the VNF instance to which the performance
+                information relates.
+              type: string
+            objectInstanceId:
+              description: >
+                The object instance (i.e. VNF instance) for which the
+                performance metric is reported.
+              $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+            subObjectInstanceId:
+              description: >
+                Identifier of the sub-object of the measured object (i.e. a VNFC instance)
+                for which the performance metric is reported.
+                Shall be present if this is required in the measurement specification.
+                The sub-object allows to structure the measured object,
+                but is not to be confused with sub-counters which allow to structure the measurement.
+                EXAMPLE:
+                  Measured object:  VnfInstanceXYZ
+                  Sub-object:       VnfcInstance1
+                  Measurement:      vCPU_utilization
+                  Sub-counters:     vCPU utilization of each of the vCPUs of VnfcInstance1
+                                    (vCPU_utilization.vCPU1, vCPU_utilization.vCPU2, etc.).
+              $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
+            performanceMetric:
+              description: >
+                Name of the metric collected. This attribute shall contain the related "Measurement Name"
+                value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
+              type: string
+            performanceValues:
+              description: >
+                List of performance values with associated timestamp.
+              type: array
+              items:
+                type: object
+                required:
+                  - timeStamp
+                  - performanceValue
+                properties:
+                  timeStamp:
+                    description: >
+                      Time stamp indicating when the data was collected.
+                    $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
+                  value:
+                    description: >
+                      Value of the metric collected.
+                      The type of this attribute shall correspond to the related "Measurement Unit"
+                      as defined in clause 7.2. of ETSI GS NFV-IFA 027.
+                    type: object
 
   PmJob:
     description: >
@@ -182,12 +255,23 @@ definitions:
             $ref: "SOL002SOL003_def.yaml#/definitions/Link"
           objects:
             description: >
-              Links to resources representing the VNF instances for which
-              performance information is collected. Shall be present if
-              the VNF instance information is accessible as a resource.
-            type: array
-            items: 
-              $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+              Links for this resource.
+            type: object
+            required:
+              - self
+            properties:
+              self:
+                description: >
+                  URI of this resource.
+                $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+              objects:
+                description: >
+                  Links to resources representing the VNF instances for which
+                  performance information is collected. Shall be present if
+                  the VNF instance information is accessible as a resource.
+                type: array
+                items:
+                  $ref: "SOL002SOL003_def.yaml#/definitions/Link"
 
   PmJobCriteria:
     description: >
@@ -199,22 +283,22 @@ definitions:
     properties:
       performanceMetric:
         description: >
-          This defines the types of performance metrics for the specified
-          object instances, as specified in ETSI GS NFV-IFA 027). At least one
-          of the two attributes (performance metric or group) shall be
-          present.
+          This defines the types of performance metrics for the specified object instances.
+          Valid values are specified as "Measurement Name" values in clause 7.2 of ETSI GS NFV-IFA 027.
+          At least one of the two attributes (performance metric or group) shall be present.
         type: array
-        items: 
+        items:
           type: string
       performanceMetricGroup:
         description: >
           Group of performance metrics. A metric group is a pre-defined list
           of metrics, known to the producer that it can decompose to
-          individual metrics.
+          individual metrics. Valid values are specified as "Measurement Group"
+          values in clause 7.2 of ETSI GS NFV-IFA 027.
           At least one of the two attributes (performance metric or group)
           shall be present.
         type: array
-        items: 
+        items:
           type: string
       collectionPeriod:
         description: >
@@ -254,7 +338,7 @@ definitions:
       This type represents a filter that can be used to subscribe for
       notifications related to performance management events.
     type: object
-    properties: 
+    properties:
       vnfInstanceSubscriptionFilter:
         description: >
           Filter criteria to select VNF instances about which to notify.
@@ -269,7 +353,7 @@ definitions:
           spelled exactly as the names of the notification types to facilitate
           automated code generation systems.
         type: string
-        enum: 
+        enum:
           - ThresholdCrossedNotification
           - PerformanceInformationAvailableNotification
 
@@ -277,11 +361,11 @@ definitions:
     description: >
       This type represents a subscription.
     type: object
-    required: 
+    required:
       - id
       - callbackUri
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier that identifies the subscription.
@@ -314,7 +398,7 @@ definitions:
     description: >
       This type represents a subscription request.
     type: object
-    required: 
+    required:
       - callbackUri
     properties:
       filter:
@@ -341,12 +425,12 @@ definitions:
     description: >
       This type represents a threshold.
     type: object
-    required: 
+    required:
       - id
       - objectInstanceId
       - criteria
       - _links
-    properties: 
+    properties:
       id:
         description: >
           Identifier of this threshold resource.
@@ -363,14 +447,14 @@ definitions:
         description: >
           Links for this resource.
         type: object
-        required: 
+        required:
           - self
-        properties: 
+        properties:
           self:
             description: >
               URI of this resource.
             $ref: "SOL002SOL003_def.yaml#/definitions/Link"
-          object: 
+          object:
             description: >
               Link to a resource representing the VNF instance for which
               performance information is collected. Shall be present if the
@@ -380,14 +464,14 @@ definitions:
     description: >
       This type represents criteria that define a threshold.
     type: object
-    required: 
+    required:
       - performanceMetric
       - thresholdType
-    properties: 
+    properties:
       performanceMetric:
         description: >
-          Defines the performance metric associated with the
-          threshold, as specified in ETSI GS NFV-IFA 027).
+          Defines the performance metric associated with the threshold.
+          Valid values are specified as "Measurement Name" values in clause 7.2 of ETSI GS NFV-IFA 027.
         type: string
       thresholdType:
         description: >
@@ -406,10 +490,10 @@ definitions:
           Details of a simple threshold. Shall be present if
           thresholdType="SIMPLE".
         type: object
-        required: 
+        required:
           - thresholdValue
           - hysteresis
-        properties: 
+        properties:
           thresholdValue:
             description: >
               The threshold value. Shall be represented as a floating point
@@ -440,7 +524,7 @@ definitions:
       The notification shall be triggered by the VNFM when a threshold has
       been crossed.
     type: object
-    required: 
+    required:
       - id
       - notificationType
       - subscriptionId
@@ -451,19 +535,19 @@ definitions:
       - performanceMetric
       - performanceValue
       - _links
-    properties: 
-      id: 
+    properties:
+      id:
         description: >
           Identifier of this notification. If a notification is sent multiple
           times due to multiple subscriptions, the "id" attribute of all these
           notifications shall have the same value.
         $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
-      notificationType: 
+      notificationType:
         description: >
           Discriminator for the different notification types. Shall be set to
           "ThresholdCrossedNotification" for this notification type.
         type: string
-        enum: 
+        enum:
           - ThresholdCrossedNotification
       subscriptionId:
         description: >
@@ -486,38 +570,46 @@ definitions:
         description: >
           Identifier that identifies a VNF instance.
         $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
+      subObjectInstanceId:
+        description: >
+          Identifier of the sub-object of the measured object (i.e. a VNFC instance)
+          to which the measurement applies.
+          Shall be present if this is required in an external measurement specification.
+          The sub-object allows to structure the measured object, but is not to be confused
+          with sub-counters which allow to structure the measurement.
+        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
       performanceMetric:
         description: >
           Performance metric associated with the threshold.
+          This attribute shall contain the related "Measurement Name"
+          value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
         type: string
       performanceValue:
         description: >
           Value of the metric that resulted in threshold crossing.
-          The type of the "performanceValue" attribute (i.e. scalar, structure
-          (Object in JSON), or array (of scalars, arrays or
-          structures / Objects)) is assumed to be defined in the external
-          measurement specification (see ETSI GS NFV-IFA 027).
+          The type of this attribute shall correspond to the related
+          "Measurement Unit" as defined in clause 7.2 of ETSI GS NFV-IFA 027.
         type: object
       _links:
         description: >
           Links to resources related to this notification.
         type: object
-        required: 
+        required:
           - subscription
           - threshold
-        properties: 
+        properties:
           subscription:
             description: >
               Link to the related subscription.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           objectInstance:
             description: >
               Link to the resource representing the VNF instance to which the
               notified change applies. Shall be present if the VNF instance
               information is accessible as a resource.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
           threshold:
             description: >
               Link to the resource that represents the threshold that was
               crossed.
-            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
+            $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml
index b3b804f24f74d7678d9464cd9e40ade95937008b..81f187611105c4384d2c731e26c9a1a90454b8ce 100644
--- a/src/definitions/SOL002SOL003_def.yaml
+++ b/src/definitions/SOL002SOL003_def.yaml
@@ -2,124 +2,275 @@
 # https://forge.etsi.org/etsi-forge-copyright-notice.txt
 
 definitions:
-
-  AffectedVnfc:
+  Link:
     description: >
-      This type provides information about added, deleted, modified and
-      temporary VNFCs.  
+      This type represents a link to a resource using an absolute URI.
+      It shall comply with the provisions defined in table  4.4.1.3-1.
     type: object
     required:
-      - id
-      - vduId
-      - changeType
-      - computeResource
+      - href
     properties:
-      id:
-        description: >
-          Identifier of the Vnfc instance, identifying the applicable
-          "vnfcResourceInfo" entry in the "VnfInstance" data type.
-        $ref: "#/definitions/IdentifierInVnf"
-      vduId:
-        description: >
-          Identifier of the related VDU in the VNFD.
-        $ref: "#/definitions/IdentifierInVnfd"
-      changeType:
+      href:
         description: >
-          Signals the type of change. Permitted values:
-          * ADDED
-          * REMOVED
-          * MODIFIED
-          * TEMPORARY
-          For a temporary resource, an AffectedVnfc structure exists as long
-          as the temporary resource exists.
-        type: string
-        enum:
-          - ADDED
-          - REMOVED
-          - MODIFIED
-          - TEMPORARY
-      computeResource:
+          URI of another resource referenced from a resource.
+          Shall be an absolute URI (i.e. a UTI that contains {apiRoot}.
+        $ref: "#/definitions/Uri"
+
+  NotificationLink:
+    description: >
+      This type represents a link to a resource in a notification,
+      using an absolute or relative URI. It shall comply with the
+      provisions defined in table 4.4.1.3a-1.
+    type: object
+    required:
+      - href
+    properties:
+      href:
         description: >
-          Reference to the VirtualCompute resource. Detailed information is
-          (for new and modified resources) or has been (for removed
-          resources) available from the VIM.
-        $ref: "#/definitions/ResourceHandle"
-      metadata:
+          URI of a resource referenced from a notification.
+          Should be an absolute URI (i.e. a URI that contains
+          {apiRoot}), however, may be a relative URI (i.e. a URI
+          where the {apiRoot} part is omitted) if the {apiRoot}
+          information is not available.
+        $ref: "#/definitions/Uri"
+
+  KeyValuePairs:
+    description: >
+      This type represents a list of key-value pairs. The order of the pairs in the list is not significant.
+      In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions
+      defined in clause 4 of IETF RFC 7159.
+    type: object
+
+  VnfInstanceSubscriptionFilter:
+    description: >
+      This type represents subscription filter criteria to match VNF
+      instances.
+    type: object
+    properties:
+      vnfdIds:
         description: >
-          Metadata about this resource.
-          The content of this attribute shall be a copy of the content of the
-          "metadata" attribute of the VnfcResourceInfo structure.
-        $ref: "#/definitions/KeyValuePairs"
-      affectedVnfcCpIds:
+          If present, match VNF instances that were created based on a VNFD
+          identified by one of the vnfdId values listed in this attribute.
+          The attributes "vnfdIds" and "vnfProductsFromProviders" are
+          alternatives to reference to VNF instances that are based on certain
+          VNFDs in a filter. They should not be used both in the same filter
+          instance, but one alternative should be chosen.
+        type: array
+        items:
+          $ref: "#/definitions/Identifier"
+      vnfProductsFromProviders:
         description: >
-          Identifiers of CP(s) of the VNFC instance that were affected by the
-          change. 
-          Shall be present for those affected CPs of the VNFC instance that
-          are associated to an external CP of the VNF instance.
-          May be present for further affected CPs of the VNFC instance.
+          If present, match VNF instances that belong to VNF products from
+          certain providers.
+          The attributes "vnfdIds" and "vnfProductsFromProviders" are
+          alternatives to reference to VNF instances that are based on certain
+          VNFDs in a filter. They should not be used both in the same filter
+          instance, but one alternative should be chosen.
         type: array
-        items: 
-          $ref: "#/definitions/IdentifierInVnf"
-      addedStorageResourceIds:
+        items:
+          type: object
+          required:
+            - vnfProvider
+          properties:
+            vnfProvider:
+              description: >
+                Name of the VNF provider to match.
+              type: string
+            vnfProducts:
+              description: >
+                If present, match VNF instances that belong to VNF products
+                with certain product names, from one particular provider.
+              type: array
+              items:
+                type: object
+                required:
+                  - vnfProductName
+                properties:
+                  vnfProductName:
+                    description: >
+                      Name of the VNF product to match.
+                    type: string
+                  versions:
+                    description: >
+                      If present, match VNF instances that belong to VNF
+                      products with certain versions and a certain product
+                      name, from one particular provider.
+                    type: array
+                    items:
+                      type: object
+                      required:
+                        - vnfSoftwareVersion
+                      properties:
+                        vnfSoftwareVersion:
+                          description: >
+                            Software version to match.
+                          $ref: "#/definitions/Version"
+                        vnfdVersions:
+                          description: >
+                            If present, match VNF instances that belong to VNF
+                            products with certain VNFD versions, a certain
+                            software version and a certain product name, from
+                            one particular provider.
+                          type: array
+                          items:
+                            $ref: "#/definitions/Version"
+      vnfInstanceIds:
         description: >
-          References to VirtualStorage resources that have been added. Each
-          value refers to a VirtualStorageResourceInfo item in the
-          VnfInstance that was added to the VNFC. It shall be provided if at
-          least one storage resource was added to the VNFC.
+          If present, match VNF instances with an instance identifier listed
+          in this attribute.
+          The attributes "vnfInstanceIds" and "vnfInstanceNames" are
+          alternatives to reference to particular VNF Instances in a filter.
+          They should not be used both in the same filter instance, but one
+          alternative should be chosen.
         type: array
-        items: 
-          $ref: "#/definitions/IdentifierInVnf"
-      removedStorageResourceIds:
+        items:
+          $ref: "#/definitions/Identifier"
+      vnfInstanceNames:
         description: >
-          References to VirtualStorage resources that have been removed.
-          The value contains the identifier of a VirtualStorageResourceInfo
-          item that has been removed from the VNFC, and might no longer exist
-          in the VnfInstance.
-          It shall be provided if at least one storage resource was removed
-          from the VNFC.
+          If present, match VNF instances with a VNF Instance Name listed in
+          this attribute.
+          The attributes "vnfInstanceIds" and "vnfInstanceNames" are
+          alternatives to reference to particular VNF Instances in a filter.
+          They should not be used both in the same filter instance, but one
+          alternative should be chosen.
         type: array
-        items: 
-          $ref: "#/definitions/IdentifierInVnf"
+        items:
+          type: string
 
-  Link:
+  ApiVersionInformation:
     description: >
-      This type represents a link to a resource.
+      This type represents API version information. It shall comply with the
+      provisions defined in table 4.4.1.13-1 (SOL003).
     type: object
     required:
-      - href
+      - uriPrefix
+      - apiVersions
     properties:
-      href:
+      uriPrefix:
         description: >
-          URI of the referenced resource.
+          Specifies the URI prefix for the API, in the following
+          form {apiRoot}/{apiName}/{apiMajorVersion}/
         type: string
-        format: url
+      apiVersions:
+        description: >
+          Version(s) supported for the API signaled by the
+          uriPrefix attribute.
+        type: array
+        items:
+          type: object
+          required:
+            - version
+          properties:
+            version:
+              description: >
+                Identifies a supported version. The value of the
+                version attribute shall be a version identifier as
+                specified in clause 4.6.1.
+              type: string
+            isDeprecated:
+              description: >
+                If such information is available, this attribute
+                indicates whether use of the version signaled by the
+                version attribute is deprecated (true) or not (false).
+                A deprecated version is still supported by the API producer
+                but is recommended not to be used any longer.
+                When a version is no longer supported, it does not appear in
+                the response body.
+              type: boolean
+            retirementDate:
+              description: >
+                The date and time after which the API version will no
+                longer be supported.
+                This attribute may be included if the value of the
+                isDeprecated attribute is set to true and shall be
+                absent otherwise.
+              $ref: "#/definitions/DateTime"
 
-  Version:
+  Identifier:
     description: >
-      A version.
+      An identifier with the intention of being globally unique.
+    type: string
+
+  IdentifierInVnfd:
+    description: >
+      An identifier that is unique within a VNF descriptor.
+    type: string
+
+  IdentifierInVim:
+    description: >
+      An identifier maintained by the VIM or other resource provider. It is
+      expected to be unique within the VIM instance.
+    type: string
+
+  IdentifierInVnf:
+    description: >
+      An identifier that is unique for the respective type within a VNF
+      instance, but may not be globally unique.
+    type: string
+
+  IdentifierLocal:
+    description: >
+      An identifier that is unique within a limited local scope other than above listed identifiers,
+      such as within a complex data structure or within a request-response pair.
+      Representation: string of variable length.
     type: string
 
+  DateTime:
+    description: >
+      Date-time stamp.
+      Representation: String formatted according to IETF RFC 3339.
+    type: string
+    format: date-time
+
+  Uri:
+    description: >
+      String formatted according to IETF RFC 3986.
+    type: string
+
+  Boolean:
+    description: >
+      The Boolean is a data type having two values (true and false).
+    type: boolean
+
   MacAddress:
     description: >
-      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
+      A MAC address. Representation: string that consists of groups of two hexadecimal digits,
+      separated by hyphens or colons.
     type: string
     format: MAC
 
   IpAddress:
     description: >
       An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal
-      integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that 
+      integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that
       consists of groups of zero to four hexadecimal digits, separated by colons.
     type: string
     format: IP
 
+  Version:
+    description: >
+      A version.
+    type: string
+
+  String:
+    description: >
+      A string defined in IETF RFC 8259.
+    type: string
+
+  Number:
+    description: >
+      A number defined in IETF RFC 8259.
+    type: number
+
+########################################################################################################################
+# TO CHECK IF INCLUDE THESE DATA TYPES IN ANOTHER DEF FILES
   CpProtocolData:
     description: >
       This type represents network protocol data. 
     type: object
-    required: 
+    required:
       - layerProtocol
-    properties: 
+    properties:
       layerProtocol:
         description: >
           Identifier of layer(s) and protocol(s).
@@ -128,7 +279,7 @@ definitions:
           backwards-compatible way. In the current version of the present
           document, only IP over Ethernet is supported.
         type: string
-        enum: 
+        enum:
           - IP_OVER_ETHERNET
       ipOverEthernet:
         description: >
@@ -137,19 +288,14 @@ definitions:
           "IP_OVER_ETHERNET", and shall be absent otherwise.
         $ref: "#/definitions/IpOverEthernetAddressData"
 
-  DateTime:
-    description: >
-      Date-time stamp. 
-      Representation: String formatted according to IETF RFC 3339.
-    type: string
-    format: "date-time"
+
 
   ExtLinkPortData:
     description: >
       This type represents an externally provided link port to be used to
       connect an external connection point to an external VL.
     type: object
-    required: 
+    required:
       - id
       - resourceHandle
     properties:
@@ -176,7 +322,7 @@ definitions:
           identifier is assigned by the NFV-MANO entity that manages this VL
           instance.
         $ref: "#/definitions/Identifier"
-      virtualLinkDescId:
+      vnfVirtualLinkDescId:
         description: >
           The identifier of the VLD in the VNFD for this VL.
         $ref: "#/definitions/IdentifierInVnfd"
@@ -207,8 +353,8 @@ definitions:
       - id
       - resourceId
       - extCps
-    properties: 
-      id: 
+    properties:
+      id:
         description: >
           The identifier of the external VL instance. The identifier is
           assigned by the NFV-MANO entity that manages this VL instance.
@@ -219,7 +365,7 @@ definitions:
           attribute shall only be supported and present if VNF-related
           resource management in direct mode is applicable.
         $ref: "#/definitions/Identifier"
-      resourceProviderId: 
+      resourceProviderId:
         description: >
           Identifies the entity responsible for the management of this
           resource. This attribute shall only be supported and present
@@ -227,7 +373,7 @@ definitions:
           The identification scheme is outside the scope of the present
           document.
         $ref: "#/definitions/Identifier"
-      resourceId: 
+      resourceId:
         description: >
           The identifier of the resource in the scope of the VIM or the
           resource provider.
@@ -236,7 +382,7 @@ definitions:
         description: >
           External CPs of the VNF to be connected to this external VL.
         type: array
-        items: 
+        items:
           $ref: "#/definitions/VnfExtCpData"
       extLinkPorts:
         description: >
@@ -244,37 +390,40 @@ definitions:
           connection points to this external VL. If this attribute is not
           present, the VNFM shall create the link ports on the external VL. 
         type: array
-        items: 
+        items:
           $ref: "#/definitions/ExtLinkPortData"
 
-  Identifier:
-    description: >
-      An identifier with the intention of being globally unique.
-    type: string
-
-  IdentifierInVim:
-    description: >
-      An identifier maintained by the VIM or other resource provider. It is
-      expected to be unique within the VIM instance.
-    type: string
-
-  IdentifierInVnf:
-    description: >
-      An identifier that is unique for the respective type within a VNF
-      instance, but may not be globally unique.
-    type: string
-
-  IdentifierInVnfd:
+  GrantedLcmOperationType:
     description: >
-      An identifier that is unique within a VNF descriptor.
+      The enumeration GrantedLcmOperationType defines the permitted values 
+      to represent VNF lifecycle operation types in grant requests.
+      Value | Description
+      ------|------------
+      INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
+      SCALE | Represents the "Scale VNF" LCM operation.
+      SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
+      CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
+      TERMINATE | Represents the "Terminate VNF" LCM operation.
+      HEAL | Represents the "Heal VNF" LCM operation.
+      OPERATE | Represents the "Operate VNF" LCM operation.
+      CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.     
     type: string
+    enum:
+      - INSTANTIATE
+      - SCALE
+      - SCALE_TO_LEVEL
+      - CHANGE_FLAVOUR
+      - TERMINATE
+      - HEAL
+      - OPERATE
+      - CHANGE_EXT_CONN
 
   IpOverEthernetAddressData:
     description: >
       This type represents network address data for IP over Ethernet.
     type: object
     properties:
-      macAddress: 
+      macAddress:
         description: >
           MAC address. If this attribute is not present, it shall be chosen by
           the VIM.
@@ -289,9 +438,9 @@ definitions:
         type: array
         items:
           type: object
-          required: 
+          required:
             - type
-          properties: 
+          properties:
             type:
               description: >
                 The type of the IP addresses.
@@ -307,7 +456,7 @@ definitions:
                 Exactly one of "fixedAddresses", "numDynamicAddresses" or
                 "ipAddressRange" shall be present.
               type: array
-              items: 
+              items:
                 $ref: "#/definitions/IpAddress"
             numDynamicAddresses:
               description: >
@@ -326,7 +475,7 @@ definitions:
               required:
                 - minAddress
                 - maxAddress
-              properties: 
+              properties:
                 minAddress:
                   description: >
                     Lowest IP address belonging to the range.
@@ -344,13 +493,6 @@ definitions:
                 a subnet will be assigned.
               $ref: "#/definitions/IdentifierInVim"
 
-  KeyValuePairs:
-    description: >
-      This type represents a list of key-value pairs. The order of the pairs in the list is not significant.
-      In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions 
-      defined in clause 4 of IETF RFC 7159. 
-    type: object
-
   LcmOperationType:
     description: >
       Value | Description
@@ -374,7 +516,7 @@ definitions:
       - HEAL
       - OPERATE
       - CHANGE_EXT_CONN
-      - MODIFY_INFO      
+      - MODIFY_INFO
 
   ProblemDetails:
     #SOL003 location: 4.3.5.3
@@ -475,9 +617,9 @@ definitions:
 
   SubscriptionAuthentication:
     type: object
-    required: 
+    required:
       - authType
-    properties: 
+    properties:
       authType:
         description: >
           Defines the types of Authentication / Authorization which the API
@@ -493,7 +635,7 @@ definitions:
             server is authenticated, but also the client is authenticated
             during the TLS tunnel setup.
         type: array
-        items: 
+        items:
           type: string
           enum:
             - BASIC
@@ -554,11 +696,6 @@ definitions:
               Shall be present if it has not been provisioned out of band.
             $ref: "#/definitions/Uri"
 
-  Uri:
-    description: >
-      String formatted according to IETF RFC 3986.
-    type: string
-
   VimConnectionInfo:
     description: >
       This type represents parameters to connect to a VIM for managing the
@@ -696,9 +833,9 @@ definitions:
       This type represents configuration information for external CPs created
       from a CPD.
     type: object
-    required: 
+    required:
       - cpdId
-    properties: 
+    properties:
       cpdId:
         description: >
           The identifier of the CPD in the VNFD.
@@ -711,262 +848,80 @@ definitions:
         items:
           $ref: "#/definitions/VnfExtCpConfig"
 
-  VnfInstanceSubscriptionFilter:
-    description: >
-      This type represents subscription filter criteria to match VNF
-      instances.
-    type: object
-    properties:
-      vnfdIds:
-        description: >
-          If present, match VNF instances that were created based on a VNFD
-          identified by one of the vnfdId values listed in this attribute.
-          The attributes "vnfdIds" and "vnfProductsFromProviders" are
-          alternatives to reference to VNF instances that are based on certain
-          VNFDs in a filter. They should not be used both in the same filter
-          instance, but one alternative should be chosen.
-        type: array
-        items:
-          $ref: "#/definitions/Identifier"
-      vnfProductsFromProviders:
-        description: >
-          If present, match VNF instances that belong to VNF products from
-          certain providers.
-          The attributes "vnfdIds" and "vnfProductsFromProviders" are
-          alternatives to reference to VNF instances that are based on certain
-          VNFDs in a filter. They should not be used both in the same filter
-          instance, but one alternative should be chosen.
-        type: array
-        items:
-          type: object
-          required:
-            - vnfProvider
-          properties:
-            vnfProvider:
-              description: >
-                Name of the VNF provider to match.
-              type: string
-            vnfProducts:
-              description: >
-                If present, match VNF instances that belong to VNF products
-                with certain product names, from one particular provider.
-              type: array
-              items: 
-                type: object
-                required:
-                  - vnfProductName
-                properties:
-                  vnfProductName:
-                    description: >
-                      Name of the VNF product to match.
-                    type: string
-                  versions:
-                    description: >
-                      If present, match VNF instances that belong to VNF
-                      products with certain versions and a certain product
-                      name, from one particular provider.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - vnfSoftwareVersion
-                      properties:
-                        vnfSoftwareVersion:
-                          description: >
-                            Software version to match.
-                          $ref: "#/definitions/Version"
-                        vnfdVersions:
-                          description: >
-                            If present, match VNF instances that belong to VNF
-                            products with certain VNFD versions, a certain
-                            software version and a certain product name, from
-                            one particular provider.
-                          type: array
-                          items: 
-                            $ref: "#/definitions/Version"
-      vnfInstanceIds:
-        description: >
-          If present, match VNF instances with an instance identifier listed
-          in this attribute.
-          The attributes "vnfInstanceIds" and "vnfInstanceNames" are
-          alternatives to reference to particular VNF Instances in a filter.
-          They should not be used both in the same filter instance, but one
-          alternative should be chosen.
-        type: array
-        items: 
-          $ref: "#/definitions/Identifier"
-      vnfInstanceNames:
-        description: >
-          If present, match VNF instances with a VNF Instance Name listed in
-          this attribute.
-          The attributes "vnfInstanceIds" and "vnfInstanceNames" are
-          alternatives to reference to particular VNF Instances in a filter.
-          They should not be used both in the same filter instance, but one
-          alternative should be chosen.
-        type: array
-        items: 
-          type: string
-
-  Alarm:
+  AffectedVnfc:
     description: >
-      The alarm data type encapsulates information about an alarm.
+      This type provides information about added, deleted, modified and
+      temporary VNFCs.
     type: object
     required:
       - id
-      - managedObjectId
-      - rootCauseFaultyResource
-      - alarmRaisedTime
-      - ackState
-      - perceivedSeverity
-      - eventTime
-      - eventType
-      - probableCause
-      - isRootCause
-      - _links
+      - vduId
+      - changeType
+      - computeResource
     properties:
       id:
         description: >
-          Identifier of this Alarm information element.
-        $ref: "#/definitions/Identifier"
-      managedObjectId:
-        description: >
-          Identifier of the affected VNF instance.
-        $ref: "#/definitions/Identifier"
-      rootCauseFaultyResource:
-        description: >
-          The virtualised resources that are causing the VNF fault.
-        $ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceInfo"
-      alarmRaisedTime:
-        description: >
-          Time stamp indicating when the alarm is raised by the managed
-          object.
-        $ref: "#/definitions/DateTime"
-      alarmChangedTime:
-        description: >
-          Time stamp indicating when the alarm was last changed. It shall be
-          present if the alarm has been updated.
-        $ref: "#/definitions/DateTime"
-      alarmClearedTime:
+          Identifier of the Vnfc instance, identifying the applicable
+          "vnfcResourceInfo" entry in the "VnfInstance" data type.
+        $ref: "#/definitions/IdentifierInVnf"
+      vduId:
         description: >
-          Time stamp indicating when the alarm was cleared. It shall be
-          present if the alarm has been cleared.
-        $ref: "#/definitions/DateTime"
-      ackState:
+          Identifier of the related VDU in the VNFD.
+        $ref: "#/definitions/IdentifierInVnfd"
+      changeType:
         description: >
-          Acknowledgement state of the alarm.
-          Permitted values:
-          * UNACKNOWLEDGED
-          * ACKNOWLEDGED.
+          Signals the type of change. Permitted values:
+          * ADDED
+          * REMOVED
+          * MODIFIED
+          * TEMPORARY
+          For a temporary resource, an AffectedVnfc structure exists as long
+          as the temporary resource exists.
         type: string
         enum:
-          - UNACKNOWLEDGED
-          - ACKNOWLEDGED
-      perceivedSeverity:
-        description: >
-          Perceived severity of the managed object failure.
-        $ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
-      eventTime:
-        description: >
-          Time stamp indicating when the fault was observed.
-        $ref: "#/definitions/DateTime"
-      eventType:
-        description: >
-          Type of event.
-        $ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
-      faultType:
-        description: >
-          Additional information to clarify the type of the fault.
-        type: string
-      probableCause:
+          - ADDED
+          - REMOVED
+          - MODIFIED
+          - TEMPORARY
+      computeResource:
         description: >
-          Information about the probable cause of the fault.
-        type: string
-      isRootCause:
+          Reference to the VirtualCompute resource. Detailed information is
+          (for new and modified resources) or has been (for removed
+          resources) available from the VIM.
+        $ref: "#/definitions/ResourceHandle"
+      metadata:
         description: >
-          Attribute indicating if this fault is the root for other correlated
-          alarms. If TRUE, then the alarms listed in the attribute
-          CorrelatedAlarmId are caused by this fault.
-        type: boolean
-      correlatedAlarmIds:
+          Metadata about this resource.
+          The content of this attribute shall be a copy of the content of the
+          "metadata" attribute of the VnfcResourceInfo structure.
+        $ref: "#/definitions/KeyValuePairs"
+      affectedVnfcCpIds:
         description: >
-          List of identifiers of other alarms correlated to this fault.
+          Identifiers of CP(s) of the VNFC instance that were affected by the
+          change.
+          Shall be present for those affected CPs of the VNFC instance that
+          are associated to an external CP of the VNF instance.
+          May be present for further affected CPs of the VNFC instance.
         type: array
         items:
-          $ref: "#/definitions/Identifier"
-      faultDetails:
+          $ref: "#/definitions/IdentifierInVnf"
+      addedStorageResourceIds:
         description: >
-          Provides additional information about the fault.
+          References to VirtualStorage resources that have been added. Each
+          value refers to a VirtualStorageResourceInfo item in the
+          VnfInstance that was added to the VNFC. It shall be provided if at
+          least one storage resource was added to the VNFC.
         type: array
         items:
-          type: string
-      _links:
-        description: >
-          Links for this resource.
-        type: object
-        required:
-          - self
-        properties:
-          self:
-            description: >
-              URI of this resource.
-            $ref: "#/definitions/Link"
-          objectInstance:
-            description: >
-              Link to the resource representing the VNF instance to which the
-              notified alarm is correlated. Shall be present if the VNF
-              instance information is accessible as a resource.
-            $ref: "#/definitions/Link"
-
-  AlarmNotification:
-    description: >
-      This type represents an alarm notification about VNF faults.
-      This notification shall be triggered by the VNFM when:
-      * An alarm has been created.
-      * An alarm has been updated, e.g. if the severity of the alarm has
-        changed.
-    type: object
-    required:
-      - id
-      - notificationType
-      - subscriptionId
-      - timeStamp
-      - alarm
-      - _links
-    properties:
-      id:
-        description: >
-          Identifier of this notification. If a notification is sent multiple
-          times due to multiple subscriptions, the "id" attribute of all these
-          notifications shall have the same value.
-        $ref: "#/definitions/Identifier"
-      notificationType:
-        description: >
-          Discriminator for the different notification types. Shall be set to
-          "AlarmNotification" for this notification type.
-        type: string
-        enum:
-          - AlarmNotification
-      subscriptionId:
-        description: >
-          Identifier of the subscription that this notification relates to.
-        $ref: "#/definitions/Identifier"
-      timeStamp:
-        description: >
-          Date-time of the generation of the notification.
-        $ref: "#/definitions/DateTime"
-      alarm:
-        description: >
-          Information about an alarm including AlarmId, affected VNF
-          identifier, and FaultDetails.
-        $ref: "#/definitions/Alarm"
-      _links:
+          $ref: "#/definitions/IdentifierInVnf"
+      removedStorageResourceIds:
         description: >
-          Links to resources related to this notification.
-        type: object
-        required:
-          - subscription
-        properties:
-          subscription:
-            description: >
-              Link to the related subscription.
-            $ref: "#/definitions/Link"
\ No newline at end of file
+          References to VirtualStorage resources that have been removed.
+          The value contains the identifier of a VirtualStorageResourceInfo
+          item that has been removed from the VNFC, and might no longer exist
+          in the VnfInstance.
+          It shall be provided if at least one storage resource was removed
+          from the VNFC.
+        type: array
+        items:
+          $ref: "#/definitions/IdentifierInVnf"
\ No newline at end of file
diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9ae760eda97938b04a18504100a77e833457de86
--- /dev/null
+++ b/src/endpoints/SOL002SOL003_endpoints.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) ETSI 2017.
+# https://forge.etsi.org/etsi-forge-copyright-notice.txt
+endpoints:
+  api-versions:
+    parameters:
+      - name: Version
+        description: >
+          Version of the API requested to use when responding to this request.
+        in: header
+        required: false
+        type: string
+    get:
+      summary: Retrieve API version information
+      description: >
+        The GET method reads API version information. This method shall follow the provisions specified in
+        table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
+        supported.
+      responses:
+        200:
+          description: >
+            200 OK
+            
+            API version information was read successfully.
+            The response body shall contain 4.4 API version
+            information, as defined in clause 4.4.1.13.
+          schema:
+            $ref: '../definitions/SOL002SOL003_def.yaml#/definitions/ApiVersionInformation'
+          headers:
+            Content-Type:
+              description: The MIME type of the body of the response.
+              type: string
+              maximum: 1
+              minimum: 1
+            Version:
+              description: The used API version.
+              type: string
+              maximum: 1
+              minimum: 1
+        400: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/400' }
+        401: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/401' }
+        403: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/403' }
+        404: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/404' }
+        405: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/405' }
+        406: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/406' }
+        413: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/413' }
+        414: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/414' }
+        416: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/416' }
+        422: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/422' }
+        429: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/429' }
+        500: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/500' }
+        503: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/503' }
+        504: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/504' }
\ No newline at end of file
diff --git a/src/responses/SOL002SOL003_resp.yaml b/src/responses/SOL002SOL003_resp.yaml
index a40aa37a0742c3c29e153e9f5ab1349896c2226f..d42c235b37572ab454b86002b31610f9400e02c7 100644
--- a/src/responses/SOL002SOL003_resp.yaml
+++ b/src/responses/SOL002SOL003_resp.yaml
@@ -1,15 +1,23 @@
+# Copyright (c) ETSI 2017.
+# https://forge.etsi.org/etsi-forge-copyright-notice.txt
+
 responses:
-  202:
+  206:
     description: >
-      Accepted
-
-      The request was accepted for processing, but processing has not
-      been completed. The response shall have an empty payload body.
+      206 PARTIAL CONTENT
     headers:
-      Location:
-        description: The resource URI of the created VNF instance
+      Content-Type:
+        description: >
+          The MIME type of the body of the response.
         type: string
-        format: url
+        maximum: 1
+        minimum: 1
+      Content-Range:
+        description: >
+          The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
+        type: string
+        maximum: 1
+        minimum: 1
       WWW-Authenticate:
         description: >
           Challenge if the corresponding HTTP request has not provided
@@ -18,26 +26,22 @@ responses:
         type: string
         maximum: 1
         minimum: 0
-  202-with-Location:
-    description: > 
-      Accepted
-
-      The request was accepted for processing, but the processing has not
-      been completed. On success, the HTTP response shall include a
-      "Location" HTTP header that contains the URI of the newly-created
-      "VNF LCM operation occurrence" resource corresponding to the
-      operation.
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
+    schema:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  303:
     headers:
-      #TODO: Add headers defined in 4.3.4.3
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
-      Location:
-        description: The resource URI of the created VNF instance
-        type: string
-        format: url
       WWW-Authenticate:
         description: >
           Challenge if the corresponding HTTP request has not provided
@@ -46,43 +50,41 @@ responses:
         type: string
         maximum: 1
         minimum: 0
-  303:
-    description: >
-      See Other
-
-      A subscription with the same callbackURI and the same filter already
-      exists and the policy of the VNFM is to not create redundant
-      subscriptions.
-      The HTTP response shall include a "Location" HTTP header that contains
-      the resource URI of the existing subscription resource.
-      The response body shall be empty.
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
+
   400:
     description: >
-      Bad Request
-
-      If the request is malformed or syntactically incorrect (e.g. if the
-      request URI contains incorrect query parameters or a syntactically
-      incorrect payload body), the API producer shall respond with this
-      response code. The "ProblemDetails" structure shall be provided,
-      and should include in the "detail" attribute more information about
-      the source of the problem.
-      
-       ---
-      
-      If the request contains a malformed access token, the API producer
-      should respond with this response. The details of the error shall
-      be returned in the WWW-Authenticate HTTP header, as defined in
-      IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be
-      provided.
-      
-       ---
-
-      If there is an application error related to the client's input that
-      cannot be easily mapped to any other HTTP response code ("catch all
-      error"), the API producer shall respond with this response code.The
-      "ProblemDetails" structure shall be provided, and shall include in
-      the "detail" attribute more information about the source of the
-      problem.
+      400 BAD REQUEST
+
+      400 code can be returned in the following specified cases, the specific cause has to be proper specified in the
+      "ProblemDetails" structure to be returned.
+
+      If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect
+      query parameters or the payload body contains a syntactically incorrect data structure),
+      the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided,
+      and should include in the "detail" attribute more information about the source of the problem.
+
+      If the response to a GET request which queries a container resource would be so big that the performance
+      of the API producer is adversely affected, and the API producer does not support paging for the affected resource,
+      it shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include
+      in the "detail" attribute more information about the source of the problem.
+
+      If there is an application error related to the client's input that cannot be easily mapped to any other
+      HTTP response code ("catch all error"), the API producer shall respond with this response code.
+      The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information
+      about the source of the problem.
+
+      If the request contains a malformed access token, the API producer should respond with this response.
+      The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750
+      and IETF RFC 7235. The ProblemDetails structure may be provided.
+
+      The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0
+      for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
@@ -97,31 +99,23 @@ responses:
         type: string
         maximum: 1
         minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  400-attr-based-filtering-error:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  401:
     description: >
-      Bad Request
-
-      Invalid attribute-based filtering parameters or Invalid attribute
-      selector.
-      It fhe request is malformed or syntactically incorrect (e.g. if the
-      request URI contains incorrect query parameters or a syntactically
-      incorrect payload body), the API producer shall respond with this
-      response code. The "ProblemDetails" structure shall be provided,
-      and should include in the "detail" attribute more information about
-      the source of the problem.
-      If the request contains a malformed access token, the API producer
-      should respond with this response. The details of the error shall
-      be returned in the WWW-Authenticate HTTP header, as defined in
-      IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be
-      provided.
-      If there is an application error related to the client's input that
-      cannot be easily mapped to any other HTTP response code ("catch all
-      error"), the API producer shall respond with this response code.The
-      "ProblemDetails" structure shall be provided, and shall include in
-      the "detail" attribute more information about the source of the
-      problem.
+      401 UNAUTHORIZED
+
+      If the request contains no access token even though one is required, or if the request contains an authorization
+      token that is invalid (e.g. expired or revoked), the API producer should respond with this response.
+      The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750
+      and IETF RFC 7235. The ProblemDetails structure may be provided.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
@@ -134,29 +128,25 @@ responses:
           authorization, or error details if the corresponding HTTP
           request has provided an invalid authorization token.
         type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  400-attr-selector:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  403:
     description: >
-      Bad Request
-
-      It fhe request is malformed or syntactically incorrect (e.g. if the
-      request URI contains incorrect query parameters or a syntactically
-      incorrect payload body), the API producer shall respond with this
-      response code. The "ProblemDetails" structure shall be provided,
-      and should include in the "detail" attribute more information about
-      the source of the problem.
-      If the request contains a malformed access token, the API producer
-      should respond with this response. The details of the error shall
-      be returned in the WWW-Authenticate HTTP header, as defined in
-      IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be
-      provided.
-      If there is an application error related to the client's input that
-      cannot be easily mapped to any other HTTP response code ("catch all
-      error"), the API producer shall respond with this response code.The
-      "ProblemDetails" structure shall be provided, and shall include in
-      the "detail" attribute more information about the source of the
-      problem.
+      403 FORBIDDEN
+
+      If the API consumer is not allowed to perform a particular request to a particular resource,
+      the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.
+      It should include in the "detail" attribute information about the source of the problem,
+      and may indicate how to solve it.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
@@ -171,19 +161,28 @@ responses:
         type: string
         maximum: 1
         minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  401:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  404:
     description: >
-      Unauthorized
-
-      If the request contains no access token even though one is
-      required, or if the request contains an authorization token that
-      is invalid (e.g. expired or revoked), the API producer should
-      respond with this response. The details of the error shall be
-      returned in the WWW-Authenticate HTTP header, as defined in
-      IETF RFC 6750 and IETF RFC 7235. The ProblemDetails
-      structure may be provided.
+      404 NOT FOUND
+
+      If the API producer did not find a current representation for the resource addressed by the URI passed
+      in the request or is not willing to disclose that one exists, it shall respond with this response code.
+      The "ProblemDetails" structure may be provided, including in the "detail" attribute information about
+      the source of the problem, e.g. a wrong resource URI variable.
+
+      This response code is not appropriate in case the resource addressed by the URI is a container resource
+      which is designed to contain child resources, but does not contain any child resource at the time
+      the request is received. For a GET request to an existing empty container resource, a typical response
+      contains a 200 OK response code and a payload body with an empty array.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
@@ -198,77 +197,105 @@ responses:
         type: string
         maximum: 1
         minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  403:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  405:
     description: >
-      Forbidden
+      405 METHOD NOT ALLOWED
 
-      If the API consumer is not allowed to perform a particular request
-      to a particular resource, the API producer shall respond with this
-      response code. The "ProblemDetails" structure shall be provided. 
-      It should include in the "detail" attribute information about the
-      source of the problem, and may indicate how to solve it.
+      If a particular HTTP method is not supported for a particular resource, the API producer shall respond
+      with this response code. The "ProblemDetails" structure may be omitted.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  404:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  406:
     description: >
-      Not Found
-
-      If the API producer did not find a current representation for the
-      resource addressed by the URI passed in the request, or is not
-      willing to disclose that one exists, it shall respond with this
-      response code. 
-      The "ProblemDetails" structure may be provided,
-      including in the "detail" attribute information about the source
-      of the problem, e.g. a wrong resource URI variable.
+      406 NOT ACCEPTABLE
+
+      If the "Accept" header does not contain at least one name of a content type that is acceptable
+      to the API producer, the API producer shall respond with this response code.
+      The "ProblemDetails" structure may be omitted.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  404-task-resource-not-exists:
-    description: >
-      Not Found
-
-      Error: The API producer did not find a current representation for the
-      target resource or is not willing to disclose that one exists.
-      Specifically in case of this task resource, the  response code 404 shall
-      also returned if the task is not supported for the VNF instance
-      represented by the parent resource, which means that the task resource
-      consequently does not exist. 
-      In this case, the response body shall be present, and shall contain a
-      ProblemDetails structure, in which the "detail" attribute shall convey
-      more information about the error.
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  409:
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  404-task-resource-not-exists-VNF-LCM:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  412:
     description: >
-      Not Found
-
-      Error: The API producer did not find a current representation for the
-      target resource or is not willing to disclose that one exists.
-      Specifically in case of this task resource, the  response code 404 shall
-      also be returned if the task is not supported for the VNF LCM operation
-      occurrence represented by the parent resource, which means that the task
-      resource consequently does not exist. 
-      In this case, the response body shall be present, and shall contain a
-      ProblemDetails structure, in which the "detail" attribute shall convey
+      412 PRECONDITION FAILED
+
+      Error: A precondition given in an HTTP request header is not fulfilled.
+      Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity.
+      The response body should contain a ProblemDetails structure, in which the "detail" attribute should convey
       more information about the error.
     headers:
       Content-Type:
@@ -276,168 +303,265 @@ responses:
         type: string
         maximum: 1
         minimum: 1
-    schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  404-task-not-suported:
-    description: >
-      Not Found
-
-      If the API producer did not find a current representation for the
-      resource addressed by the URI passed in the request, or is not
-      willing to disclose that one exists, it shall respond with this
-      response code. 
-      Specifically in case of this task resource, the reason can also be that
-      the task is not supported for the VNF instance represented by the parent
-      resource, and that the task resource consequently does not exist.
-      The "ProblemDetails" structure may be provided, including in the
-      "detail" attribute information about the sourceof the problem, e.g. a
-      wrong resource URI variable.
-    headers:
-      Content-Type:
-        description: The MIME type of the body of the response.
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
         type: string
         maximum: 1
         minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  404-task-not-suported-VNF-LCM:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  413:
     description: >
-      Not Found
-
-      If the API producer did not find a current representation for the
-      resource addressed by the URI passed in the request, or is not
-      willing to disclose that one exists, it shall respond with this
-      response code. 
-      Specifically in case of this task resource, the reason can also be that
-      the task is not supported for the VNF LCM operation occurrence
-      represented by the parent resource, and that the task resource
-      consequently does not exist.
-      The "ProblemDetails" structure may be provided, including in the
-      "detail" attribute information about the sourceof the problem, e.g. a
-      wrong resource URI variable.
+      413 PAYLOAD TOO LARGE
+
+      If the payload body of a request is larger than the amount of data the API producer is willing or able to process,
+      it shall respond with this response code, following the provisions in IETF RFC 7231 for the use
+      of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be omitted.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
       $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  405:
+
+  414:
     description: >
-      Method Not Allowed
+      414 URI TOO LONG
 
-      If a particular HTTP method is not supported for a particular
-      resource, the API producer shall respond with this response code.
-      The "ProblemDetails" structure may be omitted in that case.
+      If the request URI of a request is longer than the API producer is willing or able to process,
+      it shall respond with this response code. This condition can e.g. be caused by passing long queries
+      in the request URI of a GET request. The "ProblemDetails" structure may be omitted.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  406:
-    description: >
-      Not Acceptable
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
 
-      If the "Accept" HTTP header does not contain at least one name of
-      a content type that is acceptable to the API producer, the API
-      producer shall respond with this response code. The
-      "ProblemDetails" structure may be omitted in that case.        
+  416:
+    description: >
+      416 RANGE NOT SATISFIABLE
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  412:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  422:
     description: >
-      Precondition Failed
+      422 UNPROCESSABLE ENTITY
 
-      A precondition given in an HTTP request header is not fulfilled.
-      Typically, this is due to an ETag mismatch, indicating that the
-      resource was modified by another entity. The response body should
-      contain a ProblemDetails structure, in which the "detail" attribute
-      should convey more information about the error.
+      If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data
+      cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond
+      with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail"
+      attribute more information about the source of the problem.
+
+      This error response code is only applicable for methods that have a request body.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"        
-  416:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  429:
     description: >
-      Requested Range Not Satisfiable
+      429 TOO MANY REQUESTS
 
-      This code is returned if the requested byte range in the
-      Range HTTP header is not present in the requested resource.
+      If the API consumer has sent too many requests in a defined period of time and the API producer is able
+      to detect that condition ("rate limiting"), the API producer shall respond with this response code,
+      following the provisions in IETF RFC 6585 [17] for the use of the "Retry-After" HTTP header.
+      The "ProblemDetails" structure shall be provided and shall include in the "detail" attribute more information
+      about the source of the problem.
+
+      The period of time and allowed number of requests are configured within the API producer by means
+      outside the scope of the present document.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"               
-  422:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  500:
     description: >
-      Unprocessable Entity
-
-      If the payload body of a request contains syntactically correct
-      data (e.g. well-formed JSON) but the data cannot be processed
-      (e.g. because it fails validation against a schema), the API
-      producer shall respond with this response code. The
-      "ProblemDetails" structure shall be provided, and should include
-      in the "detail" attribute more information about the source of the
-      problem.
-      NOTE 2: This error response code is only applicable for methods
-      that have a request body.
+      500 INTERNAL SERVER ERROR
+
+      If there is an application error not related to the client's input that cannot be easily mapped to any other
+      HTTP response code ("catch all error"), the API producer shall respond with this response code.
+      The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information
+      about the source of the problem.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  500:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  503:
     description: >
-      Internal Server Error
-
-      If there is an application error not related to the client's input
-      that cannot be easily mapped to any other HTTP response code
-      ("catch all error"), the API producer shall respond withthis
-      response code. The "ProblemDetails" structure shall be provided,
-      and shall include in the "detail" attribute more information about
-      the source of the problem.
+      503 SERVICE UNAVAILABLE
+
+      If the API producer encounters an internal overload situation of itself or of a system it relies on,
+      it should respond with this response code, following the provisions in IETF RFC 7231 for the use of
+      the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails"
+      structure may be omitted.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
-  503:
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+
+  504:
     description: >
-      Service Unavailable
+      504 GATEWAY TIMEOUT
 
-      If the API producer encounters an internal overload situation of
-      itself or of a system it relies on, it should respond with this
-      response code, following the provisions in IETF RFC 7231 [13] for
-      the use of the "Retry-After" HTTP header and for the alternative
-      to refuse the connection. The "ProblemDetails" structure may be omitted.
+      If the API producer encounters a timeout while waiting for a response from an upstream server
+      (i.e. a server that the API producer communicates with when fulfilling a request), it should respond
+      with this response code.
     headers:
       Content-Type:
         description: The MIME type of the body of the response.
         type: string
         maximum: 1
         minimum: 1
+      WWW-Authenticate:
+        description: >
+          Challenge if the corresponding HTTP request has not provided
+          authorization, or error details if the corresponding HTTP
+          request has provided an invalid authorization token.
+        type: string
+        maximum: 1
+        minimum: 0
+      Version:
+        description: >
+          Version of the API used in the response.
+        type: string
+        maximum: 1
+        minimum: 1
     schema:
-      $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
+      $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
\ No newline at end of file